Skip to content

LangSmith 是 LangChain 的 LLM 应用调试、测试、评估和监控平台。通过 OpenRouter Broadcast,每次 LLM 请求的 trace 通过 OTLP 协议发送到 LangSmith,包含完整输入/输出、token 用量、费用、模型信息和延迟。配置需要 LangSmith API Key(以 lsv2_pt_ 开头)和项目名称。OpenRouter 将 trace 类型映射到 LangSmith Run 类型:GENERATION → llm、SPAN → chain、EVENT → tool,可在 LangSmith Traces 视图中查看完整调用链路和 Run 层级结构。

LangSmith 是 LangChain 的可观测性平台,专为 LLM 应用的调试、测试、评估和监控而设计。通过 OpenRouter Broadcast,每次 API 请求都会作为 trace 发送到 LangSmith,无需在应用代码中集成 LangSmith SDK。

配置步骤

第一步:获取 LangSmith API Key 和项目名称

  1. 登录 LangSmith 账号
  2. 进入 Settings > API Keys,创建新的 API Key
  3. 导航到你的项目(或创建新项目),记录项目名称

第二步:在 OpenRouter 开启 Broadcast

前往 Settings > Observability,打开 Enable Broadcast 开关。

第三步:配置 LangSmith

点击 LangSmith 旁边的编辑图标,填写:

字段填写内容
Api KeyLangSmith API Key(以 lsv2_pt_ 开头)
ProjectLangSmith 项目名称
Endpoint(可选)默认 https://api.smith.langchain.com;自托管实例需修改

第四步:测试并保存

点击 Test Connection 验证配置,测试通过后自动保存。

第五步:查看 Trace

通过 OpenRouter 发送 API 请求,在 LangSmith 指定项目中查看 trace 数据,包含:

  • 输入/输出消息
  • Token 用量(prompt、completion、总计)
  • 费用信息
  • 模型和 provider 信息
  • 时间和延迟指标

Run 类型映射

OpenRouter 将 trace 观测类型映射到 LangSmith Run 类型:

OpenRouter 观测类型LangSmith Run 类型说明
GENERATIONllmLLM 调用 run
SPANchain工作流 chain run
EVENTtool工具调用 run

元数据映射

LangSmith 映射说明
trace_idTrace ID将多个 run 归入同一 trace
trace_nameRun Nametrace 列表中的自定义名称
span_nameRun Name中间 chain/tool run 的名称
generation_nameRun NameLLM run 的名称
parent_span_idParent Run ID链接到已有 run,建立层级

其他映射:

  • user → LangSmith User ID
  • session_id → LangSmith Session ID(用于对话追踪)
  • 自定义元数据键 → span attributes(在 run 详情中可查看)

示例:文本分析工作流

json
{
  "model": "openai/gpt-4o",
  "messages": [{ "role": "user", "content": "Analyze this text..." }],
  "user": "user_12345",
  "session_id": "session_abc",
  "trace": {
    "trace_id": "analysis_workflow_123",
    "trace_name": "Text Analysis Pipeline",
    "span_name": "Sentiment Analysis",
    "generation_name": "Extract Sentiment",
    "environment": "production",
    "team": "nlp-team"
  }
}

Privacy Mode

当为此目的地开启 Privacy Mode 时,prompt 和 completion 内容会从 trace 中排除。其他 trace 数据(token 用量、费用、时间、模型信息)仍正常发送。

常见问题

Q: LangSmith 和 Langfuse 都支持 LLM trace,如何选择?

A: 如果你的技术栈以 LangChain 为主,LangSmith 的集成更深(支持 LangChain Agent、Chain 的原生追踪)。如果你使用 OpenRouter 直接调用 LLM 而不依赖 LangChain,Langfuse 更灵活,且有开源自托管选项。两者也可同时配置,分别用于不同场景。

Q: 如何在 LangSmith 中按部门或团队分类 trace?

A: 在 trace 字段中添加自定义元数据(如 teamprojectenvironment),这些字段会作为 span attributes 存储,可在 LangSmith 的过滤器中使用。

Q: LangSmith 的 Tags 功能如何使用?

A: 可在 trace 字段中传入数组类型的元数据作为标签。LangSmith 将逗号分隔的字符串值识别为标签,可在 trace 列表中按标签过滤和分组。