摘要:本文从 Skill 的触发、执行、知识密度、资源组织和评估一致性出发,拆解一套 8 维度量化评估框架,并说明多模型交叉验证和执行策略路由的设计方式。
前言:能跑,不等于值得用
上周模拟面试,学长看完我写的 Skill 后只问了一句:“description 写成这样,Agent 凭什么知道什么时候该触发?”
这句话不好听,但问题很准。
很多人写 Skill 时只盯着“能不能跑”。只要 SKILL.md 能被加载,流程能跑通一次,就觉得质量过关。这个判断太粗糙。Skill 是 Agent 能力的最小封装单元,它把领域知识、执行流程、工具调用和参考资源组织在一起,让通用 Agent 在特定场景下接近领域助手。
问题在于,能跑只是及格线,稳定触发、稳定执行、稳定产出才是工程质量。
如果没有一把尺子,Skill 的好坏只能靠主观感觉:
- description 是否足够精准,难以判断;
- 工作流是否完整,容易漏看异常分支;
- 资源组织是否合理,往往到执行时才暴露问题;
- 两个同类 Skill 谁更值得用,很难横向比较。
所以需要一套可量化的 Skill 评估框架,把“感觉还行”拆成具体维度、权重和证据。
先把问题脱水:Skill 到底评什么
一个 Skill 的生命周期可以拆成三个阶段:被发现、被执行、值得存在。
#mermaid-svg-ud4FQYO11UhEHwgs{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ud4FQYO11UhEHwgs .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ud4FQYO11UhEHwgs .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ud4FQYO11UhEHwgs .error-icon{fill:#552222;}#mermaid-svg-ud4FQYO11UhEHwgs .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ud4FQYO11UhEHwgs .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ud4FQYO11UhEHwgs .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ud4FQYO11UhEHwgs .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ud4FQYO11UhEHwgs .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ud4FQYO11UhEHwgs .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ud4FQYO11UhEHwgs .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ud4FQYO11UhEHwgs .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ud4FQYO11UhEHwgs .marker.cross{stroke:#333333;}#mermaid-svg-ud4FQYO11UhEHwgs svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ud4FQYO11UhEHwgs p{margin:0;}#mermaid-svg-ud4FQYO11UhEHwgs .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-ud4FQYO11UhEHwgs .cluster-label text{fill:#333;}#mermaid-svg-ud4FQYO11UhEHwgs .cluster-label span{color:#333;}#mermaid-svg-ud4FQYO11UhEHwgs .cluster-label span p{background-color:transparent;}#mermaid-svg-ud4FQYO11UhEHwgs .label text,#mermaid-svg-ud4FQYO11UhEHwgs span{fill:#333;color:#333;}#mermaid-svg-ud4FQYO11UhEHwgs .node rect,#mermaid-svg-ud4FQYO11UhEHwgs .node circle,#mermaid-svg-ud4FQYO11UhEHwgs .node ellipse,#mermaid-svg-ud4FQYO11UhEHwgs .node polygon,#mermaid-svg-ud4FQYO11UhEHwgs .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ud4FQYO11UhEHwgs .rough-node .label text,#mermaid-svg-ud4FQYO11UhEHwgs .node .label text,#mermaid-svg-ud4FQYO11UhEHwgs .image-shape .label,#mermaid-svg-ud4FQYO11UhEHwgs .icon-shape .label{text-anchor:middle;}#mermaid-svg-ud4FQYO11UhEHwgs .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ud4FQYO11UhEHwgs .rough-node .label,#mermaid-svg-ud4FQYO11UhEHwgs .node .label,#mermaid-svg-ud4FQYO11UhEHwgs .image-shape .label,#mermaid-svg-ud4FQYO11UhEHwgs .icon-shape .label{text-align:center;}#mermaid-svg-ud4FQYO11UhEHwgs .node.clickable{cursor:pointer;}#mermaid-svg-ud4FQYO11UhEHwgs .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ud4FQYO11UhEHwgs .arrowheadPath{fill:#333333;}#mermaid-svg-ud4FQYO11UhEHwgs .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ud4FQYO11UhEHwgs .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ud4FQYO11UhEHwgs .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ud4FQYO11UhEHwgs .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ud4FQYO11UhEHwgs .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ud4FQYO11UhEHwgs .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ud4FQYO11UhEHwgs .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ud4FQYO11UhEHwgs .cluster text{fill:#333;}#mermaid-svg-ud4FQYO11UhEHwgs .cluster span{color:#333;}#mermaid-svg-ud4FQYO11UhEHwgs div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ud4FQYO11UhEHwgs .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ud4FQYO11UhEHwgs rect.text{fill:none;stroke-width:0;}#mermaid-svg-ud4FQYO11UhEHwgs .icon-shape,#mermaid-svg-ud4FQYO11UhEHwgs .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ud4FQYO11UhEHwgs .icon-shape p,#mermaid-svg-ud4FQYO11UhEHwgs .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ud4FQYO11UhEHwgs .icon-shape .label rect,#mermaid-svg-ud4FQYO11UhEHwgs .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ud4FQYO11UhEHwgs .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ud4FQYO11UhEHwgs .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ud4FQYO11UhEHwgs :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
否
是
用户提出任务
Agent 读取 name 和 description
是否触发 Skill
Skill 没有机会执行
加载 SKILL.md
执行工作流和工具调用
输出结果并暴露质量
这张图说明一个硬伤:Skill 不是先执行再证明自己,而是先靠元数据争取被触发的机会。
因此,评估 Skill 不能只看正文写得多不多,也不能只看一次 demo 是否跑通,而要覆盖完整生命周期。
8 个维度:把模糊判断拆成工程指标
这套框架把 Skill 质量拆成 8 个维度。每个维度都对应一个具体问题。
D1:元数据质量
Agent 在多数场景下只会先看到 Skill 的 name 和 description。如果这部分写得含糊,后面的流程再完整也没意义。
好的 description 至少要回答 3 个问题:
D1 决定的是有没有机会被用到,不只是好不好用。
D2:执行引导清晰度
Skill 被触发后,Agent 会读取完整的 SKILL.md。这时真正考验的是执行引导。
一个合格的 Skill 不能只堆背景知识,它要告诉 Agent:
- 输入缺失时是否追问;
- 不同场景分别走哪条路径;
- 哪些命令可以执行,哪些操作需要避免;
- 失败后如何降级或恢复。
对 2026 届 Java / AI 方向的同学来说,这个点会直接反映在面试里。面试官问“你怎么设计 Agent 工具链的可靠性”,如果只回答“写清楚步骤”,深度不够。
D3:领域知识密度
Skill 不是普通提示词。它存在的理由,是把通用 Agent 不容易直接获得的专业知识封装进去。
例如:
- 私有 API 的调用规则;
- 内部系统的数据模型;
- 行业特定的检查清单;
- 复杂任务里的决策树;
- 已验证的脚本和模板。
如果一个 Skill 只是在重复“先分析、再执行、最后总结”,那它的领域知识密度偏低。这种 Skill 看起来规范,实际替代价值有限。
D4:工作流完整性
D2 关注“每一步怎么走”,D4 关注“整条路能不能走完”。
一个完整工作流应该覆盖:
- 起点:用户需要提供什么;
- 中间过程:如何读取、处理、验证;
- 异常分支:文件缺失、接口失败、权限不足时怎么办;
- 终点:最终交付什么文件、报告或操作结果。
在工程实践中,很多 Skill 的问题不是核心路径写错,而是只写了核心路径。输入稍微变复杂,就开始失控。
D5:输入输出清晰度
输入输出是最容易被轻视的基本功。
一个合格的 Skill 应明确说明:
- 支持哪些输入格式;
- 参数默认值是什么;
- 输出文件放在哪里;
- 输出结构长什么样;
- 是否会覆盖已有文件。
这不是文档洁癖,而是可维护性问题。Agent 不是人类同事,它不会自动继承你的上下文偏好。
D6:资源利用
Skill 不应该把所有内容都塞进一个巨大的 SKILL.md。更稳的方式是渐进式披露(Progressive Disclosure):主文件保留路由和执行规则,详细资料放到 references/、examples/、scripts/ 等目录中。
推荐的资源结构通常是:
skill-name/
├── SKILL.md
├── references/
│ └── domain-rules.md
├── examples/
│ └── sample-output.md
└── scripts/
└── helper.py
这种结构的价值很现实:Agent 先读关键规则,需要时再加载细节,既减少上下文压力,也降低重复生成代码的概率。
D7:写作质量
SKILL.md 是写给 AI 看的技术文档。它需要清晰、稳定、可扫描。
高质量写作通常有几个特征:
- 标题层级清楚;
- 规则可执行,不只是口号;
- 示例贴近真实输入;
- 禁止事项写得明确;
- 没有重复段落和互相冲突的描述。
写作质量差的 Skill,会把 Agent 的注意力浪费在解析文档本身。
D8:范围与聚焦
Skill 应该做好一类任务,而不是试图覆盖所有任务。
范围过宽会导致触发混乱,范围过窄又不值得封装。比较合理的边界是:
- 有明确用户意图;
- 有稳定工作流;
- 有可复用资源;
- 有通用 Agent 难以凭空补齐的领域知识。
这才是 Skill 的底盘。
权重设计:不是每个维度都一样重要
8 个维度不应该平均打分。D1、D2、D3、D4 通常更影响实际效果,因为它们分别决定触发、执行、专业价值和端到端稳定性。
#mermaid-svg-3FjIY7C7BLxe4Gb4{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .error-icon{fill:#552222;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .marker.cross{stroke:#333333;}#mermaid-svg-3FjIY7C7BLxe4Gb4 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-3FjIY7C7BLxe4Gb4 p{margin:0;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .pieCircle{stroke:#000000;stroke-width:2px;opacity:0.7;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .pieOuterCircle{stroke:#000000;stroke-width:1px;fill:none;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .slice{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#000000;font-size:17px;}#mermaid-svg-3FjIY7C7BLxe4Gb4 .legend text{fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:17px;}#mermaid-svg-3FjIY7C7BLxe4Gb4 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}15%15%15%15%10%10%10%10%Skill 质量评估权重示意D1 元数据质量D2 执行引导D3 领域知识D4 工作流完整性D5 输入输出D6 资源利用D7 写作质量D8 范围聚焦
一种可操作的评级方式是:每个维度按 0 到 10 分评分,再按权重汇总为总分,最后映射到 S / A / B / C / D 等级。
这里要注意,分数不是为了制造权威感,而是为了让问题暴露得更具体。比如 D1 只有 3 分,就应该直接回到 description 触发条件上修改,而不是泛泛地说“文档需要优化”。
示例一:拿真实 Skill 开刀
假设某个公网 IP 出账 Skill 已经能跑通完整流程,但评估后发现:
- D1 元数据质量偏低:description 过短,缺少触发条件;
- D7 写作质量一般:存在重复 SQL 示例和重复说明;
- D4 工作流完整性较好:包含连通性检查、错误处理和输出路径;
- D3 领域知识密度较高:包含 API、数据库、对象存储等内部规则。
这个结果的意义不在于“它是 A 还是 B”,而在于定位改进优先级。
先修 D1,再修重复文档,比盲目重写整个 Skill 更有效。
示例二:两个同类 Skill 怎么选
再看一个横向对比场景。假设有两个周报类 Skill:
- Skill A:偏重 OKR 关系、活跃空间、洞察分析;
- Skill B:偏重场景路由、输入输出示例和多 action 覆盖。
对比时不应该只问“哪个分数高”,而要看使用场景:
| 领域分析 | 需要复杂上下文和洞察 | 只需要标准化查询 |
| 执行路由 | 流程固定但较长 | 场景多、分支多 |
| 资源组织 | 有 references、examples、CHANGELOG | 示例清晰但资源较少 |
| 用户类型 | 熟悉业务的人 | 首次使用的人 |
评分是辅助决策,不是替你做决策。 同一个 Skill 在不同团队、不同任务密度下,价值可能不同。
多模型交叉验证:别让一个模型拍板
单模型评分有一个天然问题:它可能偏严,也可能偏松。比如同一个 Skill,一个模型给 7.8 / A,另一个模型给 6.5 / B。分数差异不小,但指出的问题可能高度重合。
这说明:单模型评分的具体数值不一定稳定,但多模型之间的共识更有参考价值。
一个更稳的交叉验证流程可以分成三步:
#mermaid-svg-cyIzNcTMspJTJG5E{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cyIzNcTMspJTJG5E .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-cyIzNcTMspJTJG5E .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-cyIzNcTMspJTJG5E .error-icon{fill:#552222;}#mermaid-svg-cyIzNcTMspJTJG5E .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cyIzNcTMspJTJG5E .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-cyIzNcTMspJTJG5E .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cyIzNcTMspJTJG5E .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cyIzNcTMspJTJG5E .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-cyIzNcTMspJTJG5E .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cyIzNcTMspJTJG5E .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cyIzNcTMspJTJG5E .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cyIzNcTMspJTJG5E .marker.cross{stroke:#333333;}#mermaid-svg-cyIzNcTMspJTJG5E svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cyIzNcTMspJTJG5E p{margin:0;}#mermaid-svg-cyIzNcTMspJTJG5E .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-cyIzNcTMspJTJG5E .cluster-label text{fill:#333;}#mermaid-svg-cyIzNcTMspJTJG5E .cluster-label span{color:#333;}#mermaid-svg-cyIzNcTMspJTJG5E .cluster-label span p{background-color:transparent;}#mermaid-svg-cyIzNcTMspJTJG5E .label text,#mermaid-svg-cyIzNcTMspJTJG5E span{fill:#333;color:#333;}#mermaid-svg-cyIzNcTMspJTJG5E .node rect,#mermaid-svg-cyIzNcTMspJTJG5E .node circle,#mermaid-svg-cyIzNcTMspJTJG5E .node ellipse,#mermaid-svg-cyIzNcTMspJTJG5E .node polygon,#mermaid-svg-cyIzNcTMspJTJG5E .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cyIzNcTMspJTJG5E .rough-node .label text,#mermaid-svg-cyIzNcTMspJTJG5E .node .label text,#mermaid-svg-cyIzNcTMspJTJG5E .image-shape .label,#mermaid-svg-cyIzNcTMspJTJG5E .icon-shape .label{text-anchor:middle;}#mermaid-svg-cyIzNcTMspJTJG5E .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-cyIzNcTMspJTJG5E .rough-node .label,#mermaid-svg-cyIzNcTMspJTJG5E .node .label,#mermaid-svg-cyIzNcTMspJTJG5E .image-shape .label,#mermaid-svg-cyIzNcTMspJTJG5E .icon-shape .label{text-align:center;}#mermaid-svg-cyIzNcTMspJTJG5E .node.clickable{cursor:pointer;}#mermaid-svg-cyIzNcTMspJTJG5E .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-cyIzNcTMspJTJG5E .arrowheadPath{fill:#333333;}#mermaid-svg-cyIzNcTMspJTJG5E .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cyIzNcTMspJTJG5E .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cyIzNcTMspJTJG5E .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cyIzNcTMspJTJG5E .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-cyIzNcTMspJTJG5E .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cyIzNcTMspJTJG5E .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-cyIzNcTMspJTJG5E .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cyIzNcTMspJTJG5E .cluster text{fill:#333;}#mermaid-svg-cyIzNcTMspJTJG5E .cluster span{color:#333;}#mermaid-svg-cyIzNcTMspJTJG5E div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cyIzNcTMspJTJG5E .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-cyIzNcTMspJTJG5E rect.text{fill:none;stroke-width:0;}#mermaid-svg-cyIzNcTMspJTJG5E .icon-shape,#mermaid-svg-cyIzNcTMspJTJG5E .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cyIzNcTMspJTJG5E .icon-shape p,#mermaid-svg-cyIzNcTMspJTJG5E .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-cyIzNcTMspJTJG5E .icon-shape .label rect,#mermaid-svg-cyIzNcTMspJTJG5E .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cyIzNcTMspJTJG5E .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-cyIzNcTMspJTJG5E .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-cyIzNcTMspJTJG5E :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
多个模型独立评分
交叉互审
自我修正
主模型仲裁
输出最终评分和共识度
阶段一:独立评估
多个模型按同一套 8 维度标准分别打分,并给出扣分证据。这里的关键是独立性,不能先互相看结论。
第二阶段:交叉互审
每个模型查看其他模型的评分,重点审查分差较大的维度。例如某维度分差达到 2 分以上,就必须引用 Skill 中的具体内容说明:为什么对方高估或低估了这个维度。
这一步不是形式主义。它能迫使模型从“给感觉分”转向“基于证据争论”。
第三阶段:仲裁综合
主模型汇总独立评分和互审意见,给出最终分数,并标注共识度。
可以把共识分为三类:
- 高共识:各模型评分接近,证据一致;
- 中共识:分数略有差异,但问题方向一致;
- 仲裁项:分歧较大,需要主模型给出裁决。
被标记为仲裁项的维度,往往就是 Skill 作者最应该回头看的地方。
工具环境不同,执行策略也要路由
不是所有 AI 工具都支持多模型、subagent 或第三方 API。一个实用的 Skill 评估器,不能假设运行环境总是完整。
可以设计 4 种策略:
| A | 工具原生支持多个模型 | 直接并行调用原生模型 |
| B | 需要第三方模型 | 通过脚本调用外部模型 API |
| A + B | 原生模型和第三方模型混用 | 统一汇总评估结果 |
| C | 多模型不可用 | 单模型多角色模拟评审 |
策略 C 是兜底方案。它让同一个模型分别扮演严格派、务实派、架构派,再进行交叉审查和仲裁。它不能等价于真正的多模型,但能在一定程度上引入不同审查视角。
评完之后,怎么改 Skill
拿到评估报告后,不建议直接“全文重写”。更合理的顺序是:
如果 D3 领域知识密度偏低,就要回到 Skill 的存在价值上重新判断:它到底封装了什么通用 Agent 不容易知道的东西。
没有领域知识的 Skill,本质上只是换皮提示词。这个认知差距会直接反映在实际执行效果里。
一个可复用的评分表
可以把评估表写成固定模板,方便多人协作或自动化执行。
| D1 元数据质量 | 0-10 | 15% | description 是否精准 | 补触发词和排除条件 |
| D2 执行引导 | 0-10 | 15% | 是否有路径和约束 | 增加决策树 |
| D3 领域知识 | 0-10 | 15% | 是否有专家规则 | 补充业务规则 |
| D4 工作流完整性 | 0-10 | 15% | 是否端到端闭环 | 补异常处理 |
| D5 输入输出 | 0-10 | 10% | 输入输出是否明确 | 补路径和格式 |
| D6 资源利用 | 0-10 | 10% | 是否合理拆分资源 | 增加 references / scripts |
| D7 写作质量 | 0-10 | 10% | 是否清晰无重复 | 精简文档 |
| D8 范围聚焦 | 0-10 | 10% | 是否边界清楚 | 收窄任务范围 |
这个模板可以直接用于单个 Skill 审查,也可以用于多个 Skill 横向对比。
边界:这把尺子量不到什么
这套框架主要评估 Skill 的文档工程质量和设计质量,不等于完整的运行时性能评估。
它不能直接回答这些问题:
- 实际调用工具的成功率是多少;
- 不同用户输入下是否稳定;
- 长期运行成本是否合理;
- 外部 API 抖动时是否真的能恢复;
- 真实用户是否愿意持续使用。
这些需要结合执行日志、测试集、失败样本和用户反馈继续评估。
知道一套评估框架能量什么、不能量什么,才不会把分数当成真相本身。
小结
Skill 质量评估不是为了把文档写得更漂亮,而是为了让 Agent 能更稳定地触发、更清晰地执行、更可靠地产出。
这套 8 维度框架的价值在于:
- 用 D1 判断 Skill 是否有机会被触发;
- 用 D2 / D4 判断执行路径是否清晰完整;
- 用 D3 判断它是否真的有领域价值;
- 用 D5 / D6 / D7 / D8 判断它是否可维护、可复用、可对比;
- 用多模型交叉验证降低单模型评分偏差。
对开发者来说,它是改进清单;对使用者来说,它是选型工具。别再只问“这个 Skill 能不能跑”。更应该问:它为什么会被触发、凭什么能跑稳、出了问题怎么收场。




