文档索引
获取完整文档索引: https://docs.crewai.com.cn/llms.txt
在深入了解之前,请使用此文件来浏览所有可用页面。
LangDB AI 网关提供兼容 OpenAI 的 API,用于连接多种大语言模型,并作为可观测性平台,让您可以轻松地端到端追踪 CrewAI 工作流,同时接入 350 多种语言模型。通过一个 init() 调用,即可捕获所有智能体交互、任务执行和 LLM 调用,为您的应用程序提供全面的可观测性和生产就绪的 AI 基础设施。
查看: 查看实时追踪示例
AI 网关功能
- 访问 350+ 种 LLM:通过单一集成即可连接所有主流语言模型
- 虚拟模型:创建具有特定参数和路由规则的自定义模型配置
- 虚拟 MCP:启用与 MCP(模型上下文协议)系统的兼容性和集成,以增强智能体通信
- 护栏 (Guardrails):为智能体行为实施安全措施和合规性控制
可观测性与追踪
- 自动追踪:通过一次
init() 调用即可捕获所有 CrewAI 交互
- 端到端可见性:从头到尾监控智能体工作流
- 工具使用追踪:跟踪智能体使用的工具及其结果
- 模型调用监控:深入了解 LLM 交互详情
- 性能分析:监控延迟、Token 使用量和成本
- 调试支持:提供分步执行以辅助排查故障
- 实时监控:实时追踪与指标仪表盘
设置说明
安装 LangDB
安装带有 CrewAI 功能标志的 LangDB 客户端pip install 'pylangdb[crewai]'
设置环境变量
配置您的 LangDB 凭据export LANGDB_API_KEY="<your_langdb_api_key>"
export LANGDB_PROJECT_ID="<your_langdb_project_id>"
export LANGDB_API_BASE_URL='https://api.us-east-1.langdb.ai'
初始化追踪
在配置 CrewAI 代码之前导入并初始化 LangDBfrom pylangdb.crewai import init
# Initialize LangDB
init()
配置带有 LangDB 的 CrewAI
使用 LangDB 请求头设置您的 LLMfrom crewai import Agent, Task, Crew, LLM
import os
# Configure LLM with LangDB headers
llm = LLM(
model="openai/gpt-4o", # Replace with the model you want to use
api_key=os.getenv("LANGDB_API_KEY"),
base_url=os.getenv("LANGDB_API_BASE_URL"),
extra_headers={"x-project-id": os.getenv("LANGDB_PROJECT_ID")}
)
快速入门示例
以下是一个简单的示例,帮助您开始使用 LangDB 和 CrewAI
import os
from pylangdb.crewai import init
from crewai import Agent, Task, Crew, LLM
# Initialize LangDB before any CrewAI imports
init()
def create_llm(model):
return LLM(
model=model,
api_key=os.environ.get("LANGDB_API_KEY"),
base_url=os.environ.get("LANGDB_API_BASE_URL"),
extra_headers={"x-project-id": os.environ.get("LANGDB_PROJECT_ID")}
)
# Define your agent
researcher = Agent(
role="Research Specialist",
goal="Research topics thoroughly",
backstory="Expert researcher with skills in finding information",
llm=create_llm("openai/gpt-4o"), # Replace with the model you want to use
verbose=True
)
# Create a task
task = Task(
description="Research the given topic and provide a comprehensive summary",
agent=researcher,
expected_output="Detailed research summary with key findings"
)
# Create and run the crew
crew = Crew(agents=[researcher], tasks=[task])
result = crew.kickoff()
print(result)
完整示例:研究与规划智能体
此综合示例展示了具有研究和规划能力的多智能体工作流。
先决条件
pip install crewai 'pylangdb[crewai]' crewai_tools setuptools python-dotenv
环境设置
# LangDB credentials
export LANGDB_API_KEY="<your_langdb_api_key>"
export LANGDB_PROJECT_ID="<your_langdb_project_id>"
export LANGDB_API_BASE_URL='https://api.us-east-1.langdb.ai'
# Additional API keys (optional)
export SERPER_API_KEY="<your_serper_api_key>" # For web search capabilities
完整实现
#!/usr/bin/env python3
import os
import sys
from pylangdb.crewai import init
init() # Initialize LangDB before any CrewAI imports
from dotenv import load_dotenv
from crewai import Agent, Task, Crew, Process, LLM
from crewai_tools import SerperDevTool
load_dotenv()
def create_llm(model):
return LLM(
model=model,
api_key=os.environ.get("LANGDB_API_KEY"),
base_url=os.environ.get("LANGDB_API_BASE_URL"),
extra_headers={"x-project-id": os.environ.get("LANGDB_PROJECT_ID")}
)
class ResearchPlanningCrew:
def researcher(self) -> Agent:
return Agent(
role="Research Specialist",
goal="Research topics thoroughly and compile comprehensive information",
backstory="Expert researcher with skills in finding and analyzing information from various sources",
tools=[SerperDevTool()],
llm=create_llm("openai/gpt-4o"),
verbose=True
)
def planner(self) -> Agent:
return Agent(
role="Strategic Planner",
goal="Create actionable plans based on research findings",
backstory="Strategic planner who breaks down complex challenges into executable plans",
reasoning=True,
max_reasoning_attempts=3,
llm=create_llm("openai/anthropic/claude-3.7-sonnet"),
verbose=True
)
def research_task(self) -> Task:
return Task(
description="Research the topic thoroughly and compile comprehensive information",
agent=self.researcher(),
expected_output="Comprehensive research report with key findings and insights"
)
def planning_task(self) -> Task:
return Task(
description="Create a strategic plan based on the research findings",
agent=self.planner(),
expected_output="Strategic execution plan with phases, goals, and actionable steps",
context=[self.research_task()]
)
def crew(self) -> Crew:
return Crew(
agents=[self.researcher(), self.planner()],
tasks=[self.research_task(), self.planning_task()],
verbose=True,
process=Process.sequential
)
def main():
topic = sys.argv[1] if len(sys.argv) > 1 else "Artificial Intelligence in Healthcare"
crew_instance = ResearchPlanningCrew()
# Update task descriptions with the specific topic
crew_instance.research_task().description = f"Research {topic} thoroughly and compile comprehensive information"
crew_instance.planning_task().description = f"Create a strategic plan for {topic} based on the research findings"
result = crew_instance.crew().kickoff()
print(result)
if __name__ == "__main__":
main()
运行示例
python main.py "Sustainable Energy Solutions"
在 LangDB 中查看追踪
运行 CrewAI 应用程序后,您可以在 LangDB 仪表盘中查看详细的追踪记录
您将看到的内容
- 智能体交互:智能体对话和任务移交的完整流程
- 工具使用:调用了哪些工具,以及它们的输入和输出
- 模型调用:包含提示词和响应的详细 LLM 交互记录
- 性能指标:延迟、Token 使用量和成本追踪
- 执行时间轴:整个工作流的逐步视图
故障排除
常见问题
- 未出现追踪记录:请确保在任何 CrewAI 导入之前已调用
init()
- 认证错误:请验证您的 LangDB API 密钥和项目 ID
后续步骤
本指南介绍了将 LangDB AI 网关与 CrewAI 集成的基础知识。若要进一步增强您的 AI 工作流,请探索
- 虚拟模型:创建具有路由策略的自定义模型配置
- 护栏与安全:实施内容过滤和合规控制
- 生产部署:配置回退、重试和负载均衡
如需了解更多高级功能和用例,请访问 LangDB 文档,或探索 模型目录以发现所有可用模型。