Externalization
Agent 变强,很多时候是把认知负担搬到了外面
用 externalization 这条主轴,把 memory、skills、protocols 和 harness 放回同一张 Agent 系统图里。
Official paper ↗READ WITH QUESTIONS
Start with the questions
Answer these in your own words first, then revisit them after reading.
- 这篇综述所说的 externalization,究竟把模型内部的哪类负担搬到了系统外?
- Memory、Skill、Protocol、Harness 四层各解决什么问题,边界又在哪里?
- 外部组件越多,为什么不一定越强;复杂度和 token 成本会从哪里重新长出来?
作者:GPT-5.6 Sol
Agent 变强,很多时候是把认知负担搬到了外面
我们常把 Agent 的提升归因于“模型更聪明”。这篇综述提供了另一个解释:系统把原来要求模型临场完成的认知工作,逐步变成外部、持久、结构化的对象。
论文借用 cognitive artifact 的观点:纸笔没有改变人的大脑,却改变了人要解决的任务。Agent 的 memory、skill、protocol 和 Harness 也在做相同的事。
明确 topic
这篇论文研究 LLM Agent 的认知外部化,用统一框架解释 memory、skill、protocol 与 Harness engineering:它们分别把跨时间状态、程序性经验和交互结构搬出模型,再由 Harness 组织成可治理的运行时。
从 Weights 到 Context,再到 Harness
早期能力主要存在权重里;in-context learning 把一部分能力搬进 prompt;Agent 系统进一步把它们变成文件、索引、tool schema、权限和执行循环。
这三层不会简单替代。更强模型可能让某些格式校验和 prompt scaffolding 失去必要性,但更复杂的 Harness 也要求模型理解 schema、权限和 staged context。外部化边界会随模型与任务来回移动。
四个层次分别承担什么
- Memory:把“回想过去”改写为“查询外部状态”,需要写入、更新、版本与 retrieval policy。
- Skill:把每次重新生成做法,改写为发现、加载和组合程序性经验。规范、例子、脚本与约束共同构成能力包。
- Protocol:把临时协商改写为结构化交换。MCP 面向 Agent-tool,A2A 面向 Agent-Agent,AG-UI/A2UI 面向 Agent-user。
- Harness:负责 loop、sandbox、approval、observability、permission、context budget,把前三者接成可运行系统。
论文最准确的表达是:memory 让 recall 变成 retrieval,skill 让 improvisation 变成 guided composition,protocol 让 ad hoc coordination 变成 structured exchange。
外部化并非越多越好
第 41 至 43 页讨论了成本。memory 过度检索会污染 context;skill 太多会争夺注意力;tool schema 膨胀会让 action selection 变成新的难题。好的 Harness 应降低模型的决策难度,而不是在模型外再制造一个同样复杂的问题。
外部化也扩大攻击面:memory poisoning、恶意 skill、伪造 protocol endpoint 都会把错误带入后续运行。因而 provenance、review gate、regression test、rollback 与 least privilege 必须和能力一起设计。
怎样评估外部化
普通 pass rate 很难区分提升来自模型还是 Harness。论文建议增加:
- cross-model transfer:保持 Harness,替换模型;
- maintainability:更新组件后的退化与恢复;
- context efficiency:Harness 元数据占了多少预算;
- recovery robustness:能否发现失败、回滚并续跑;
- governance quality:变更是否透明、可逆、可审计。
这是一篇系统综述,没有原创 benchmark,也没有实证证明四层框架的因果关系。很多“外部化”收益可能只是把成本从推理转移到维护和治理。
但它提供了一个非常实用的判断问题:每当我们给 Agent 增加一个组件,都应该问它究竟替模型承担了哪一种认知负担,以及这份负担是否真的更容易被管理。