可接入 CI!Claude Code 推出插件评估工作流,对比有无插件的模型表现

工具1个月前发布 小马良
77 0

Anthropic 正式发布了 claude plugin eval,这是一个专为 Claude Code 插件开发者设计的评估工具。它通过在实际提示下运行插件,并对结果进行量化评分,解决了开发者长期以来无法回答的三个核心问题:技能是否被正确触发?它能否在不同模型或编辑中保持稳定?它是否真的比裸模型表现更好?

  • 地址:https://code.claude.com/docs/en/plugin-evals

核心指标:Δ (Delta) —— 插件的真实贡献

评估工作的核心在于对比。默认情况下,每个测试案例会运行两次:

  1. With-Arm:加载插件。
  2. Without-Arm:不加载插件(裸模型)。

Δ (Delta) 即为两者得分的差值。这是衡量插件价值的唯一硬指标:

  • Δ > 0:插件带来了正向增益。
  • Δ ≈ 0:插件没有产生实际影响。如果此时 tool_used: Skill 评分器失败,说明 Claude 在自然语言交互中根本没有选择调用该技能。这是仅靠语法检查(claude plugin validate)无法发现的致命缺陷。
  • Δ < 0:插件反而干扰了模型的表现。

示例:某案例在加载插件时得分为 1.00,未加载时为 0.33,则 Δ = +0.67。这证明了插件在该场景下的决定性作用。

评估套件结构

评估用例位于插件目录下的 evals/ 文件夹中。每个案例是一个子目录,包含:

  • prompt.md:测试提示词。支持 Frontmatter 配置 max_turns、timeout_seconds、model 等参数。注意:@path 引用不会被展开,以确保测试环境的纯净。
  • graders/:评分器文件夹。

六种评分器类型

类型计费情况说明
regex✅ 免费通过正则表达式匹配输出内容
tool_used✅ 免费检查是否调用了特定工具/技能
tool_order✅ 免费验证工具调用的先后顺序
file_exists✅ 免费检查磁盘上是否生成了指定文件
llm💰 计费使用评判模型(Judge Model)根据自定义标准打分
baseline💰 计费将输出与参考答案进行比对打分

快速上手与 CI 集成

1. 初始化评估套件

claude plugin eval init

该命令会读取你的插件清单,询问你期望的理想结果,并自动生成初始的案例文件和评分器模板。

2. 运行评估

claude plugin eval . \
  --trust-plugin \
  --json results.json \
  --threshold 0.8 \
  --model claude-sonnet-5 \
  --judge-model claude-haiku-4-5 \
  --no-publish \
  --max-cost-usd 20
  • --trust-plugin:在 CI 环境中必须添加,否则非交互式终端会拒绝运行。
  • --threshold:设定通过率阈值,低于此值则 CI 失败。
  • --max-cost-usd:控制单次评估的成本上限。

3. 查看报告

结果将生成在 evals/results/<timestamp>/report.html 中,包含每个评分器的详细裁决。如果账户支持,报告还会自动发布到 claude.ai。

关键要点

  1. Δ 是王道:不要只看绝对分数,要看插件带来的增量价值。
  2. 触发率是关键:如果 Δ 接近零且技能未被调用,说明你的插件描述或触发逻辑需要优化,让 Claude 更“愿意”使用它。
  3. 成本可控:虽然 llm 和 baseline 评分器会产生额外费用,但通过 --max-cost-usd 和高效的免费评分器组合,可以将成本控制在合理范围内。
  4. CI 门控:通过 --threshold 和退出码机制,可以将插件评估集成到持续集成流程中,防止劣质更新合并到主分支。
© 版权声明

相关文章