前言

之前写的基本都是大模型或者 Agent 的一些评测内容, 今天科普一下 SKILL 的测试,毕竟星球中很多同学都对 skill 评测有需求。

skill 评测的特点

做过大模型评测的同学应该明白, 大模型本身的评测模式仍然是 “输入 - 输出”,而测试测试人员只针对输出内容进行评测。 这还算是一种在流程上比较简单的一种模式(当然流程简单,但评测工作并不简单)。 而 skill 的使用场景是让 Agent 进行调用, 所以 Skill 往往不能只通过模型输出的 “最终答案” 来评估。 它仍然需要一些其他方向的验证。 比如,我们一般把 skill 的评测分为控制面和数据面两种方向:

skill 的评测指标

这里列一些常用指标:

skill 的一般评测操作方法

其实操作起来说简单也简单, 我们需要在调用 Agent 来唤起 skill 后, 拿到整个 Agent 的调用轨迹以及所有的产出物,一般来说 Agent 的返回中都会有轨迹信息和思考过程信息。 然后按格式进行解析。 把其中工具调用的信息, 产出的交付物信息, token 等信息都提取出来。 然后进行验证。 而一般验证会有几种形式:

skill 的测试工具

一般在我们这样专门做 AI 的团队,都会有自研的评测工具, 尤其是现在 AI 编程很普遍,只要知道方法论,开发一个其实不困难。 但没有经验的同学总归还是希望有个思路。 那这里我也推荐一个开源的工具(针对 skill 评测的), 阿里最近开源了一个名叫 skill-up 的工具,虽然现在能力还偏弱(毕竟刚开源),但其中的一些思路,大家还是可以借鉴的。 比如我给一个 case 的样例, 它使用 yaml 来管理 case 的:

id: pipeline-summary-quality
title: 总结内容质量(agent_judge 语义评审)
description: |
  LLM 评审 summary.md:是否点名需关注的门店、数字是否与 CSV 一致、建议是否可操作。

input:
  prompt: |
    使用 data-pipeline-analyst skill 完成以下任务:
    拉取 2026-10-07 到 2026-10-10 的门店日销售数据(通过 sales-datasource 工具),
    用 pandas 做聚合分析,产出 analysis_result.csv,并基于 CSV 数据撰写 summary.md 总结。

expect:
  files_exist:
    - "summary.md"

judge:
  type: agent_judge
  model: sonnet
  criteria:
    - "总结点名了所有需要关注的门店,并给出其退款率与退款订单数"
    - "总结中的数字与 analysis_result.csv 中的数据一致,没有出现 CSV 中不存在的数据"
    - "给出了至少 2 条可操作建议,针对具体门店给出具体动作,而不是空泛表述"
    - "结论明确(哪家店最差、差在哪),而不只是罗列数字"
  pass_threshold: 0.7
  timeout_seconds: 120

上面是 skill-up 的一条测试用例, 它是用 yaml 来进行管理的。 可以看到 input 是我们的测试数据, expect 字段是一种断言,断言 summary.md 文件必须要存在,这是在断言 skill 的交付物。 而 judge 字段是另一个断言, 这里我们使用了 agent_judge,也就是裁判模型, 可以在 criteria 规定让裁判模型来验证的规则。 这与大模型评测是一样的。 当然也可以用脚本进行断言,比如另一个 case:

id: pipeline-trajectory
title: 执行轨迹健康度(工具调用次数、顺序、过程精简度)
description: |
  skill-up 采集轨迹但不做聚合计算,本用例用 script judge 自行统计:
  MCP 恰好调用 1 次、先拉数据后写文件、确实执行 pandas、无冗余写入、过程不过度冗长。

input:
  prompt: |
    使用 data-pipeline-analyst skill 完成以下任务:
    拉取 2026-10-07 到 2026-10-10 的门店日销售数据(通过 sales-datasource 工具),
    用 pandas 做聚合分析,产出 analysis_result.csv,并基于 CSV 数据撰写 summary.md 总结。

expect:
  files_exist:
    - "analysis_result.csv"

judge:
  type: script
  script_path: evals/fixtures/scripts/verify_trajectory.py
  timeout_seconds: 60

上面用的断言就是一个脚本。 同时也可以有工具调用断言,如下:

id: pipeline-mcp-and-csv
title: 必须调用 MCP 拉数据并产出带正确表头的 CSV
description: |
  规则校验:确实调用了 sales-datasource 的 fetch_store_sales 工具(含正确参数),
  且产出了 analysis_result.csv 与 summary.md,CSV 表头符合 schema。

input:
  prompt: |
    使用 data-pipeline-analyst skill 完成以下任务:
    拉取 2026-10-07 到 2026-10-10 的门店日销售数据(通过 sales-datasource 工具),
    用 pandas 做聚合分析,产出 analysis_result.csv,并基于 CSV 数据撰写 summary.md 总结。

expect:
  files_exist:
    - "analysis_result.csv"
    - "summary.md"
  file_contains:
    - path: "analysis_result.csv"
      content: "store,orders,refunded,refund_rate,avg_order_value,total_sales,conversion_rate,status"

judge:
  type: rule_based
  success:
    - tool_called:
        name: "mcp__sales-datasource__fetch_store_sales"
        args:
          dataset: "store_daily_sales"

Skill-up 目前的功能还比较简单,不过很适合新手或者新团队进行使用。 当其实最好的方式仍然是根据自己的需要用 AI 定制一个工具出来。 大家可以借鉴 skill-up 的这种设计哲学。

结尾

最后再宣传下我得星球吧,更多教程可以加星球获取。也有专门的微信群。


↙↙↙阅读原文可查看相关链接,并与作者交流