LangDB 集成
LangDB AI Gateway 提供与 OpenAI 兼容的 API,可连接多个大语言模型,同时也是一个可观测性平台,能够轻松端到端追踪 CrewAI 工作流,并提供 350+ 语言模型的访问能力。只需一次 init() 调用,就能捕获所有代理交互、任务执行和 LLM 调用,为你的应用提供全面可观测性和生产级 AI 基础设施。
查看: 打开在线追踪示例
AI Gateway 能力
Section titled “AI Gateway 能力”- 访问 350+ LLM:通过单一集成连接所有主流语言模型
- 虚拟模型:创建带有特定参数和路由规则的自定义模型配置
- Virtual MCP:启用与 MCP(Model Context Protocol)系统的兼容和集成,以增强代理通信
- Guardrails:为代理行为实施安全措施和合规控制
可观测性与追踪
Section titled “可观测性与追踪”- 自动追踪:只需一次
init()调用即可捕获所有 CrewAI 交互 - 端到端可见性:从头到尾监控代理工作流
- 工具使用跟踪:跟踪代理使用了哪些工具及其结果
- 模型调用监控:深入了解 LLM 交互
- 性能分析:监控延迟、token 使用量和成本
- 调试支持:逐步执行以便排障
- 实时监控:实时追踪与指标仪表盘
- 安装 LangDB
使用 CrewAI 功能标志安装 LangDB 客户端:
Terminal window pip install 'pylangdb[crewai]' - 设置环境变量
配置你的 LangDB 凭证:
Terminal window 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 代码之前,先导入并初始化 LangDB:
from pylangdb.crewai import init# Initialize LangDBinit() - 将 CrewAI 与 LangDB 配置在一起
使用 LangDB 标头设置你的 LLM:
from crewai import Agent, Task, Crew, LLMimport os# Configure LLM with LangDB headersllm = LLM(model="openai/gpt-4o", # Replace with the model you want to useapi_key=os.getenv("LANGDB_API_KEY"),base_url=os.getenv("LANGDB_API_BASE_URL"),extra_headers={"x-project-id": os.getenv("LANGDB_PROJECT_ID")})
快速开始示例
Section titled “快速开始示例”下面是一个简单示例,帮助你快速上手 LangDB 和 CrewAI:
import osfrom pylangdb.crewai import initfrom crewai import Agent, Task, Crew, LLM
# Initialize LangDB before any CrewAI importsinit()
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 agentresearcher = 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 tasktask = 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 crewcrew = Crew(agents=[researcher], tasks=[task])result = crew.kickoff()print(result)完整示例:研究与规划代理
Section titled “完整示例:研究与规划代理”这个综合示例展示了一个具备研究和规划能力的多代理工作流。
pip install crewai 'pylangdb[crewai]' crewai_tools setuptools python-dotenv# LangDB credentialsexport 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 osimport sysfrom pylangdb.crewai import initinit() # Initialize LangDB before any CrewAI importsfrom dotenv import load_dotenvfrom crewai import Agent, Task, Crew, Process, LLMfrom 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 中查看追踪
Section titled “在 LangDB 中查看追踪”运行 CrewAI 应用后,你可以在 LangDB 仪表盘中查看详细追踪:
你会看到什么
Section titled “你会看到什么”- 代理交互:完整的代理对话和任务交接流程
- 工具使用:调用了哪些工具、输入了什么、输出了什么
- 模型调用:详细的 LLM 交互,包括提示词和响应
- 性能指标:延迟、token 使用量和成本跟踪
- 执行时间线:整个工作流的逐步视图
- 没有出现追踪:请确保在任何 CrewAI 导入之前调用了
init() - 身份验证错误:验证你的 LangDB API key 和 project ID
LangDB 文档
官方 LangDB 文档与指南
LangDB 指南
用于构建 AI 代理的分步教程
GitHub 示例
完整的 CrewAI 集成示例
LangDB 仪表盘
访问你的追踪与分析
模型目录
浏览 350+ 可用语言模型
企业功能
自托管选项和企业级能力
本指南介绍了将 LangDB AI Gateway 集成到 CrewAI 的基础内容。要进一步增强你的 AI 工作流,可以探索:
- 虚拟模型:创建带有路由策略的自定义模型配置
- Guardrails 与安全:实现内容过滤和合规控制
- 生产部署:配置回退、重试和负载均衡