跳转到内容

Datadog 集成

本指南将演示如何使用 Datadog 自动检测Datadog LLM ObservabilityCrewAI 集成。读完本指南后,你将能够把 LLM 可观测性追踪发送到 Datadog,并在 Datadog LLM Observability 的 Agentic Execution View 中查看 CrewAI 代理运行情况。

Datadog LLM Observability 可帮助 AI 工程师、数据科学家和应用开发者快速构建、评估和监控 LLM 应用。借助结构化实验、端到端 AI 代理追踪以及评估,你可以自信地提升输出质量、性能、成本和整体风险。

Terminal window
pip install ddtrace crewai crewai-tools

如果你没有 Datadog API key,可以先 创建账户获取 API key

你还需要在以下环境变量中指定一个 ML Application 名称。ML Application 是与特定基于 LLM 的应用相关联的 LLM 可观测性追踪分组。有关 ML Application 命名限制的更多信息,请参阅 ML Application 命名指南

Terminal window
export DD_API_KEY=<YOUR_DD_API_KEY>
export DD_SITE=<YOUR_DD_SITE>
export DD_LLMOBS_ENABLED=true
export DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME>
export DD_LLMOBS_AGENTLESS_ENABLED=true
export DD_APM_TRACING_ENABLED=false

另外,还要配置任何 LLM 提供方的 API keys。

Terminal window
export OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
export ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>
export GEMINI_API_KEY=<YOUR_GEMINI_API_KEY>
...
crewai_agent.py
from crewai import Agent, Task, Crew
from crewai_tools import (
WebsiteSearchTool
)
web_rag_tool = WebsiteSearchTool()
writer = Agent(
role="Writer",
goal="You make math engaging and understandable for young children through poetry",
backstory="You're an expert in writing haikus but you know nothing of math.",
tools=[web_rag_tool],
)
task = Task(
description=("What is {multiplication}?"),
expected_output=("Compose a haiku that includes the answer."),
agent=writer
)
crew = Crew(
agents=[writer],
tasks=[task],
share_crew=False
)
output = crew.kickoff(dict(multiplication="2 * 2"))

在设置好环境变量后,你现在可以通过 Datadog 自动检测来运行应用。

Terminal window
ddtrace-run python crewai_agent.py

运行应用后,你可以在 Datadog LLM Observability 的 Traces View 中查看追踪,并从左上角下拉菜单中选择你设置的 ML Application 名称。

点击某条 trace 会显示该 trace 的详细信息,包括使用的总 token 数、LLM 调用次数、所用模型和预估成本。点击具体的 span 会缩小这些细节范围,并显示相关输入、输出和元数据。

Datadog LLM Observability 追踪视图

此外,你还可以查看 trace 的执行图视图,它会展示 trace 的控制流和数据流。随着代理规模变大,该视图还能展示 LLM 调用、工具调用和代理交互之间的交接与关系。

Datadog LLM Observability 代理执行流视图