跳转到主要内容

简介

LangDB AI 网关提供与 OpenAI 兼容的 API,以连接多个大型语言模型,并作为一个可观测性平台,让您轻松地端到端跟踪 CrewAI 工作流,同时提供对 350 多个语言模型的访问。只需一次 init() 调用,所有智能体交互、任务执行和 LLM 调用都将被捕获,为您的应用程序提供全面的可观测性和生产就绪的 AI 基础设施。
LangDB CrewAI trace example

LangDB CrewAI 跟踪示例

查看: 查看实时跟踪示例

功能

AI 网关功能

  • 访问 350 多个 LLM:通过单一集成连接所有主流语言模型
  • 虚拟模型:创建具有特定参数和路由规则的自定义模型配置
  • 虚拟 MCP:启用与 MCP (模型上下文协议) 系统的兼容性和集成,以增强智能体通信
  • 护栏:为智能体行为实施安全措施和合规控制

可观测性与跟踪

  • 自动跟踪:单次 init() 调用即可捕获所有 CrewAI 交互
  • 端到端可见性:从头到尾监控智能体工作流
  • 工具使用跟踪:跟踪智能体使用了哪些工具及其结果
  • 模型调用监控:深入了解 LLM 交互的详细信息
  • 性能分析:监控延迟、令牌使用量和成本
  • 调试支持:逐步执行以进行故障排除
  • 实时监控:实时跟踪和指标仪表板

设置说明

1

安装 LangDB

使用 CrewAI 功能标志安装 LangDB 客户端
pip install 'pylangdb[crewai]'
2

设置环境变量

配置您的 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'
3

初始化跟踪

在配置 CrewAI 代码之前导入并初始化 LangDB
from pylangdb.crewai import init
# Initialize LangDB
init()
4

使用 LangDB 配置 CrewAI

使用 LangDB 头部信息设置您的 LLM
from 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 仪表板中查看详细的跟踪信息
LangDB trace dashboard showing CrewAI workflow

LangDB 跟踪仪表板

您将看到什么

  • 智能体交互:智能体对话和任务交接的完整流程
  • 工具使用情况:调用了哪些工具、它们的输入和输出
  • 模型调用:包含提示 image.png 和响应的详细 LLM 交互
  • 性能指标:延迟、令牌使用量和成本跟踪
  • 执行时间线:整个工作流的逐步视图

故障排除

常见问题

  • 没有出现跟踪信息:确保在任何 CrewAI 导入之前调用 init()
  • 身份验证错误:验证您的 LangDB API 密钥和项目 ID

资源

后续步骤

本指南介绍了将 LangDB AI 网关与 CrewAI 集成的基础知识。为了进一步增强您的 AI 工作流,请探索
  • 虚拟模型:创建带有路由策略的自定义模型配置
  • 护栏与安全:实施内容过滤和合规控制
  • 生产部署:配置回退、重试和负载均衡
有关更高级的功能和用例,请访问 LangDB 文档或探索模型目录以发现所有可用的模型。