1. 为什么需要 LangSmith?
随着 LLM 应用逐渐从 Demo 阶段进入生产环境,开发者会遇到越来越多的问题:
例如:
- 为什么模型回答错误?
- 是 Prompt 设计的问题吗?
- 是知识库检索到了错误内容?
- 是模型本身能力不足?
- Agent 是否调用了错误的工具?
- 为什么 Token 消耗突然增加?
- 哪一个步骤导致了请求变慢?
传统应用通常可以通过日志、链路追踪等方式定位问题,但是 LLM 应用存在大量动态行为:
- Prompt 会影响模型输出
- 检索内容会影响最终答案
- Agent 会根据上下文选择不同工具
- 同一个输入可能产生不同结果
因此,LLM 应用需要一种新的可观测能力:
LLM Observability(大模型可观测性)
它能够帮助开发者了解一次请求完整的执行过程,并分析:
- 输入是什么
- 模型为什么这样回答
- 中间步骤发生了什么
- 消耗了多少 Token
- 哪一步产生了问题
2. LangSmith 是什么?
LangChain 官方推出了 LangSmith,一个专门面向 LLM 应用的开发与生产管理平台。
LangSmith 主要用于:
- Tracing(链路追踪)
- Debugging(调试)
- Evaluation(评估)
- Monitoring(生产监控)
简单来说:
LangSmith 就像 LLM 应用领域的 APM 平台,可以帮助开发者观察、调试和优化 Agent 应用。
3. LangSmith 核心能力
3.1 Trace 链路追踪
这是 LangSmith 最核心功能。
一次 Agent 请求:
arkts
用户请求
|
Agent
|
+-- 思考
|
+-- 查询数据库
|
+-- 调用API
|
+-- 返回答案
LangSmith 会记录完整执行链。如果最终回答错误,可以通过 Trace 快速定位:开发者可以看到:
- 模型输入
- 模型输出
- Prompt是什么
- Token 消耗 多少
- 延迟 时间
- 中间的步骤
- Tool调用结果如何
开始体验
在官网注册账号并登陆:https://smith.langchain.com/

创建一个API Key


保存 API Key,后续项目中需要使用。

测试代码
创建 Python 项目,并安装依赖:
arkts
pip install -U langchain
# langchain和openai整合包
pip install -U langchain-openai
# langchain和deepseek的整合包
pip install -U langchain-deepseek
# 读取.env 文件,并将其加载到系统的环境变量(os.environ)中。
pip install -U python-dotenv
项目根目录创建 .env 文件:
arkts
# deepseek的apikey
DEEPSEEK_API_KEY=sk-xxxxxxxxx
DEEPSEEK_BASE_URL=https://api.deepseek.com
#langchain-core已经依赖了langsmith
#是否启用TRACING
LANGSMITH_TRACING=true
#langsmith的地址
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGSMITH_API_KEY=xxxxx
#自己取一个项目名字
LANGSMITH_PROJECT=langsmith-demo
测试代码如下
python
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model
# 将.env文件中的变量加载为环境变量
load_dotenv(override=True)
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
# 初始化聊天模型
model = init_chat_model(model="deepseek-v4-flash",
model_provider="deepseek",
api_key=DEEPSEEK_API_KEY,
base_url=DEEPSEEK_BASE_URL)
# 调用一次模型
print(model.invoke("你好"))
查看Tracing链接追踪
点击Tracing

查看链路详情

3.2 Monitoring:生产监控
Tracing 主要用于查看单次请求。而 Monitoring 更关注线上整体运行情况。可以用来查看运行报表,此处提供了大量指标的报表用于分析查看

3.3. Evaluation:为什么需要评估?
LLM 最大问题:同一个输入:可能产生不同输出。
如果全都需要人工进行测试,那就成本比较高了,所以我们需要自动评估。
LangSmith Evaluation 基本模型如下:
plain
1. Dataset
|
|
2.Target Application
|
|
3.Evaluator
|
|
4. Score
使用测试数据运行 Agent,再通过 Evaluator 对结果进行评分。
有这几个核心概念需要理解:
- Dataset 是测试样本
- Target 是被测试 Agent
- Evaluator 是评分器
- Judge Model 是评审模型
3.4. Dataset 数据集
评估首先需要测试数据。我们先简单准备一下
例如客服 Agent:
| 问题 | 标准答案 |
|---|---|
| 退款多久到账 | 3-5天 |
| 如何修改地址 | 联系客服 |
新增数据集

按照要求导入CSV或者JSONL文件


