这个套件复用 local 的任务集,并把每次 (task, treatment) 运行同步到 LangSmith:
- 每个任务是一个 dataset example(
inputs= 任务/treatment,reference_outputs= 预期产物 / 必需 Skill / rubric 判据)。 - 每个 treatment 是一个 experiment;
CONTROL与注入 Skill 的 treatment 可在实验对比页并排看。 - 每个 run 记录
outputs(轮次、工具调用、耗时、token、成本、调用的 Skill)和 feedback(每个 rubric 维度分 +checks_pass_rate)。 - 可选:Claude Code 的完整轨迹(trajectory)通过官方
langsmith-tracing插件嵌套在同一个 run 下。
默认复用:
../local/tasks../local/treatments../local/skills
报告和产物写入:
logs/experiments/
cd eval
uv sync --extra langsmith结果上报(rubric + treatment 对比)只需要 LANGSMITH_API_KEY。推荐在 eval/.env 或 eval/langsmith/.env 中设置:
LANGSMITH_API_KEY=lsv2_pt_...
LANGSMITH_PROJECT=comet-skill-eval
LANGSMITH_TRACING=trueComet 会从这组 LANGSMITH_* 配置自动派生 Claude Code 官方插件需要的 TRACE_TO_LANGSMITH、CC_LANGSMITH_API_KEY 和 CC_LANGSMITH_PROJECT。只有需要覆盖插件行为时,才需要显式设置这些 CC_* / TRACE_TO_LANGSMITH 变量。
从 eval/ 目录运行:
# 一个 treatment = 一个 experiment;用 LANGSMITH_EXPERIMENT 命名便于对比
LANGSMITH_EXPERIMENT=COMET_FULL_040_BETA \
uv run pytest langsmith/tests/tasks/test_tasks.py \
--task=comet-fix-median --treatment=COMET_FULL_040_BETA -v
# 再跑 CONTROL 作为对照
LANGSMITH_EXPERIMENT=CONTROL \
uv run pytest langsmith/tests/tasks/test_tasks.py \
--task=comet-fix-median --treatment=CONTROL -v生成 Skill manifest 示例:
uv run pytest langsmith/tests/tasks/test_tasks.py \
--eval-manifest=/path/to/my-skill/comet/eval.yaml -v轨迹追踪用官方 langsmith-tracing 插件,容器内以 headless(claude -p)方式启用。默认情况下,LangSmith suite 会在首次运行时用 node:20 一次性构建插件到 eval/.cache/langsmith-cc-plugin,后续运行复用这个缓存目录并挂载到任务容器的 /opt/langsmith-cc-plugin。
因为 eval 在 Linux 容器里运行,不要在 Windows 宿主机直接 pnpm build 后挂载,避免跨平台 node_modules 失效。你通常只需要设置:
LANGSMITH_TRACING=true如果要提前手动构建缓存,可以从 eval/ 目录运行:
docker run --rm -v "$PWD/.cache:/out" node:20 sh -c \
"cd /tmp && git clone https://github.com/langchain-ai/langsmith-claude-code-plugins && cd langsmith-claude-code-plugins && corepack enable && pnpm install && pnpm build && cp -r . /out/langsmith-cc-plugin"PowerShell 中可用 ${PWD}:
docker run --rm -v "${PWD}\.cache:/out" node:20 sh -c "cd /tmp && git clone https://github.com/langchain-ai/langsmith-claude-code-plugins && cd langsmith-claude-code-plugins && corepack enable && pnpm install && pnpm build && cp -r . /out/langsmith-cc-plugin"如果要覆盖默认缓存目录,可以把构建好的插件目录显式指给评估(宿主机路径):
export CC_LANGSMITH_PLUGIN_DIR=/abs/path/to/comet/eval/.cache/langsmith-cc-plugin- 设置后,插件目录会以
/opt/langsmith-cc-plugin只读挂载进容器,claude加--plugin-dir启用;轨迹通过自动派生的 Claude Code 插件配置和CC_LANGSMITH_PARENT_DOTTED_ORDER嵌套在对应 pytest run 下。 - 未设置时,轨迹追踪自动跳过(不报错),rubric 与 treatment 对比照常上报。
- 如果不希望 suite 自动构建插件,设置
CC_LANGSMITH_PLUGIN_AUTO_BUILD=false。