| 要求 | 操作 | 实现功能 |
|---|---|---|
1. 设置 run_type="llm" | 向 @traceable 传递 run_type="llm" | LLM 专用渲染、令牌/成本显示 |
| 2. 格式化输入/输出 | 使用 OpenAI、Anthropic 或 LangChain 消息格式 | 结构化消息渲染、Playground 支持 |
3. 设置 ls_provider 和 ls_model_name | 在 metadata 中同时传递两者 | 成本跟踪、Playground 模型选择 |
| 4. 提供令牌计数 | 在运行记录上设置 usage_metadata | 令牌计数和成本计算 |
如果您使用 LangChain OSS、OpenAI 包装器 或 Anthropic 包装器,这些细节会自动处理。本页示例使用
traceable 装饰器/包装器(Python 和 JS/TS 的推荐方法)。如果您直接使用 RunTree 或 API,同样适用这些要求。消息格式
当跟踪自定义模型或自定义输入/输出格式时,必须遵循 LangChain 格式、OpenAI 补全格式或 Anthropic 消息格式。更多详情,请参考 OpenAI 聊天补全 或 Anthropic 消息 文档。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-4.1-mini”、“claude-3-opus-20240229” 等。

如果
ls_model_name 不在 extra.metadata 中,可能会使用 extra.metadata 中的其他字段来估算令牌计数。以下字段按优先级顺序使用:metadata.ls_model_nameinputs.modelinputs.model_name
metadata 字段的信息,请参阅 添加元数据和标签 指南。
提供令牌和成本信息
令牌计数支持成本计算,并显示在跟踪 UI 中。有两种提供方式:- 在运行树上设置
usage_metadata:在您的@traceable函数内部调用get_current_run_tree()/getCurrentRunTree()并设置usage_metadata字段。这不会改变您函数的返回值。 - 在输出中返回
usage_metadata:在函数返回的字典中包含usage_metadata作为顶级键。
支持的 usage_metadata 字段
| 字段 | 类型 | 描述 |
|---|---|---|
input_tokens | int | 总输入/提示令牌数 |
output_tokens | int | 总输出/补全令牌数 |
total_tokens | int | 输入 + 输出的总和(可选,可以推断) |
input_token_details | object | 细分:cache_read、cache_creation、audio、text、image |
output_token_details | object | 细分:reasoning、audio、text、image |
input_cost、output_cost 和 total_cost 字段。有关配置模型定价和在 UI 中查看成本的详细信息,请参阅 成本跟踪。
首令牌时间
如果您使用traceable 或我们的某个 SDK 包装器,LangSmith 将自动为流式 LLM 运行填充首令牌时间。
但是,如果您直接使用 RunTree API,则需要在运行树上添加 new_token 事件,以便正确填充首令牌时间。
示例如下:
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.


