| 要求 | 操作 | 启用功能 |
|---|---|---|
1. 设置 run_type="llm" | 将 run_type="llm" 传递给 @traceable | LLM 特定渲染、token/成本显示 |
| 2. 格式化输入/输出 | 使用 OpenAI、Anthropic 或 LangChain 消息格式 | 结构化消息渲染、Playground 支持 |
3. 设置 ls_provider 和 ls_model_name | 在 metadata 中传递两者 | 成本追踪、Playground 模型选择 |
| 4. 提供 token 计数 | 在运行上设置 usage_metadata | token 计数和成本计算 |
如果您使用 LangChain OSS、OpenAI 包装器 或 Anthropic 包装器,这些细节会自动处理。本页示例使用
traceable 装饰器/包装器(Python 和 JS/TS 的推荐方法)。如果您直接使用 RunTree 或 API,同样的要求也适用。消息格式
追踪自定义模型或自定义输入/输出格式时,必须遵循 LangChain 格式、OpenAI completions 格式或 Anthropic 消息格式。更多详情,请参阅 OpenAI Chat Completions 或 Anthropic Messages 文档。LangChain 格式如下:将自定义 I/O 格式转换为 LangSmith 兼容格式
如果您使用自定义输入或输出格式,可以使用@traceable 装饰器(Python)或 traceable 函数(TS)上的 process_inputs/processInputs 和 process_outputs/processOutputs 函数将其转换为 LangSmith 兼容格式。
process_inputs/processInputs 和 process_outputs/processOutputs 接受函数,允许您在特定追踪的日志记录到 LangSmith 之前转换其输入和输出。它们可以访问追踪的输入和输出,并可以返回包含处理后数据的新字典。
以下是使用 process_inputs 和 process_outputs 将自定义 I/O 格式转换为 LangSmith 兼容格式的模板示例:
在追踪中识别自定义模型
使用自定义模型时,建议同时提供以下metadata 字段,以便在查看追踪和 过滤 时识别模型。
ls_provider:模型的提供商,例如"openai"、"anthropic"。ls_model_name:模型的名称,例如"gpt-5.4-mini"、"claude-3-opus-20240229"。
chat_model,可以将输出“归约”为与非流式版本相同的格式。这仅在 Python 中受支持:
在
metadata 中设置 ls_model_name 是 LangSmith 识别模型并计算自定义 LLM 追踪成本所必需的。没有它,token 计数可能仍会被记录,但成本不会被估算。metadata 字段的信息,请参阅 添加元数据和标签 指南。
提供 token 和成本信息
token 计数支持成本计算,LangSmith 在 追踪项目 UI 中显示。有两种提供方式:- 在运行树上设置
usage_metadata:在您的@traceable函数内调用get_current_run_tree()/getCurrentRunTree()并设置usage_metadata字段。这不会改变函数的返回值。 - 在输出中返回
usage_metadata:在函数返回的字典中包含usage_metadata作为顶级键。
支持的 usage_metadata 字段
| 字段 | 类型 | 描述 |
|---|---|---|
input_tokens | int | 总输入/提示 token 数 |
output_tokens | int | 总输出/补全 token 数 |
total_tokens | int | 输入 + 输出的总和(可选,可推断) |
input_token_details | object | 明细:cache_read、cache_creation、cache_read_over_200k、ephemeral_5m_input_tokens、ephemeral_1h_input_tokens、audio、text、image |
output_token_details | object | 明细:reasoning、audio、text、image |
input_cost、output_cost 和 total_cost 字段。有关配置模型定价和在 UI 中查看成本的详细信息,请参阅 成本追踪 页面。
首个 token 时间
如果您使用traceable 或 SDK 包装器之一,LangSmith 将自动填充流式 LLM 运行的首个 token 时间。但是,如果您直接使用 RunTree API,则需要向运行树添加 new_token 事件,以便正确填充首个 token 时间。
以下是示例:
相关内容
- 自定义检测:核心
@traceable和RunTree模式。 - 在追踪函数内访问当前运行(span):使用
get_current_run_tree()在运行时设置usage_metadata和其他字段。 - 追踪 OpenAI 应用:使用 OpenAI 包装器时的自动 token 和成本追踪。
- 追踪 Anthropic 应用:使用 Anthropic 包装器时的自动 token 和成本追踪。
- 集成概述:具有内置 LangSmith 支持的提供商和框架的完整列表。
将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

