Agent 早期没有 skills 这个概念,只有 rules,一条全局性的系统提示词,出现在 Cursor 里。从单文件规则到多文件匹配,形态一直在变。到底什么叫好?这是一个很自然的疑问。
笔者最近做产品 SEO 优化,涉及若干 SEO 相关 skills 的评估,遇到不少麻烦。description 重叠导致触发不稳定;模型把过程证据外推成最终结果;缺数据时猜测性补全;模型自评无法证明任务真的完成。大模型固有的幻觉问题推着你去想:怎么才算「评估到位了」。
Agent eval 学术界做得够多了,测试、归因、基准集,不缺综述。本文不打算搞成学术文章,更多从个人用 skills 的经验出发,聊聊怎么看待评估这件事。
Skills 为什么被造出来
回到原点:skills 为什么被造出来?从它要解决的问题出发,就能想清楚怎么评估它。
Skills 最早是一个系统级提示词。问题在于,系统提示词覆盖面太广,不是所有场景都适合反复注入。自然想到做分级和索引。这就是 skills 结构体的由来:title 和 description 做索引,描述它要做什么;下面是详细约束和要调用的工具。
它填补的是通用模型在垂直领域的缺失。除知识缺失外,还有风格缺失。模型知道怎么写代码,但不知道团队的编码、发布风格。
Cursor 做这件事最早。从单文件 .cursorrules 到多文件 .cursor/rules,再到现在的 Agent Skills 目录。长期规范和项目事实留在 Agent.md,条件性的工作流程放 skills。
系统提示词是公司文化,每时每刻都要参照的行为守则;skills 是处理特定工作时翻找的 wiki 目录。
组织 vs 个体对于 Skills 的需求
对于大公司
大公司需要 skills,因为内部有大量隐性的语言和约束。版本号怎么写、数据源口径用什么。过去这些统一约束在人与人协作时,叫文档。
对于个体
个体层面,skills 更像是重复工作的 SOP 包装。有些问题反复出现,就该做成流程。在 Agent 里,这就叫 skills。
从组织到个体
大公司内有动力把员工经验沉淀为 skills。资深人员把经验总结下来,交给新手执行。过去组织规范化的动作是梳理 SOP 文档,现在变成总结 skills。
对于资深人来说,过去写文档,文档上留我的名字,是增强影响力的方式。现在 skills 交出去,很少有人在意谁写的。工作交出去,HC 也就交出去了。其中的劳资关系很微妙。
文档的阅读对象也从 Junior 变成了 Agent,Junior 的职业发展更难,少有公司还愿意培养初级员工。
评估的实用主义
Skills 是给 Agent 读的 SOP。既然是 SOP,预期就是:重复相同步骤,达到一样的结果。换人或换 Agent,效果不变。
那怎么验证这一点?一搜 skills eval,出来的全是数据驱动、AB 测试、增益模型。没错,但太专业了。非工程背景的人做不到,对单个小 skill 做了也未必有意义。这些方法都在回答同一个问题:加上 skills,达到预期目的了吗?
大厂里做严密分析不奇怪。过去做产品也是这个思路:要评判效果,就做消融实验,分流开 AB。但 skills 和产品策略不太一样。产品策略的验证需要大量数据,得出来的仍然只是置信数据,不代表 A 一定优于 B(置信不代表对)。
工程角度可以讲很多,但普通人关心的就是效果。甚至不在乎能否稳定达到效果,体感上有效就行。学术界倒是做了系统对比,简单来说就是专有领域如医疗提升巨大、软件领域加 skill 基本无提升。
感觉有效,大概率就有效。有时候感觉比数据实验管用。不要高射炮打蚊子。对大部分人来说,用了某个 skills,目标达成了,工作量降低了,成本没有明显增加,它就合格了。
更进一步的评估
一次有效是体感,反复有效才算数。
笔者的标准是三条:可复现、不添乱、好维护。这也是给 Cursor 定的早期工程约束。
可复现,意思是同一个任务跑几遍,结果稳定。不是第一遍写出完整代码,第二遍给你半成品。如果结果忽好忽坏,大概率是 description 写得不够精确,模型在不同上下文里理解不一致,无法准确触发。
不添乱,意思是 skill 不引入额外问题。常见的添乱:token 消耗突然翻倍,说明指令太模糊,模型在反复试探;和其他 skill 或 rules 冲突,执行路径被带跑偏;skill 里调用的工具或脚本在特定环境下报错。
好维护,意思是换个项目或换个模型,skill 还能正常工作,好扩展。如果一个 skill 只在特定模型版本上有效,换了版本就废了,维护成本太高。
大部分人到这一步就够了。只有当 skill 反复不达预期,或者你想把它分发给团队或外部时,才需要往下走。
什么时候做系统评估
什么时候从「体感判断」切换到「认真排查」?几个典型的触发点。
效果不如意,这个最直接。用了 skill 反而更差,或者时好时坏,就该停下来看了。不同上下文下表现不一致。同一个 skill 在不同项目里效果差很远,说明触发条件或适用范围写得不够精确。
Skills 数量增多到触发率下降、错误触发。实操经验:同一类主题,3 到 5 个精简 skill 效果最佳,数量超了模型收益骤降。
切换模型。基础模型能力一升级,原来需要 skill 辅助的任务模型自己就能做了。这时候应该果断删掉过时的 skill,重新跑一遍对比。模型升级对于软件编程方面,影响更大。内部流程向的影响较小。
要分发给团队。自己用着好的 skill 迁移给别人,效果往往不如预期。别人的项目结构不同、模型配置不同、配合的 rules 不同,原来跑得好的 skill 可能不工作。分发前要评估依赖关系、明确预期交付物。
安全也是这个阶段需要认真对待的。skills 和 npm 包一样,来源不可控就有被注入恶意逻辑的风险。今年已经发生了不少来自 skill 注入的恶性事件。
触发了评估之后,排查思路也是顺着 skill 自身的结构走:触发条件对不对,执行路径有没有跑偏,终止条件是否合理,调用的资源和工具有没有冲突。拆成这几块,逐个排查。
系统评估怎么做
到这一步,说明你已经不满足于「感觉」了。系统评估要回答:这个 skill 到底改变了什么,改变了多少,值不值得它带来的成本。
设置对照
最基础的是有无对比。同一个任务,开着 skill 跑一遍,关掉跑一遍,对比结果和过程。不只看最终产出,还要看中间步骤:工具调用对不对、推理路径有没有偏、有没有多余的重试。如果关掉 skill 模型也能完成,这个 skill 的边际价值就存疑。
更细致的做法是把「效果」和「触发」分成两次实验。三个条件:不加 skill、强制加载 skill(明确告诉 Agent 这个 skill 可用)、自然触发(不提示,看 Agent 自己会不会激活)。第二和第三之间的差就是触发率。触发率低说明 description 没写好,或者 Agent 根本认不出来该用它。
Anthropic 自己也承认模型有欠触发倾向,建议 description 写得强势一点。测试需要测试集。8 到 12 个精确 case 起步,绑定真正重要的决策和失败模式。
判定方法
能用代码、正则的不用模型打分。模型有先天性的同类偏好,且成本不低。通过规则检查硬性条件:文件是否存在、JSON 是否合法、工具调用参数是否正确、某个不该发生的状态变更有没有发生。
难解的语义问题才交给模型打分,给评分标准、参考答案和弃权选项。
用模型互评时需注意:随机化呈现顺序;多次投票取多数;设最小差值阈值,排除噪声导致的伪排序。用 A 模型评 B 模型的输出,以避免同类偏好。
成本和时间
skill 是纯 context 开销。加了 skill 之后 token 消耗突然翻倍,往往说明指令写得太模糊,模型在反复试探和补全。时长也是:如果一个 skill 让任务慢了三倍,效果提升那点可能不值得。
轨迹分析
记录 Agent 的推理过程、工具调用、状态变更,定位失败发生在哪一步。有 skill 和没 skill 的轨迹放一起比,能看清 skill 具体改变了哪些行为。不过轨迹评判目前主要靠模型打分,主观性是绕不开的。
边际贡献
有无 skill 的差值接近零,说明模型本来就具备该行为,这个 skill 可以删掉;增量大的地方标记出 skill 里真正起作用的部分。增量接近零就删,这是评测最直接的产出。
评估频率
一般而言,评估是伴随着改动发生的。可以是 skill 本体变更、也可以是更换任务、更换模型。生产中出现的反面案例,很适合放到 case 库里作为边界进行判定。
整理一下方法和适用场景:
| 方法 | 看什么 | 适合什么阶段 |
|---|---|---|
| 有无对比(配对对照) | 加 skill 前后的结果和过程差异 | 所有阶段的基础方法 |
| 三条件实验(无/强制/自然) | 触发率,description 是否有效 | skill 写好后的首次验证 |
| 代码判定 | 文件存在、参数正确、状态变更 | 有明确预期产出的任务 |
| 轨迹分析 | 推理路径、工具调用、失败步骤 | 排查失败原因 |
| Token 和时长监控 | 成本波动、运行时长变化 | 日常监控,发现质量劣化 |
| 跨模型验证 | skill 的通用性、模型特性干扰 | 换模型、分发给团队前 |
| delta 审计 | 边际贡献是否存在 | 定期清理 skill 库 |
核心评估以外的问题
以上是针对单个 skill 的方法。跳出来看,skills 生命周期里,从开始写到一起用,还有几个结构性问题。
AI 自生成的 skills 可能不可靠。基准测试里模型自己写的 skill 平均效果为负。原因还是模型不能准确把握自身权重外的知识。核心 SOP 最好人来控制内容(或提供清晰方向参考)。措辞要明确,写清楚什么时候该触发、什么时候不该触发。当然还有前文提到的,触发指令写得激进一些这类。
Skill 之间会冲突。多个 skill 同时加载,指令互相矛盾,模型不知道听谁的。这是上下文腐败问题,skills 越多越明显。这部分内容,也可以算上面评估的一部分。将已有skills看作系统整体,剩下思路类似。
可观测性已经开始被量化。不少框架试图把「会不会被触发」正式变成了可测量的指标,也开始追踪 skill 调用率。但对个人来说,目前还没有好用的工具让你看清自己几十个 skill 里哪些在高频工作、哪些从没被触发过。Claude 目前据我所知,/doctor 指令可以实现部分目标。
版本管理的问题在缓解。今年 8 月多厂商联合发布 Agent Plugins 1.0,把 skills 和 MCP 打包成可分发的标准目录。过去跨 agent 维护多份副本的问题,会得到进一步改善。
最后,skills 解决不了编码风格、整体架构的问题。笔者刚开始觉得 Cursor 比 Codex 好用,是因为 rules 层面积累了半年多的约束。这些约束迁移到 Codex 后,编码体感舒服很多。
后续方向
Skill 后面会怎么变?这可能是专门做 skill 研究的人才需要考虑的事。不过从研究进展来看,这个方向正在快速成形:
| 时间 | 事件 | 评估关注点 |
|---|---|---|
| 2025-01 | Cursor 推出多文件 .cursor/rules | 规则描述、智能附加 |
| 2025-10 | Anthropic 发布 Agent Skills | 触发、意外轨迹、脚本安全 |
| 2025-12 | Agent Skills 开放标准;OpenAI Codex 采纳 | 跨平台兼容、渐进加载 |
| 2026-02 | SkillsBench v1.0;skills.sh 自动审计上线 | 有无 Skill A/B;平台侧安全基础设施 |
| 2026-03 | SkillRouter(阿里);三大市场累计约 49 万 skill | description 路由在大池子下失效 |
| 2026-04 | Tessl 评测框架;SkillsMP 单平台超百万 skill | 三条件配对评测;规模问题 |
| 2026-06 | SkillsBench 1.1 | 任务集扩容、追踪 skill 调用率 |
| 2026-08 | Agent Plugins 1.0(五家联合);NVIDIA SkillEvaluator | 跨端打包同步;厂商持续评测 |
回头看这十个月:
研究主线变了。从「skill 能不能提高任务成功率」,转向「什么 skill 在什么模型、任务、环境下,产生了多少可归因且值得成本的增益」。
篇幅和受众限制,这篇文章点到为止。笔者整理了一份更完整的技术评估路径文档,包括具体的评估方法、实验设计和用于评估 skills 的 skills。想了解实操细节的朋友,可以关注或联系笔者获取。
参考资料
- SkillsBench v1.0 - 首个系统评估 Agent Skills 有效性的基准框架,覆盖 11 领域 86 项任务
- SkillsBench 1.1 榜单 - 扩容至 18 个模型配置,新增 skill 调用率指标
- SkillRouter - 阿里团队,在 8 万 skill 池子上证明 metadata 路由的局限
- Tessl 评测框架 - 三条件配对评测方法论,含解答质量、成本、时长三指标
- Agent Skill Evaluation and Evolution: Frameworks and Benchmarks - 综述,串起 SkillsBench 之后的衍生工作
- NVIDIA SkillEvaluator - 厂商侧持续评测实践,含 Discoverability 维度
- Vibe Coding 时代的核心 SOP - Skills 评估的参考方法论
- 从单 Agent 到跨 Agent 的 Skills 管理 - 笔者关于 skills 迁移问题的讨论
- 驾驭你的 Agent Skills 和系统指令 - 笔者关于 skills 体系与系统指令的梳理