LangSmith:LLM 应用调试与评估平台

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 应用。

相关推荐
陳陈陳10 小时前
Workflow vs Agent:别再被“调包侠”忽悠了,一张图看懂AI工程的“骨架”与“大脑”
langchain·agent·workflow
一只小bit13 小时前
LangGraph 记忆、人机交互、时间旅行和核心能力
机器学习·langchain·人机交互·langgraph
早点睡啊Y16 小时前
深入学 LangChain 官方文档(十六)Built-in 与 Custom Middleware
langchain
老刘说AI17 小时前
AI服务核心: 高并发原理与性能监控调优
人工智能·神经网络·langchain·llama·持续部署
展示猪肝18 小时前
LangChain学习笔记(一):基础入门与核心概念详解
langchain
TheBestRucy20 小时前
RAG知识库问答系统落地:从向量检索到上下文增强的全链路实践
人工智能·python·langchain·aigc·交互
早点睡啊Y21 小时前
深入学 LangChain 官方文档(十五)Human-in-the-loop 与 Guardrails
langchain
中微极客1 天前
2026年生产级RAG技术栈选型:LangChain+Cohere Rerank实战
人工智能·langchain
只一1 天前
拿捏大模型输出随机性:Temperature、Top-K 原理 + LangChain 工程落地实战
javascript·langchain