Skip to main content
LangSmith CLI 是一个用于查询和管理您的 LangSmith 数据的命令行工具。它专为开发者和 AI 编程代理设计,默认输出 JSON 格式以便于脚本编写,并提供 --format pretty 选项以生成人类可读的表格。当您需要对 LangSmith 数据进行可脚本化的访问时,例如批量导出、自动化或让编程代理直接访问您的追踪、运行和数据集,可以使用此工具。
LangSmith CLI 目前处于 alpha 阶段。命令、标志和输出模式可能会在版本之间发生变化。请在 GitHub 上报告问题。

安装

curl -fsSL https://cli.langsmith.com/install.sh | sh
随时可以升级:
langsmith self-update
使用 --dry-run 标志可以预览更新而不实际安装。

认证

将您的 API 密钥设置为环境变量:
export LANGSMITH_API_KEY="lsv2_..."
可选地,为查询设置默认项目:
export LANGSMITH_PROJECT="my-default-project"
如果您使用 LangSmith 自托管混合部署,还需设置端点:
export LANGSMITH_ENDPOINT="https://your-langsmith-instance.com"
或者,将它们作为每个命令的标志传递:
langsmith --api-key lsv2_... trace list --project my-app

快速入门

以下命令涵盖了核心资源类型:
# 列出追踪项目
langsmith project list

# 列出项目中的最近追踪
langsmith trace list --project my-app --limit 5

# 获取包含完整详情的特定追踪
langsmith trace get <trace-id> --project my-app --full

# 列出包含令牌计数的 LLM 运行
langsmith run list --project my-app --run-type llm --include-metadata

# 数据集和实验
langsmith dataset list
langsmith experiment list --dataset my-eval-set

# 对话线程
langsmith thread list --project my-chatbot

# 沙箱
langsmith sandbox list
langsmith sandbox tunnel my-vm --remote-port 5432

输出格式

默认 JSON 输出到标准输出 — 便于管道、脚本或传递给代理:
langsmith trace list --project my-app
美化表格 --format pretty 用于人类可读的输出:
langsmith --format pretty trace list --project my-app
写入文件 -o <路径>
langsmith trace list --project my-app -o traces.json

命令

每个命令组针对特定的 LangSmith 资源。大多数命令支持 --limit--offset 和一组共享的过滤标志

列出项目

默认返回最多 20 个项目,按最近活动排序。仅列出追踪项目。(使用 experiment list 列出评估实验。)
langsmith project list
langsmith project list --limit 50 --name-contains chatbot
langsmith --format pretty project list

查询追踪

默认为最近 7 天,最新在前。使用 --since--last-n-minutes 更改时间窗口。
langsmith trace list --project my-app --limit 50 --last-n-minutes 60
langsmith trace list --project my-app --error                     # 仅错误
langsmith trace list --project my-app --min-latency 5             # 慢追踪 (>5秒)
langsmith trace list --project my-app --tags production           # 按标签过滤
langsmith trace list --project my-app --full                      # 所有字段
langsmith trace list --project my-app --show-hierarchy --limit 3  # 包含完整运行树
langsmith trace get <trace-id> --project my-app --full
langsmith trace export ./traces --project my-app --limit 20 --full

查询运行

默认返回 50 个结果(大多数其他命令默认为 20)。相同的 7 天时间窗口适用。使用 --since--last-n-minutes 覆盖。
langsmith run list --project my-app --run-type llm
langsmith run list --project my-app --run-type tool --name search
langsmith run list --project my-app --min-tokens 1000 --include-metadata
langsmith run get <run-id> --full
langsmith run export llm_calls.jsonl --project my-app --run-type llm --full

查询线程

所有线程命令都需要 --project
langsmith thread list --project my-chatbot --last-n-minutes 120
langsmith thread get <thread-id> --project my-chatbot --full

管理数据集

dataset export 导出数据集中的示例(行),而不是数据集元数据本身。
langsmith dataset list
langsmith dataset list --name-contains eval
langsmith dataset get my-dataset
langsmith dataset create --name my-eval-set --description "v2 的问答对"
langsmith dataset delete my-old-dataset --yes
langsmith dataset export my-dataset ./data.json --limit 500
langsmith dataset upload data.json --name new-dataset

管理示例

创建或列出时,使用 --split 将示例分配给命名的分割(例如 testtrain)。
langsmith example list --dataset my-dataset --limit 50
langsmith example list --dataset my-dataset --split test
langsmith example create --dataset my-dataset \
  --inputs '{"question": "What is LangSmith?"}' \
  --outputs '{"answer": "A platform for LLM observability"}' \
  --split test
langsmith example delete <example-id> --yes

管理评估器

评估器可以是离线的(在实验期间针对数据集运行)或在线的(针对实时项目运行)。使用 --sampling-rate 仅评估一部分生产运行,使用 --replace 按名称覆盖现有评估器。
langsmith evaluator list
langsmith evaluator upload evals.py --name accuracy \
  --function check_accuracy --dataset my-eval-set
langsmith evaluator upload evals.py --name latency-check \
  --function check_latency --project my-app --sampling-rate 0.5
langsmith evaluator upload evals.py --name accuracy \
  --function check_accuracy_v2 --dataset my-eval-set --replace --yes
langsmith evaluator delete accuracy --yes

查看实验

experiment list 显示评估实验,而不是追踪项目。(使用 project list 列出追踪项目。)
langsmith experiment list
langsmith experiment list --dataset my-eval-set
langsmith experiment get my-experiment-2024-01-15

管理沙箱

沙箱命令允许您构建快照、创建沙箱、执行命令、打开交互式控制台,以及将 TCP 端口隧道连接到沙箱内运行的服务。 完整的沙箱命令参考,请参阅 沙箱 CLI

过滤标志

大多数 tracerun 命令共享这些过滤器:
标志描述示例
--project项目名称--project my-app
--limit, -n最大结果数-n 10
--offset分页偏移量--offset 20
--last-n-minutes覆盖 7 天默认值--last-n-minutes 60
--sinceISO 时间戳之后--since 2024-01-15T00:00:00Z
--error / --no-error按错误状态过滤--error
--name名称搜索(不区分大小写)--name ChatOpenAI
--run-type运行类型(llmtool--run-type llm
--min-latency / --max-latency延迟范围(秒)--min-latency 2.5
--min-tokens最小总令牌数--min-tokens 1000
--tags标签,逗号分隔(OR 逻辑)--tags prod,v2
--filter原始 LangSmith 过滤器 DSL--filter 'eq(status, "error")'
--trace-ids特定追踪 ID--trace-ids abc123,def456
详情标志 — 控制响应中包含哪些字段:
标志添加内容
--include-metadata状态、持续时间、令牌、成本
--include-io输入、输出、错误
--include-feedback反馈统计
--full以上所有
--show-hierarchy完整运行树(仅追踪)