Skip to main content
LangSmith 可以通过 OpenTelemetry 工具捕获 LiveKit Agents 生成的追踪数据。本指南将展示如何自动捕获来自 LiveKit 语音 AI 智能体的追踪数据,并将其发送到 LangSmith 进行监控和分析。 完整实现请参考 演示仓库

安装

安装所需的包:

快速入门教程

按照这个分步教程,创建一个带有 LiveKit 和 LangSmith 追踪功能的语音 AI 智能体。您将通过复制粘贴代码片段来构建一个完整的工作示例。

步骤 1:设置环境

在项目目录中创建一个 .env 文件:
.env

步骤 2:下载跨度处理器

添加启用 LangSmith 追踪的 自定义跨度处理器文件。将其保存为项目目录中的 langsmith_processor.py
跨度处理器用 LangSmith 兼容的属性来丰富 LiveKit Agents 的 OpenTelemetry 跨度,以便您的追踪数据能在 LangSmith 中正确显示。主要功能:
  • 将 LiveKit 跨度类型(stt、llm、tts、agent、session、job)转换为 LangSmith 格式。
  • 为消息可视化添加 gen_ai.prompt.*gen_ai.completion.* 属性。
  • 跨对话轮次跟踪和聚合对话消息。
  • 使用多种提取策略来处理各种 LiveKit 属性格式。
当您在代码中导入该处理器时,它会自动激活。

步骤 3:创建您的语音智能体文件

创建一个名为 agent.py 的新文件,并添加以下代码。我们将分部分构建它,以便您可以复制粘贴每个部分。

第 1 部分:导入依赖项并设置追踪

第 2 部分:定义您的智能体

第 3 部分:设置智能体服务器

步骤 4:运行您的智能体

在控制台模式下运行您的语音智能体以进行本地测试:
您的智能体将启动并连接到 LiveKit。通过麦克风说话,所有追踪数据将自动出现在 LangSmith 中。以下是 LangSmith 中追踪数据的示例:LangSmith 中的 LiveKit 追踪 查看完整的 agent.py 代码

高级用法

自定义元数据和标签

您可以使用跨度属性向追踪数据添加自定义元数据:

故障排除

跨度未出现在 LangSmith 中

如果追踪数据未显示在 LangSmith 中:
  1. 验证环境变量:确保 .env 文件中正确设置了 OTEL_EXPORTER_OTLP_ENDPOINTOTEL_EXPORTER_OTLP_HEADERS
  2. 检查设置顺序:确保在创建 AgentServer 之前 调用 setup_langsmith()
  3. 检查 API 密钥:确认您的 LangSmith API 密钥具有写入权限。
  4. 查找确认信息:启动时应在控制台中看到 ”✅ LangSmith 追踪已启用”。

消息未正确显示

如果对话消息未正确显示:
  1. 检查跨度处理器:确认 langsmith_processor.py 在您的项目目录中且导入正确。
  2. 验证导入:确保在您的 agent.py 中导入了 LangSmithSpanProcessor
  3. 启用调试日志:在环境中设置 LANGSMITH_PROCESSOR_DEBUG=true 以查看详细日志。

连接问题

如果您的智能体无法连接到 LiveKit:
  1. 验证 LiveKit URL:检查 .env 文件中的 LIVEKIT_URL 是否正确设置。
  2. 检查凭据:确保 LIVEKIT_API_KEYLIVEKIT_API_SECRET 正确。
  3. 测试连接:首先尝试使用 LiveKit CLI 连接到您的 LiveKit 服务器。
  4. 控制台模式:对于本地测试,始终使用:python agent.py console

导入错误

如果遇到导入错误:
  1. 安装依赖项:运行步骤 1 中的完整 pip install 命令。
  2. 检查 Python 版本:确保您使用的是 Python 3.9 或更高版本。
  3. 验证 langsmith_processor:确保 langsmith_processor.py 已下载并与 agent.py 位于同一目录。
  4. 检查 LiveKit 插件:确保您为 STT/LLM/TTS 提供商安装了正确的 LiveKit 插件。

智能体无响应

如果您的智能体已连接但无响应:
  1. 检查 API 密钥:验证您的 OpenAI API 密钥(或其他提供商密钥)是否正确。
  2. 测试服务:确保您的 STT、LLM 和 TTS 服务可访问。
  3. 检查指令:确保您的智能体具有正确的指令。
  4. 查看日志:在控制台输出中查找错误信息。