什么是 LangSmith
LangSmith 是 LangChain 团队推出的 LLM 应用工程平台,专门用于追踪、调试、测试、评估和监控大模型应用。它记录的不是模型训练过程,而是围绕模型的整条应用链路:提示词、检索、模型调用、工具执行、输出、耗时、Token、成本和用户反馈。

一句话定义:LangSmith 把一次 LLM 请求从“输入到最终回答”的过程保存成可点击、可回放、可比较的结构化运行记录。
它像一台“行车记录仪”,负责保留线上请求经过的每个路口;也像一个“实验台”,让团队能用同一批问题比较不同提示词、模型和参数。LangSmith 关注的不是模型本身有多少参数,而是模型在真实产品里如何与代码、数据和工具协作。
LangSmith 与 LangChain、LangGraph 集成紧密,但并不要求应用必须使用 LangChain。通过 SDK、环境变量、框架集成或 OpenTelemetry,其他 Python、JavaScript/TypeScript 应用也可以接入。
为什么没有 LangSmith,LLM 应用很难调试
LLM 应用难调试的根本原因是:最终答案通常由多步概率性操作共同产生,而传统日志经常只留下最终输入和输出。

传统软件报错时,开发者可以查看调用栈、变量值和异常类型。但一个 RAG 或 Agent 请求可能依次经历:
- 问题改写和意图识别。
- 提示词模板拼装与历史上下文注入。
- Embedding 生成、向量检索和重排序。
- 一轮或多轮模型调用。
- 工具选择、参数生成和外部 API 执行。
- 输出解析、事实校验、重试与最终回复。
只看最后一句“答非所问”,无法判断问题究竟来自提示词、检索、工具、上下文,还是模型输出。开发者常见的排查猜测包括:
| 只看最终回复时的猜测 | 需要验证的现场证据 |
|---|---|
| 模型是不是“犯傻”了 | 模型收到的完整提示词、模型版本和参数 |
| RAG 是不是没有知识 | 实际召回的文档、相似度、过滤条件和排序结果 |
| Agent 为什么没有调用工具 | 工具描述、模型选择、参数和工具返回值 |
| 这次请求为什么很慢 | 各个步骤的开始时间、结束时间、重试和等待时间 |
| 成本为什么突然上涨 | 输入/输出 Token、模型分布和重复调用次数 |
LangSmith 的作用是把这些中间步骤连起来,让“答案错了”变成一个可以检查的假设,例如“检索器返回的前三篇文档都来自招聘页面”。
LangSmith 的核心能力有哪些
LangSmith 的核心能力可以分成五类:追踪、调试回放、评估、提示词与数据集管理,以及生产监控和标注。

1. 追踪:把一次请求记录成轨迹树
追踪(Tracing)是 LangSmith 的基础能力。每次请求会生成一条 Trace,Trace 下面包含按父子关系组织的运行节点。一个 RAG Agent 的轨迹可以抽象成:
Trace: 回答“公司年假怎么算” └── 根运行:处理用户请求 ├── 问题改写:生成检索 query ├── Retriever:召回候选文档 ├── LLM:根据证据生成答案 ├── Tool:查询员工政策 API(可选) └── 输出校验:检查引用和格式
每个运行节点通常可以查看:
- 输入和输出,包括提示词模板展开后的实际文本。
- 模型名称、版本、temperature、最大输出 Token 等配置。
- 输入 Token、输出 Token、延迟、状态和错误。
- 检索文档、工具参数、工具结果、重试和元数据。
- 用户、会话、环境、应用版本和标签。
你得到的不是一行孤立日志,而是一棵可以展开的轨迹树。它能回答“这次请求发生了什么”,但需要明确边界:Trace 记录的是应用可以观测到的调用和数据,不等于读取模型内部不可见的神经网络计算,也不应被表述为完整暴露模型的私有思维链。

2. 调试与回放:复用同一条线上请求
调试的关键不是重新输入一个相似问题,而是保留原始请求的上下文后重复实验。LangSmith 可以在界面中查看、筛选、分享和比较 Trace,并对历史请求进行回放。
一个常见流程是:
- 按错误状态、用户反馈、会话 ID 或时间范围找到异常 Trace。
- 检查第一次出现偏差的节点,而不是只盯着最终答案。
- 修改提示词、检索参数、模型或工具配置。
- 用相同输入重新运行,比较新旧输出、延迟和成本。
- 将修复后的案例加入评估数据集,防止问题再次出现。

例如,原提示词回答“如何提高专注力”用了 512 字,新提示词要求简洁后变成 156 字,但删掉了一个安全提醒。并排比较能让团队同时检查长度、完整性和约束遵循,而不是凭印象判断“新版本更好”。
3. 评估:让提示词和模型改动可回归
评估(Evaluation)用于回答“这次改动是否真的让应用变好”。LangSmith 的基本方法是把测试问题、参考答案或评分标准整理成数据集,然后在相同数据集上运行不同版本。

