本文来自微信公众号: 碳基智 ,作者:碳基智
之前也写过关于skill本质的文章,其实它就相当于一个给Agent用的system prompt,告诉模型“你是谁、该怎么做、什么不能做”这些事情,从Harness的角度看,边界围栏设立得清清楚楚,理论上Agent的输出效果会更好。
理论上……
但当我把自己的各类工作流抽象成skill以后,却发现:除了那些有着我鲜明个人特色需求的skill,不加载skill纯模型输出的效果也没想象中差。虽然从skill benchmark测试的结果看,skill输出的平均分往往要高于纯模型输出,但这背后的原因可能跟大家想的都不太一样。
大部分人迭代skill的流程通常是这样的:
先写完初版,上线试跑➡️发现问题,添加新约束➡️继续迭代,各种禁止词出现➡️最终skill行数从开始的400行,膨胀到近2000行。
但输出效果还是不够稳定。
越强调,文档越长;文档越长,注意力越分散;注意力越分散,违反越多;违反越多,再追加一遍。一个完美的恶性循环。
这里的技术原理,说白了其实就是模型的注意力机制问题。Stanford的经典论文《Lost in the Middle》里提到:
大模型对输入序列的注意力分布不是均匀的,开头和末尾的内容获得最多关注,中间区域容易被遗忘,呈U形曲线。
数据上看,开头指令的遵循率能达到73%,末尾会略低一些,到了中间区域遵循率就会骤降30%–50%。原因也很简单,Transformer的位置编码机制决定了,两个token距离越远,注意力越弱。
我最近正好读到了一篇新的论文《The Regression Tax:Decomposing Why Skills Help and Hurt LLM Agents》,它用相对还算严谨的实验给了我一些解答。我发现,传统的skill benchmark评测里面有一个大家都忽略了的地方。传统评测把一套skill加到Agent上,重新跑benchmark,然后比较平均成功率。比如无Skill通过100道题中的60道,加Skill后通过65道,结论通常写成提升5个百分点。
但那65道正确答题可能来自两条完全不同的路径:
新做对5道,原来会做的题一题没错;
新做对20道,同时弄错15道旧题。
两套系统的平均分都从60涨到65,可靠性却不在一个档次。第一套Skill扩大了能力边界,第二套Skill对能力做了大规模换血。作为用户,你很难分清楚,你的skill究竟是第一套还是第二套。
作者选了486个办公自动化任务,把每个配对任务分成四类: