@skills: Attention is all you have
Li Yin, Zhi Li, Zhan Shi, Haoran Zhang, Haebin Seong, Zhangyang, Wang
Atlas
cs.AI
2026-08-13
@skills 把技能交付拆成内容、留存、自动触发三件事:路径引用 0 常驻,:save 落进 git 树,:install 才占一行提示词
Agent 技能(SKILL.md 格式的程序性知识包)已经长成大生态:2026 年 7 月的一次全量爬取找到 56,804 个公开技能,分布在 1,133 个 GitHub 仓库,AWS 一家 138 个,Google 92 个,Stripe、Cloudflare、Sentry 都在发第一方技能。技能比 MCP 轻,不用维护 server,一个文件夹的文本 agent 读了就会用;Anthropic 自己也在把集成从工具调用推向文件系统上的代码执行,同任务的 token 开销从 15 万降到 2 千。
但交付方式还是「安装」。装完之后,技能描述永久驻留在系统提示里,靠模型把用户请求与这行描述做概率匹配来触发。论文的中心论断:可靠触发名额不足 100 个,56,804 个技能在抢这不到 100 个位置。而且这是驻留上下文的物理性质,不是哪家的设计失误:驻留描述固定在上下文顶部,每一轮对话、每一次文件读取都把当前请求推得离它更远,而注意力对上下文中段最弱;每个驻留描述在每条消息上都要付费,与是否相关无关;描述越多,互相稀释越重。装机越多,每个已装技能越不容易触发。
安装捆绑了三件可拆开的事——取内容、留存、自动触发,只有最后一件需要占用提示词。@skills 协议按此拆开,路径就是身份:
配套设计:路径指向没有 SKILL.md 的目录时,列成子技能清单而不是报错,目录即菜单;没有 manifest、lockfile、注册表;SKILL.md 格式零改动。一条消息里的多个引用各自在用点上加载,多技能工作流变成确定性的,安装制下则要 N 个描述同时赢概率匹配。落地是一个 npm 包加一份 SKILLS.md 指令文件,任何能读文件、跑 shell 的 agent 都能当客户端。
没有 benchmark,证据在生态测量与文献两侧:
| 测量 | 结果 |
| 公开语料 | 56,804 个技能,1,133 个仓库(2026-07 全量爬取) |
| 单技能驻留描述 | 50–280 token;18 个技能的实测环境常驻约 1,500–2,000 token |
| 技能正文大小 | 中位数 921 词(约 1.2k–3.7k token),P90 为 2,207 词 |
| 大厂第一方技能 | 21 家 958 个;15 个产品仓库的 569 个技能里 79% 点名自家 CLI/API,60% 带 shell 块 |
| 安装位置碎片化 | 75 个 agent 分散在 54 个不同的项目级技能目录 |
文献侧:500 条并发约束下,最强前沿模型的指令遵循降到 68%;长多轮场景比单轮平均掉 39%。生态侧的症状与理论对得上:Stripe 旗舰技能的描述塞了约 150 词触发条件,这类触发工程化描述的成本约是安静描述的 20 倍;两家聚合仓库就占了全部技能的 21%,长尾躺在索引里没人装;抽样分类里 42% 的技能需要外部服务账号,说明它们本质是集成件。
对每天用 Claude Code 的人,这篇把一个模糊体感(装多了技能,agent 反而变笨)变成了有数字的机制解释。位置衰减、常驻税、稀释是驻留上下文的物理性质,换模型也不消失;团队把工作流塞进单体 AGENTS.md 同样是驻留上下文,衰减路径一模一样,论文说最粗糙的机制在用户唯一能感知的维度(省事)上赢了。协议本身是减法:不加字段、不建强制中心,gh: 与本地路径不需要 hub 也能解析,现有安装照常工作。三层分级把「占不占提示词」从默认变成决策,这个框架对任何做 agent 上下文管理的人都成立,比某个具体实现更值得带走。
论文自己列的:中心量「可靠触发名额不足 100」靠论证与既有文献推出,没做触发准确率对装机数的受控实验;语料数字来自一次爬取与一套实测环境;被引用的技能是远端文本,天然构成间接提示注入的通道,对策只有溯源与审查。设计取舍也有代价:没有版本锁定、没有更新生命周期,要稳定的团队只能 :save 自管;引用把一次网络往返放进关键路径。最该打折的一点:作者创办了 SylphAI,AdaL CLI 与配套 hub 都是其运营的基础设施,这篇论文在为自己修的路写论证。