一个可复现的评估实验通常包含三部分:
| 部分 | 作用 | 例子 |
|---|---|---|
| 数据集(Dataset) | 保存输入、参考答案或评估标准 | 100 条真实客服问题和期望要点 |
| 评估器(Evaluator) | 把输出转换成分数或标签 | 字符串匹配、规则检查、LLM-as-a-Judge |
| 实验结果(Experiment) | 比较版本并定位失败样本 | 新旧 Prompt 的准确性、延迟和成本 |
评估器可以是确定性的,也可以让另一个 LLM 充当裁判。常见维度包括事实正确性、相关性、完整性、引用忠实度、格式遵循和安全性。对于 RAG 应用,最好把“检索是否召回证据”和“答案是否被证据支持”分开评分。
评估的价值不在于生成一个漂亮的平均分,而在于发现回归:你修好了一个问题,却没有悄悄让另外十个问题变差。自动评估也不是绝对真理,测试集代表性、评分标准、评审模型偏差和人工抽检都会影响结论。
4. 提示词、数据集与实验管理
提示词是 LLM 应用的运行配置,也应像代码一样拥有版本和变更记录。LangSmith 可以集中管理提示词模板,并把模板版本与 Trace、数据集实验和部署环境关联起来。
这让团队可以回答:
- 线上某条回答究竟使用了哪个 Prompt 版本?
- 新模型带来的质量变化,是否其实来自提示词同时变更?
- 哪个实验使用了相同的数据集和参数?
- 某个失败样本是否已经被加入回归集?
需要注意,提示词版本管理不能替代代码审查、密钥管理和发布流程。生产变更仍应经过权限控制、审查和回滚设计。
5. 生产监控与标注:把真实反馈变成数据
上线后,LangSmith 可以持续接收真实用户请求,并按项目、版本、标签、延迟、错误、Token 或反馈筛选 Trace。团队还可以直接在轨迹上标注“回答准确”“存在幻觉”“检索错误”等质量信号。

典型闭环是:
- 用户点踩,或标注员发现一条事实错误的回答。
- 开发者打开对应 Trace,检查检索、提示词和模型节点。
- 团队在 Trace 上记录问题类型和改进方向。
- 将高价值样本导回数据集,作为下一轮回归测试。
- 新版本上线后,继续观察相同标签和指标是否改善。
这样,产品、运营、标注和研发可以围绕同一份运行证据协作,而不是依靠截图和口头描述。
LangSmith 如何定位一个 RAG 答错案例
假设 RAG 问答机器人把“公司年假怎么算”回答错了。传统排查通常只能看到最终回复,然后猜是模型知识不足。LangSmith Trace 可以把问题拆成可验证的步骤。