测试代码
python
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model
from langsmith import Client
# 将.env文件中的变量加载为环境变量
load_dotenv(override=True)
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
# 1. 初始化聊天模型
model = init_chat_model(model="deepseek-v4-flash",
model_provider="deepseek",
api_key=DEEPSEEK_API_KEY,
base_url=DEEPSEEK_BASE_URL)
# 2. 定义了一个高级agent
def my_agent(user_input):
result = model.invoke(user_input)
return result.content
# 3.用来测试my_agent
def target(inputs):
print(inputs)
return my_agent(
inputs["inputs_1"]
)
# 4. 用于评估的模型
judge_model = init_chat_model(model="deepseek-v4-flash",
model_provider="deepseek",
api_key=DEEPSEEK_API_KEY,
base_url=DEEPSEEK_BASE_URL)
# 5. 定义一个评估器
def correctness_evaluator(run, example):
"""
run:
被测试Agent的输出
example:
Dataset中的标准答案
"""
question = example.inputs["inputs_1"]
expected = example.outputs["outputs_1"]
actual = run.outputs["output"]
prompt = f"""
你是一个专业评测员。
判断AI回答是否正确。
问题:
{question}
标准答案:
{expected}
AI回答:
{actual}
请输出0-1之间的分数。
只返回数字。
"""
result = judge_model.invoke(prompt)
score = float(result.content)
return {
"key": "correctness",
"score": score
}
# 进行测试
client = Client()
experiment_results = client.evaluate(
target,
data="客服话术",
evaluators=[
correctness_evaluator
]
)
for item in experiment_results._results:
evaluation_results = item["evaluation_results"]["results"]
for result in evaluation_results:
print(
f"评估项: {result.key}, 分数: {result.score}"
)
执行成功后多了一个 evaluators

可以查看模型评估结果

3.5 Evaluators
除了通过代码定义 Evaluator 外,LangSmith 还支持在后台创建评估器。
这种方式适用于:
- 不希望每次修改评估规则都重新发布代码;
- 让测试人员或业务人员参与评估规则配置;
- 快速调整评分标准。
下面我们创建一个后台 Evaluator。
进入 LangSmith 控制台,选择 Evaluators,新增一个评估器。

简单配置一下evaluator

完成配置后,一个评估器就创建完成。
接下来运行一次模型调用:
plain
print(model.invoke("你好"))
LangSmith 会自动捕获此次调用,并使用配置好的 Evaluator 进行评分。
最终可以在 Evaluation 页面查看评估结果。

4.关于LangSmith的费用
https://smith.langchain.com/o/b2f09aa3-1cce-4790-b756-cf34729b3822/settings/payments
当然LangSmith不是完全免费的。根据官网的的 Plans and pricing(套餐价格) ,主要分为 Developer Free(免费版) 、Plus(团队版) 、Enterprise(企业版)。
其收费标准整理如下:
| 项目 | Developer Free 免费版 | Plus 团队版 | Enterprise 企业版 |
|---|---|---|---|
| 价格 | 免费 | $39 / seat / month(每用户/月) | 定制报价 |
| 适合 | 个人开发者 | 团队开发、Agent 部署 | 企业级应用 |
| Trace 数量 | 每月最多 5,000 traces,超过后按量付费 | 每月最多 10,000 traces,超过后按量付费 | 定制 |
| Seat(成员) | 1 个 | 可增加无限成员 | 无限 |
| Agent 数量 | 1 个 | 无限 | 定制 |
| Workspace | 1 个 | 最多 3 个 | 无限 |
| LCU(计算额度) | 5 LCU/月,之后按量付费 | 25 LCU/月,之后按量付费 | 定制 |
| 社区支持 | Community Forum | Email + Community Forum | SLA 支持 |
| 登录方式 | Google、GitHub、Discord | Google、GitHub、Discord | 自定义 SSO |
| Deployment | 不支持 | 支持(Small Serverless Deployment) | 定制 |
| Sandbox | 5 LCU/月,1 LSU/月,之后付费 | 同左 | 定制 |
| Engine | 需要升级 | 支持 | 定制 |
| Insights | 需要升级 | 需要升级 | 无限 |
| RBAC 权限控制 | 不支持 | 不支持 | 支持 |
| Team Training | 不支持 | 不支持 | 支持 |
5.总结
通过本文可以看到,LangSmith 主要解决了 LLM 应用开发中的三个问题:
Tracing(链路追踪)
帮助开发者查看一次请求完整的执行过程,包括 Prompt、模型输出、Token 消耗、Tool 调用以及每一步的耗时。
Evaluation(效果评估)
通过 Dataset 和 Evaluator,对 Agent 的输出进行自动化评估,帮助我们判断 Prompt 优化、模型更换或者流程调整后,效果是否真正提升。
Monitoring(生产监控)
帮助开发者观察线上 LLM 应用运行情况,包括请求量、延迟、错误以及资源消耗。
简单来说:
LangSmith 就像传统应用中的 APM 平台,只不过它面向的是 LLM 应用。