GitHub 上同时出现了几个离谱的项目:「同事 skill」把离职同事的所有聊天记录喂给 Claude,生成一个 skill 文件,AI 就能用那个人的语气说话。一周 9500 星。
同期卡内基梅隆大学发表了 SkillFoundry 论文,试图从科学资源里自动挖掘 Agent Skill。一次 pipeline 跑出 286 个 skill,跨 27 个领域,其中 71.1% 是全新的能力。
同一天,anti-distill 项目也出现了——专门生成看起来完整、核心知识却被掏空的 skill 文件,让那些具体的编码规则变成「遵循团队规范」这句废话。
这三个东西加在一起,提出了一个精确的问题:Skill 到底能蒸馏我们的几分之几?那层能被掏空的是什么,那层掏不空的又是什么?
SkillsBench 的意外发现
BenchFlow 团队发布了第一份大规模跨领域 skill 评测,覆盖 84 个任务、11 个领域、7308 条测试轨迹。
总体数字很漂亮:加了 skill 后,Agent 任务平均通过率提升 16.2 个百分点。
但拆开看,结构出现了:
- 医疗健康:提升 51.9 个百分点(34.2% → 86.1%)
- 软件工程:提升 4.5 个百分点
同一套 skill 机制,领域不同,效果差十倍。
更反直觉的还在后面。研究者按详细程度分了四级 skill:
- Detailed(有步骤、有示例、聚焦具体操作):提升 18.8 个百分点
- Comprehensive(面面俱到、覆盖所有边界情况):提升 -2.9 个百分点
写得越完整,效果反而越差。
SWE-Skills-Bench 在软件工程领域测试了 49 个真实开源项目的 skill:39 个(约 80%)对通过率零改善,只有 7 个有明显正向效果,3 个甚至产生了负面效果。
linkerd-patterns 是个典型失败案例。它打包了 Linkerd 的 7 套配置模板,内容准确,但模型被模板死死锚定:照着过时 API 版本写代码,虚构不存在的字段,加入完全不相关的资源——三步失败都是因为放弃了自身判断,盲目跟随 skill 里的具体样例。
Skill 的三层结构
浙大 2026 年初发表的 SoK 论文给 Skill 下了正式定义:S = (C, π, T, R)
- C:适用条件,根据语义特征自动匹配
- π:执行策略,具体操作步骤和决策逻辑
- T:终止条件
- R:可复用接口
关键是「可路由」和「可组合」。2-3 个 skill 协同效果最好(提升 18.6 个百分点),4 个以上反而只提升 5.9 个百分点——模块化有收益,但存在最优粒度。
但这个定义没有回答 Skill 的边界在哪里。要理解边界,需要再往里挖一层:人的知识到底由哪些东西构成,哪些能被语言承载,哪些不能?
知识的三层精度
用认知科学 John Anderson 的 ACT-R 理论来拆解人类知识:
L1:陈述性知识 + 程序性规则
「ICD-10 J18.9 是未指明肺炎」「如果 CPU 使用率超过 80% 且持续 5 分钟,触发扩容」——这类 IF-THEN 规则写出来就能执行,效果确定。
医疗领域 skill 提升 51.9 个百分点,核心原因不是模型不知道 ICD 编码,而是没有 skill 时激活值不够。skill 做的本质是精准路由,把模型已经知道但被专业上下文压制的知识拉前台。
L1.5:扩散激活 + 范例
「说人话」「多用短句」「用生活场景做比喻」——这类风格化指令做的是给模型的检索加偏置。不同于 L1 精确路由,这是区域级寻址,把模型推向正确的激活区域,但区域内部的具体落点由模型先验决定。
多条扩散指令不能矛盾(「说人话」+「保持专业感」会打架),不能冗余(「简洁直接」+「多用短句」重叠),目标本身是模糊的(口语化是微博体?脱口秀?)。范例能收窄区域,但 Goodman's underdetermination 意味着有限范例永远兼容无限种可能的模式。
L1 写「如果 X 则 Y」,执行出来就是那个意思;扩散激活写「说人话」,执行出来大概方向对,但具体到哪里,由模型先验决定。
L2:Utility,判断的权重系统
什么时候该在多个因素之间做权衡取舍?
Skill 写「优先安全性而非性能」,但什么时候性能应该优先?答案取决于性能、可维护性、团队熟悉度、交付时间、技术债、安全性、合规要求等十几个因素的具体取值——你写不尽,也写不得。
1980 年代起医疗界就把资深医生的诊断逻辑写成 CDSS 临床决策支持系统,规则覆盖率 90%。四十年后,医生推翻系统提醒的比例一直居高不下,而且多数时候推翻才是对的。
Clancey 1985 年解剖 MYCIN 专家系统发现问题根源:提取出来的规则只是结论的表层,背后的因果模型和推理链条全部丢失。规则变成孤立 IF-THEN,失去了支撑它们的因果结构。
Hoffman 1998 年进一步指出,专家解释自己决策时,给出的是事后合理化版本,和实际认知过程有系统性偏差。这就是 knowledge acquisition bottleneck——你越努力把 Utility 写出来,离真实判断越远。
Polanyi 的观察在这里得到了精确的机制解释:当你把辅助意识的内容强行拉到焦点意识,整合就会被破坏。认知负荷理论说,Utility 本质是高元素交互的判断,被压缩进一条 IF-THEN 时,丢弃的是整个中间过程。
Skill 的形式是自然语言,而 LLM 的带宽同样有限。强行把本该压缩在权重里的经验展开成语言,只会造成混乱。
技能精度阶梯
L1(生产性规则 + 陈述性知识路由)→ 精确无歧义,skill 最可靠的地带
L1.5(扩散激活 + 范例)→ 方向正确但边界受限,体感「不完美但确实有用」的地带
L2(Utility)→ 不可编码,写出来就变性,降级为 L1 或扩散激活
SkillsBench 的 U 型曲线(Comprehensive 反而更差)就是 L2 干扰 L1 准确路由的证据——粗糙的语言覆盖了模型预训练中更精细的隐式权重。
四种 Skill 作者的策略
承认边界:优秀的写作辅助 skill 在末尾声明「所有内容都是建议而非规则」。这不是客套,是深刻的设计决策。最终的选题、立意和节奏判断,必须交还给人。
退守 L1 的纪律:superpowers 项目核心 skill 只有一条 checklist:做任何改动前先记录当前状态。不教判断,只确保 L1 级别纪律被执行。
假装没有边界:同事 Skill 搭了五层结构,试图打包思维方式、说话风格和判断倾向。语气风格很像,但「差点意思」——差的 именно 决策倾向那层 Utility 编码的失败。
从反方向说明边界:anti-distill 不创建 skill,而是把 skill 从高精度端推到低精度端,把 IF-THEN 替换成「遵循规范」「根据情况判断」——不需要删除信息,只需要把信息从 L1 推到模糊的 L1.5/L2,skill 就变成了一张废纸。
几分之几?
用时间量:一个人每天 8 小时里有多少可以被 skill 覆盖——约 60%~80%。大部分人大部分时间在做 L1 的事情。
用价值量:工作产出里有多少价值能由 skill 覆盖的部分产生——约 30%~40%。价值分布高度不均匀。不能被 skill 覆盖的那 20% 的时间做的事,往往才是核心。
两个数字不矛盾:80% 节省的是时间,30% 覆盖的是价值。
Skill 有界,蒸馏无尽
Skill 的失效,证明了自然语言作为蒸馏介质的局限。Polanyi 没有说错,隐性知识被强行拖进语言焦点就会破碎。
但这不意味着蒸馏碰到了南墙。
Skill 只是切片式蒸馏的第一刀,最浅的那一层。
当你无法用语言写出如何平衡长期技术债与短期交付压力时,Skill 确实无能为力。但在 Skill 之后,RL 和 Preference Learning 正在接管——它们直接观察专家在复杂决策下的最终选择,用海量参数隐式拟合那条你根本无法言说的 Utility 曲线。
模型不再需要你用语言教会它。它通过自我探索和试错,自己就能在那些无法被 Skill 化的暗礁中找到航线。
Skill 确实只能蒸馏那能被说出口的几分之几。但蒸馏不会终止于 Skill,它才刚刚开始。