论文

一项技能过多:编码代理中共同安装的技能如何发生冲突

One Skill Too Many: How Co-Installed Skills Conflict in Coding Agents

模型评测智能体系统Agent 动作执行与治理Agent Skills安全与风险评测

摘要

编码代理通过代理技能进行扩展,其 SKILL.md 告诉模型何时以及如何执行任务的目录。由于技能来自独立来源(团队、开发人员、插件、复制的集合),因此已安装的技能可以与执行相同工作的类似技能共同安装,并且模型仅根据名称和描述在它们之间进行选择。在冲突中,安装的技能会失去核心功能(例如,禁止接触 git),因为类似的技能会运行或改变其功能。任务仍然通过,因此仅检查任务完成情况的基准测试会错过这种情况。我们首次对此类冲突进行实证研究。从 20,947 个存储库的快照中,我们挖掘了 822,109 个候选相似技能对,让LLM判断 3,754 个分层样本,并在三个模型上运行 312 个已确认的对(6,368 次运行、169,294 次工具调用、542 个代理小时)。我们报告了五项发现。 (1) 容易发生冲突的技能很常见:近四分之一的已安装技能与执行相同工作的技能同时安装,并且 37% 的判断技能位于复制的集合中。 (2) 大多数这样的 配对涉及规范技能,然后是能力技能。 (3) 在不降低任务完成度的情况下,类似技能会从已安装技能中获取五分之一的运行,并且首先打开类似技能的运行会失去只有已安装技能才能实现的专有核心功能的三分之一以上。 (4) 安装位置决定运行哪个技能,列出顺序几乎不重要,最终回复仅列出了 0.9% 的替换运行中使用的技能。 (5) 冲突在第一次读取技能时决定,几乎总是在更改任何文件之前,并且该读取处的预工具挂钩将独占核心功能的保真度恢复到首先打开已安装技能的运行水平。因此,基准测试应该对专有的核心功能进行评分,平台应该保护第一个读取并显示运行的技能。