打开这条 Trace 后,开发者发现检索器返回了三篇文档:前两篇是招聘页面,只有第三篇是员工手册。模型其实忠实地依据了错误上下文作答,根因不是“模型突然变笨”,而是召回阶段的 query 不够准确。
修复流程可以是:
- 检查原始问题、改写后的 query 和过滤条件。
- 调整 query 重写策略、文档元数据过滤或重排序配置。
- 用相同 Trace 输入回放,不要求用户重新触发。
- 确认员工手册进入高排名结果,答案引用正确证据。
- 把该问题加入 RAG 回归数据集,持续验证召回和生成质量。
这个例子说明,LangSmith 不会自动修复检索器,但它能让根因定位从猜测变成证据。
LangSmith 与 Langfuse、普通日志有什么区别
LangSmith 与 Langfuse 都属于 LLM 可观测性和评估平台;普通日志则是更底层的事件记录。选择时应比较数据控制、生态集成和团队运维能力,而不是只比较某个页面上的功能数量。
| 维度 | 普通日志 / APM | LangSmith | Langfuse |
|---|---|---|---|
| 主要目标 | 服务健康、错误和性能 | LLM 链路、Prompt、评估和 Agent 工作流 | LLM 链路、成本、评估和反馈 |
| 数据粒度 | 事件、请求和基础设施指标 | Trace、模型调用、检索、工具和实验 | Trace、Observation、Generation 和 Score |
| 生态特点 | 与语言和基础设施无关 | 与 LangChain、LangGraph 集成紧密,也支持其他框架 | 开源核心、OpenTelemetry 和多框架集成 |
| 部署选择 | 取决于 APM 产品 | Cloud、混合或特定企业/自托管方案 | Cloud 或自托管开源部署 |
| 适合问题 | “服务是否正常?” | “这条 Agent 为什么这样执行?” | “这条调用链的质量和成本如何?” |
三者不是互相替代的关系。生产系统仍需要基础设施指标、应用日志和错误告警;LangSmith 或 Langfuse 补充的是 LLM 调用链、文本质量和实验回归层。具体部署、保留期限、价格和自托管能力会随版本与合同变化,正式选型前应核对官方文档。
如何开始接入 LangSmith
最稳妥的接入方式是先覆盖一个高价值流程,例如客服 RAG 或多工具 Agent,再逐步扩大范围。不要一开始就把所有业务字段和完整文档全量上传。
一个通用的接入步骤是:
- 在 LangSmith 创建工作区和 API Key,并确定数据区域、保留期限与权限模型。
- 为开发、测试和生产设置不同的项目或环境标签。
- 使用框架集成、SDK 或 OpenTelemetry 为根请求和关键子步骤埋点。
- 记录模型、Prompt 版本、检索结果、工具调用、Token、延迟和错误。
- 接入用户反馈,把高价值失败样本加入数据集。
- 先运行离线评估,再设置线上延迟、错误、成本和质量告警。
如果应用使用 LangChain 或 LangGraph,可以优先采用官方回调和集成;自研编排系统则可以使用 LangSmith SDK 手动创建运行节点。接入完成后,至少用一条成功请求、一条工具失败请求和一条 RAG 召回错误请求验证轨迹是否完整。
LangSmith 有哪些限制和风险
LangSmith 提高的是可见性、复现能力和评估效率,不会自动消除幻觉、修复检索器或保证合规。追踪数据本身也可能包含高度敏感的信息。
| 限制或风险 | 具体表现 | 应对方式 |
|---|---|---|
| 敏感数据泄露 | Prompt、文档和输出可能包含个人信息、密钥或内部资料 | 字段白名单、脱敏、加密、最小权限和删除策略 |
| 追踪开销 | 全量记录长上下文会增加网络、存储和费用 | 异步批量上报、采样、限制大对象和设置保留期 |
| 数据不完整 | 异常退出、跨服务传播失败或漏埋点造成断链 | 覆盖错误路径,监控上报失败率并在退出前刷新缓冲 |
| 评估偏差 | LLM-as-a-Judge 可能偏好某种表达,无法可靠判断领域事实 | 规则、人工抽检和模型评估混合使用,保留评分依据 |
| 成本归因偏差 | 自定义模型价格、缓存 Token 或供应商计费变化导致估算不准 | 定期与供应商账单核对,维护价格配置 |
| 观察不等于修复 | Trace 能指出异常节点,但不会替团队修改业务逻辑 | 建立“反馈-根因-修复-回归-监控”闭环 |
| 隐私与合规责任 | 使用托管服务不等于自动满足数据驻留和合规要求 | 评估区域、合同、访问审计、数据删除和供应商责任边界 |
尤其要注意:Trace 记录的是应用可观测步骤,不是模型内部的完整思维过程;自托管也不等于自动合规。是否记录原始输入、完整检索文档和最终输出,应根据业务授权、用途限制和保留周期做最小化设计。
常见问题
LangSmith 是 LangChain 的一部分吗?
LangSmith 由 LangChain 团队推出,与 LangChain 和 LangGraph 集成紧密,但它是独立的平台。其他框架或自研 LLM 应用也可以通过 SDK、环境变量或 OpenTelemetry 接入。
LangSmith 能看到模型的思维链吗?
LangSmith 能看到应用记录下来的提示词、模型输出、检索和工具调用等运行数据,但不等于读取模型内部不可见的神经网络计算,也不应把 Trace 当作模型私有思维链。
LangSmith 和 Langfuse 哪个更好?
没有脱离场景的“更好”。深度使用 LangChain/LangGraph、希望采用其原生工作流时,应重点评估 LangSmith;重视开源、自托管或跨框架集成时,可以重点评估 Langfuse。最终要用真实请求比较权限、数据驻留、评估、成本和运维。
LangSmith 只能用于线上监控吗?
不能。它同时支持开发阶段的 Trace 调试、历史请求回放、Prompt 版本管理、数据集实验和离线评估,也可以在生产环境持续监控性能与质量。
LLM 应用什么时候值得接入 LangSmith?
当应用包含 RAG、多轮模型调用、工具使用、Agent 决策或持续 Prompt 迭代时,接入价值通常比较明显。如果只是少量离线调用,结构化日志可能已经足够,应先评估平台带来的维护与数据治理成本。
LangSmith 会自动让回答更准确吗?
不会。LangSmith 提供运行证据、评估数据和回归机制;准确性仍取决于模型、提示词、检索、工具、业务规则和测试集质量。它缩短的是发现问题和验证修复的路径。
总结
LangSmith 是一个面向 LLM 应用的可观测、调试、评估和监控平台。它用 Trace 记录一次请求经过的提示词、检索、模型和工具步骤,用回放与对比支持快速调试,用数据集和评估器做自动化回归,再把线上用户反馈沉淀为新的测试样本。

它的价值可以概括为三句话:
- 把 LLM 应用从黑箱变成透明链路。
- 把调试从“模型是不是抽风”变成基于 Trace 的根因分析。
- 把一次性人工检查变成可持续的评估、监控和回归流程。
LangSmith 不是用来写业务代码的框架,也不是让模型自动变聪明的魔法。它做的是传统软件工程一直在做的事:记录现场、复现问题、比较版本、监控上线结果。区别在于,这次被观测的对象变成了由模型、数据和工具共同组成的新型应用链路。

当大模型应用从“能跑”走向“稳定上线”,追踪、回放、评估和监控会逐渐从可选项变成工程基础设施。LangSmith 的核心贡献,就是让团队终于能看见代码在模型世界里到底怎么跑。

