name: langsmith-tracing description: LangSmith 追踪与调试设置,用于 LLM 应用程序。配置可观测性、捕获追踪记录,并为 LangChain/LangGraph 智能体启用调试。 allowed-tools: Read, Grep, Write, Edit, Bash, Glob, WebFetch
langsmith-tracing
为使用 LangChain 和 LangGraph 框架构建的 LLM 应用程序配置 LangSmith 可观测性与追踪。
概述
LangSmith 是 LangChain 提供的托管可观测性套件,提供:
- LLM 应用程序的仪表板和告警功能
- 人在回路评估能力
- 与 LangChain/LangGraph 的深度集成
- 用于嵌套追踪的运行树模型
- 与 Claude、VSCode 的 MCP 连接
功能
核心追踪设置
- 初始化 LangSmith 客户端和 API 配置
- 配置项目/工作区设置
- 设置追踪收集和采样
- 为智能体执行启用调试日志记录
集成模式
- 带有自动插桩的 LangChain 链追踪
- LangGraph 工作流状态跟踪
- 为非 LangChain 代码创建自定义跨度
- 父子追踪关系
调试功能
- 获取执行追踪记录进行分析
- 查询运行历史和元数据
- 导出追踪记录以供离线分析
- 比较不同版本间的运行情况
使用方法
环境设置
# 设置所需环境变量
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<你的API密钥>
export LANGCHAIN_PROJECT=<项目名称>
Python 集成
from langsmith import Client, traceable
from langchain.callbacks.tracers import LangChainTracer
# 初始化客户端
client = Client()
# 使用 @traceable 装饰器处理自定义函数
@traceable(name="custom_operation")
def my_function(input_data):
# 你的逻辑代码
return result
# 为 LangChain 初始化追踪器
tracer = LangChainTracer(project_name="my-project")
# 与 LangChain 链一起使用
chain.invoke(input, config={"callbacks": [tracer]})
追踪检索
# 从 LangSmith 获取追踪记录
runs = client.list_runs(
project_name="my-project",
start_time=datetime.now() - timedelta(hours=24),
execution_order=1, # 仅根运行
error=False, # 仅成功运行
)
for run in runs:
print(f"运行 ID: {run.id}")
print(f"延迟: {run.latency_p99}")
print(f"令牌数: {run.total_tokens}")
任务定义
在保姆进程中使用时,此技能生成:
const langsmithTracingTask = defineTask({
name: 'langsmith-tracing-setup',
description: '为应用程序配置 LangSmith 追踪',
inputs: {
projectName: { type: 'string', required: true },
apiKeyEnvVar: { type: 'string', default: 'LANGCHAIN_API_KEY' },
samplingRate: { type: 'number', default: 1.0 },
enableDebug: { type: 'boolean', default: false }
},
outputs: {
configured: { type: 'boolean' },
projectUrl: { type: 'string' },
artifacts: { type: 'array' }
},
async run(inputs, taskCtx) {
return {
kind: 'skill',
title: `为 ${inputs.projectName} 配置 LangSmith 追踪`,
skill: {
name: 'langsmith-tracing',
context: {
projectName: inputs.projectName,
apiKeyEnvVar: inputs.apiKeyEnvVar,
samplingRate: inputs.samplingRate,
enableDebug: inputs.enableDebug,
instructions: [
'验证 LangSmith API 凭据是否可用',
'创建或验证项目配置',
'在代码库中设置追踪插桩',
'配置采样率和调试设置',
'验证追踪记录是否正确捕获'
]
}
},
io: {
inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
outputJsonPath: `tasks/${taskCtx.effectId}/result.json`
}
};
}
});
适用流程
- llm-observability-monitoring
- agent-evaluation-framework
- react-agent-implementation
- conversation-quality-testing
- regression-testing-agent
外部依赖
- LangSmith 账户和 API 密钥
- LangChain Python 库
- langsmith Python 包
参考资料
相关技能
- SK-OBS-002 langfuse-integration
- SK-OBS-003 phoenix-arize-setup
- SK-OBS-004 opentelemetry-llm
相关智能体
- AG-OPS-004 observability-engineer
- AG-SAF-004 agent-evaluator