可观测性 (Observability)
当你使用 LangChain 构建和运行智能体时,你需要了解它们的行为:它们调用了哪些工具、生成了什么提示以及如何做出决策。使用 createAgent 构建的 LangChain 智能体通过 LangSmith 自动支持追踪,这是一个用于捕获、调试、评估和监控 LLM 应用行为的平台。
追踪 (Traces) 记录智能体执行的每一步,从初始用户输入到最终响应,包括所有工具调用、模型交互和决策点。这些执行数据帮助你调试问题、评估不同输入下的性能,以及监控生产环境中的使用模式。
本指南向你展示如何为 LangChain 智能体启用追踪,并使用 LangSmith 分析其执行。
先决条件
开始之前,请确保你具备以下条件:
- LangSmith 账户:在 smith.langchain.com 免费注册或登录
- LangSmith API 密钥:按照创建 API 密钥指南操作
启用追踪
所有 LangChain 智能体都自动支持 LangSmith 追踪。要启用它,设置以下环境变量:
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY=<your-api-key>
快速开始
无需额外代码即可将追踪记录到 LangSmith。只需像平常一样运行你的智能体代码:
import { createAgent } from "@langchain/agents";
function sendEmail(to: string, subject: string, body: string): string {
// ... 发送邮件逻辑
return `邮件已发送给 ${to}`;
}
function searchWeb(query: string): string {
// ... 网络搜索逻辑
return `搜索结果:${query}`;
}
const agent = createAgent({
model: "gpt-4o",
tools: [sendEmail, searchWeb],
systemPrompt: "你是一个可以发送邮件和搜索网络的助手。"
});
// 运行智能体 - 所有步骤将自动追踪
const response = await agent.invoke({
messages: [{ role: "user", content: "搜索最新的 AI 新闻并将摘要发送到 test@example.com" }]
});
默认情况下,追踪将记录到名为 default 的项目。要配置自定义项目名称,请参阅记录到项目。
选择性追踪
你可以使用 LangSmith 的 tracing_context 上下文管理器选择性地追踪特定调用或应用程序的部分:
import langsmith as ls
# 这将被追踪
with ls.tracing_context(enabled=True):
agent.invoke({"messages": [{"role": "user", "content": "发送测试邮件到 test@example.com"}]})
# 这将不会被追踪(如果未设置 LANGSMITH_TRACING)
agent.invoke({"messages": [{"role": "user", "content": "发送另一封邮件"}]})
记录到项目
静态配置
你可以通过设置 LANGSMITH_PROJECT 环境变量为整个应用程序设置自定义项目名称:
export LANGSMITH_PROJECT=my-agent-project
动态配置
你可以在代码中为特定操作设置项目名称:
import langsmith as ls
with ls.tracing_context(project_name="email-agent-test", enabled=True):
response = agent.invoke({
"messages": [{"role": "user", "content": "发送欢迎邮件"}]
})
向追踪添加元数据
你可以使用自定义元数据和标签注释追踪:
import langsmith as ls
with ls.tracing_context(
metadata={"user_id": "user_123", "environment": "production"},
tags=["email", "test"]
):
response = agent.invoke({
"messages": [{"role": "user", "content": "发送报告邮件"}]
})
查看追踪
运行智能体后,你可以在 LangSmith 控制台中查看追踪:
- 登录 LangSmith
- 导航到你的项目
- 点击任意追踪以查看详细执行信息
追踪视图显示:
- 执行时间线 - 每个步骤的持续时间
- 输入/输出 - 每个步骤的完整输入和输出
- 工具调用 - 调用了哪些工具及其参数
- 令牌使用 - LLM 调用的令牌消耗
- 错误 - 任何发生的错误及其堆栈追踪
生产环境监控
LangSmith 提供生产监控功能:
- 仪表板 - 查看关键指标和趋势
- 告警 - 设置错误率或延迟阈值的告警
- 过滤 - 按元数据、标签或时间范围过滤追踪
- 导出 - 导出追踪数据进行进一步分析
最佳实践
- 使用有意义的项目名称 - 按环境或功能组织追踪
- 添加相关元数据 - 包含用户 ID、会话 ID 等便于调试的信息
- 使用标签分类 - 使用标签标记不同类型的操作
- 监控关键指标 - 关注延迟、错误率和令牌使用
- 设置采样 - 在高流量场景下使用采样减少成本
下一步
- 测试 - 使用追踪数据评估智能体
- 部署 - 将智能体部署到生产环境
- LangSmith Studio - 可视化调试智能体