【Agent开发】LangSmith让大模型执行变得透明
目录
一、LangSmith是什么?
LangSmith 是 LangChain 官方推出的一个“智能体工程平台”,可以理解为 LLM 应用的全生命周期管理平台。如果说 LCEL 是帮你在“本地”高效构建应用工作流的工具,那么 LangSmith 就是帮你将这个应用“安全可靠地送上生产线并持续监控”的平台。
它解决了 LLM 应用开发中的一个核心痛点:大模型的“黑盒”特性与“非确定性”(即同样输入可能得到不同输出)使得应用难以调试和评估。LangSmith 通过提供强大的可观测性和评估能力,让 AI 应用的行为变得透明、可控。

二、如何使用LangSmith
LangSmith 是一个与框架无关的平台,无论你是否使用 LangChain 都可以接入.
-
注册账号:你可以访问 smith.langchain.com 免费注册账号。
-
获取 API 密钥:在账号的设置页面创建你的 API 密钥。
-
集成到应用:通过设置一个简单的环境变量,即可将你的 LangChain 或 LangGraph 应用与 LangSmith 连接起来。LangSmith 也提供了 Python、TypeScript、Go 和 Java 的 SDK,方便自定义集成。
2.1 使用步骤示例
1、登录官网

2、进入主界面

3、获取LangSmith追踪配置

4、设置相关配置

5、在python项目下的.env中配置相关参数即可

PS:代码中无侵入性。若相关配置有自定义,则增加load_dotenv组件并加载配置即可。
import os
#1.导入所需的核心组件
from dotenv import load_dotenv
#从.env 文件加载我们配置的环境变量
load_dotenv()
api_key = os.getenv("DASHSCOPE_API_KEY")
6、执行项目调试后在smith官网中查看“跟踪”日志.
原有项目无需更改,smith加载.env配置后,在执行时会自动把调用日志传递到平台中, 运行原有python项目后,刷新smith界面即可。

2.2 简单的langchain示例代码
#简单的链应用,用于:处理语言的翻译
import os
#1.导入所需的核心组件
from dotenv import load_dotenv
from langchain_core.prompts import ChatPromptTemplate
#字符串解析器
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
#从.env 文件加载我们配置的环境变量
load_dotenv()
api_base = os.getenv("DASHSCOPE_API_BASE")
api_key = os.getenv("DASHSCOPE_API_KEY")
#2.定义我们的提示模板
#这个模板包含了两个动态变量:language和text。
#它清晰地指示模型,将text从英语翻译成指定的Tnguage.
system_template="将下列内容从英语翻译为{language}"
prompt_template = ChatPromptTemplate.from_messages([
("system", system_template),
("human","{text}")
])
#3.初始化我们的语言模型
#temperature=0表示我们希望模型的输出更具确定性,减少随机发挥。
model = ChatOpenAI(
base_url=api_base,
api_key=api_key,
model="qwen3.7-max",
temperature=0,
extra_body={"enable_thinking": False}
)
#4。初始化输出解析器
#StrOutputParser会将模型返回的聊天消息对象,转换为我们更易于使用的简单字符串。
parser = StrOutputParser()
#5.使用 LCEL。管道操作符 |将三大组件链接成链
#这行代码可以说是LangcChain现代用法的精髓所在。
#它以声明式的方式,定义了一个清晰的执行流程,输入一>提示模板一>模型一>解析器一>输出
chain = prompt_template | model | parser
#6.调用链并传入我们的输入数据
#我们使用 invoke方法来执行这条链。
#输入是一个字典,其键必须与提示模板中定义的变量名完全对应。
input_data = {"language":"中文", "text": "Hello, how are you?"}
response = chain.invoke(input_data)
print(f"输入:{input_data}")
print(f"翻译结果:{response}")
input_data_japanese = {"language":"日语", "text": "I love programming."}
response_japanese = chain.invoke(input_data_japanese)
print(f"\ni入: {input_data_japanese}")
print(f"翻译结果:{response_japanese}")
2.3 其他"可观测工具"了解
主流本地可观测性工具对比
| 工具 | 一句话定位 | 核心特点 | 部署与上手难度 | 适用场景 |
|---|---|---|---|---|
| Langfuse | 功能全面的开源 LLM 工程平台- | 功能最全面,覆盖追踪、评估、提示词管理、数据集、Playground 等。基于 MIT 协议-,与 LangChain、OpenAI SDK 等集成良好。 | 中等。提供 Docker 一键部署-,文档详尽。 | 寻求功能最接近 LangSmith、社区活跃的开源替代方案--11。 |
| Arize Phoenix | 专为 LLM 应用调试和生产环境设计- | 强大的可视化追踪和调试能力-。可部署在本地 Jupyter Notebook 或 Docker 中-。 | 简单。可通过 pip install 和一条命令启动-。 |
需要深入可视化、调试和评估 LLM 应用,尤其是 RAG 或 Agent 场景-。 |
| AgentLens | 为 GDPR 和严苛数据合规场景设计 | 强调数据主权,支持完全离线(Air-gap)模式。内置质量评分、幻觉检测、预算告警等功能。 | 简单。提供一键安装脚本或 Docker Compose 部署。 | 对数据隐私和合规有极高要求(如金融、医疗、欧洲市场)的团队-。 |
| PeekAI | 轻量级、本地优先的 Python Agent 调试工具 | 极简主义,一行代码 peekai.init() 即可开始追踪。数据存储在本地 SQLite,提供 CLI 和 Web UI。 |
非常简单。直接 pip install 即可。 |
快速本地调试 Python AI Agent,追求极致轻量和零配置-。 |
| Lumina | 面向生产环境的 OpenTelemetry 原生平台 | 基于 OpenTelemetry 标准-,避免厂商锁定。支持成本追踪、分布式追踪、回归测试和智能告警。 | 中等。通过 Docker Compose 快速启动。 | 已采用或计划采用 OpenTelemetry 标准,希望将 LLM 观测融入现有基础设施的团队。 |
| Lunary | 开源 LLM 可观测性与评估平台 | 功能集完整,包括追踪、提示词管理、数据集、评估和分析。基于 Apache 2.0 协议-。 | 中等。提供自托管部署选项。 | 需要一个功能全面、协议友好的开源平台。 |
-
功能最全面、社区最活跃:选择 Langfuse。它是目前公认的 LangSmith 最强开源替代者。
-
数据隐私和合规要求极高:选择 AgentLens。其“气隙模式”专为敏感环境设计。
-
追求轻量级和快速本地调试:选择 PeekAI。对于 Python 开发者来说,它几乎是零成本的调试利器。
-
希望拥抱 OpenTelemetry 标准:选择 Lumina。
-
需要深入可视化和调试:选择 Arize Phoenix。
-
需要LangSmith 自托管:选择本地化的LangSmith,不过是收费的。
三、文章总结
总的来说,LangSmith 为 LLM 应用开发提供了从调试、测试、评估到部署、监控的一站式解决方案,是构建可靠、生产级 AI 应用的关键基础设施。但是云端线上版本一般自己进行测试和使用是可以的。如果公司资金充足也可以考虑LangSmith的自托管版本。可以根据自己个人或公司的实际需要对比开源工具和LangSmith找到合适自己的“LLM监控跟踪”方案。
更多推荐




所有评论(0)