环境变量配好后,不需要改代码,也不需要手动上报:只要程序里执行了 load_dotenv(),LangSmith 就会自动记录每次运行。这一篇跑三个示例,然后看后台能看到什么。
14.1 运行任意 LangChain 程序
示例 1:ChatDeepSeek。
import os
from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek
# 加载 .env,override=True 表示 .env 优先
load_dotenv(override=True)
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
model = ChatDeepSeek(
api_key=DEEPSEEK_API_KEY,
api_base=DEEPSEEK_BASE_URL,
model_name="deepseek-v4-flash",
)
print(model.invoke("你好"))
示例 2:init_chat_model 连接 CloseAI。
from langchain.chat_models import init_chat_model
from dotenv import load_dotenv
import os
load_dotenv(override=True)
model = init_chat_model(
model="deepseek-v4-flash",
model_provider="openai",
api_key=os.getenv("CLOSEAI_API_KEY"),
base_url=os.getenv("CLOSEAI_BASE_URL"),
)
print(model.invoke("你好,用一句话回答"))
示例 3:带 config 的调用。run_name、tags、metadata 会一起上报到 LangSmith,后续可以按名称、标签或用户 ID 筛选运行记录。
from langchain.chat_models import init_chat_model
from dotenv import load_dotenv
import os
from rich import print as rprint
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,
temperature=0.2,
max_tokens=500,
configurable_fields=("model", "model_provider", "temperature", "max_tokens"),
)
config = {
"run_name": "joke_generation",
"tags": ["my_tag1", "my_tag2"],
"metadata": {
"user_id": "demo_user",
"session_id": "sess_123",
},
"configurable": {
"model": "deepseek-v4-pro",
"model_provider": "openai",
"temperature": 0.7,
"max_tokens": 1000,
},
}
response = model.invoke("1 + 2 = ?", config=config)
rprint(response)
14.2 在 Tracing 中查看项目
打开 LangSmith WebUI,左侧进入 Tracing,就能看到按 LANGSMITH_PROJECT 命名的项目。项目行里直接展示最近运行时间、Trace 数量、错误率、P50/P99 延迟、Token 总量和成本。

点击项目任意位置进入详情。Runs 列表会显示每次调用的模型或类名(ChatOpenAI、ChatDeepSeek、ChatOpenRouter 等)、输入、输出、错误、开始时间、延迟和所属数据集。

点击某一条运行记录,可以看到更细的信息:完整的 Prompt、模型返回、Token 消耗、每一步的耗时,以及你在 config 里设置的 run_name、tags、metadata。
14.3 查看监控指标
左侧进入 Monitoring,先选择要观察的项目。顶部可以切换时间范围,默认最近 7 天。

指标分成了多个标签页,点击标签或下滑页面即可切换:
- Traces:Trace 数量随时间的变化,区分成功与错误;
- LLM Calls:LLM 调用次数、P50/P99 延迟;
- Cost & Tokens:总成本、单次 Trace 成本、Token 消耗;
- Tools:工具调用的统计;
- Run Types:按运行类型分组;
- Feedback Scores:人工或自动评估的分数。

例如「LLM Calls」页会同时给出调用次数和延迟分位数:绿色是成功、红色是错误;延迟图里蓝线是 P50、紫线是 P99。P99 明显高于 P50,说明少数请求存在长尾延迟。

这些报表不需要额外开发,LangSmith 会根据上报的 Trace 自动聚合。项目上线后,先看错误率和 P99 延迟,再看 Token 与成本趋势,通常就能定位大部分问题。
14.4 小结
LangSmith 的使用链路很短:账号与 Key → 四个环境变量 → 正常跑 LangChain 代码 → 在 Tracing 看单次调用,在 Monitoring 看整体趋势。真正需要排错时,再往下钻到某一条 Trace 的 Prompt、返回和耗时。
上一篇:注册 LangSmith 并配置 API Key;系列第一篇:为什么需要 LangChain。
本文根据公开课程课件整理,并结合 LangSmith 官方文档核对与补充。