论文链接:Subagents vs Agent Skills: Executing Reusable Knowledge for Long-Horizon Agentic Tasks 发表时间:2026年9月10日 机构:Cornell University × Microsoft Research Cambridge(实习生主导工作,标注"Work done during an internship at Microsoft Research Cambridge")—— 产学研合作典型 领域标签:cs.CL / Agent Skills / Subagents / Long-Horizon Tasks

一、论文背景

Agent skills 已成为扩展 agent 能力的主流范式:把领域知识打包成多文件技能包(说明文档+脚本+资源),需要时加载。Anthropic 的 Agent Skills、各类 skill 市场都在此范式上生长。但默认执行方式有一个隐含假设——把技能指令塞进主上下文,agent 就会遵循。

长程任务暴露了这个假设的脆弱性:任务越长、上下文里积累的信息越多(任务历史+工具输出+多个技能的指令),推理质量越差。上下文窗口是稀缺资源,技能指令是其中最占空间又最不常用的部分。

另一条路线在产业界已经流行(Cursor 当天发布的 Projects、各类 orchestrator-worker 架构):把子任务委派给独立上下文的 subagent。但"subagent 调用技能包"与"主上下文加载技能包"从未被系统对照过。

二、论文定位和关联工作

  • Agent Skills 路线:技能包即知识容器(Anthropic Agent Skills、 Voyager 技能库等)——关注"技能里放什么";
  • Subagent 路线:orchestrator-worker、任务分解委派——关注"子任务怎么分";
  • 上下文管理:long-horizon 退化、context rot 等现象已有多项研究记录。
维度skill 载入执行subagent 执行
峰值上下文主窗口持续膨胀每子任务全新窗口
技能指令位置常驻主上下文隔离子窗口
协调开销无主-sub 通信 token
失败隔离无(污染主上下文)有

定位结论:本文是第一个把"知识的调用方式"作为受控变量的实证工作——同一批技能包、同一批任务,只变调用方式。

三、问题定义

具体问题:给定技能包库与长程任务,技能应作为主上下文的注入内容执行,还是作为独立 subagent 调用?在什么条件下哪种方式占优?

关键操作化:作者把问题拆成两个可测子问题——(1) subagent 是否降低峰值上下文长度(机制层);(2) 降低是否转化为性能提升,以及何时转化(效果层)。

四、问题解法

1. 峰值上下文分析(3.1 节):把任务切分到多个上下文窗口,任一窗口处理的信息量上限显著下降——形式化论证"更多窗口⇒更低峰值"。

2. 输入输出契约(3.2 节):subagent 有效的前提条件被明确刻画——技能包须暴露清晰的输入输出契约(主 agent 只需知道"给什么、得什么"),且技能指令须编码履行契约所需的过程知识。契约是主-sub 通信的接口,也是隔离的边界。

3. 实验设计(4 节):SkillsBench 长程任务上对照两种执行模式;两个压力变量——干扰技能数量(描述附加上下文但解题不需要,模拟真实环境中工具繁多的情况)与任务长度;另对比人工精选技能包与自动合成技能包。

五、评估指标与实验证据

  • 主结论:技能包有明确契约+过程知识编码时,subagent 执行在任务准确率上稳定优于 skill 载入执行。
  • 压力测试:干扰技能数量增加时(初始上下文显著变长),subagent 执行退化更平缓(degrades more gracefully)——上下文隔离的红利随环境复杂度增大而放大。
  • 代价:subagent 模式总 token 更高(主-sub 协调开销),是"峰值上下文换总 token"的权衡。
  • 技能包来源:合成技能包在两种模式下均不逊于精选包,说明自动合成管线已达实用质量。

六、效果优势的根源解释

机制因果链:skill 载入模式把所有技能指令堆进同一个窗口 → 上下文越长注意力越稀释、指令遵循越不可靠 → 长程任务叠加多技能时恶性循环。subagent 模式的三个机制差异:

  1. 峰值限制:过程知识(技能指令的绝大部分)被挡在子窗口,主上下文只见契约级结果,信息密度保持高位;
  2. 隔离即稳定:子任务失败/冗长的中间输出不会污染主上下文——上下文腐蚀被物理隔离;
  3. 契约即抽象:主 agent 对技能的认知被压缩为接口签名,认知负担从"理解全过程"降为"选择与拼接"。

退化平缓的根源在第 1 条:干扰技能只增加主上下文的"背景噪声",而噪声对"窗口已很满"的载入模式伤害远大于对"窗口只有契约"的 subagent 模式。

七、必要知识反推

  • Agent Skills:Anthropic 2025 推出的技能包规范(SKILL.md+脚本+资源),本文的直接研究对象。
  • Subagent:拥有独立上下文窗口的子智能体,由主 agent 生成委派,完成后返回结果。
  • 上下文腐蚀(context rot):上下文变长后 LLM 推理与指令遵循系统性退化的现象。
  • SkillsBench:技能调用评测基准,本文实验场。

八、论文中可以提取的通用性灵感

  1. 知识的调用方式是独立设计维度:同样内容的知识,注入方式(常驻 vs 按需隔离调用)可以造成系统性性能差——知识管理系统(RAG、技能库、文档系统)都应把"调用粒度"当作一等公民。
  2. 接口契约是隔离的前提:subagent 化之所以可行,是因为契约把"需要知道的"与"需要执行的"分离——任何模块化改造前先定义契约,否则隔离只会制造通信混乱。
  3. 用峰值而非总量管理资源:预算紧张时,“任一时刻的最大占用"比"总消耗"更值得优化——总 token 换峰值上下文在长程任务中是划算交易。
  4. 压力测试设计:用"干扰技能数量"模拟真实环境的工具冗余,是评测 agent 架构时低成本高区分度的实验设计。