同一个模型的五个智能体,会一起犯同一个错
快速把握
是什么。 智能体架构是一组模型调用,加上决定每次调用看到什么、可以做什么、返回什么的规则。有用的单位不是“一个智能体”,而是一个节点:一个角色,配一套上下文策略、一个工具列表、一份预算、一种输出格式。规划者、只拿到一份简报的工人、看到 diff 但看不到作者推理的审查者、只读文档不能行动的守卫、在无人等待时写入记忆的策展者。架构就是对节点的选择,以及节点之间传递什么的选择。
为什么重要。 大多数智能体失灵是结构性的,而不是模型太弱。
- 早期的一步走错,会引导后面的每一步。
- 用散文交接,会丢掉接收方需要的事实。
- 五十个工具的目录,会让模型选错工具。
- 同一个模型的五份拷贝,会在同一个错误上达成一致。
- 与作者共享上下文的审查者,会批准作者的作品。
每一种都有结构性的修复,每种修复都有可测量的代价。任务是把修复匹配到你实际拥有的故障上,因为把修复用在错误的故障上纯属额外开销。
怎么做,五步。
1. 用下面八个案例,在轨迹中说出你看到的故障:污染后续步骤的一步、有损的交接、视野里东西太多、相关的错误、输入大于窗口、有依赖的审查者、延迟或成本、跨会话没有学习。
2. 找到故障越过的边界:尝试之间、节点之间、目录与调用之间、作者与审查者之间、会话之间。
3. 从匹配的层级里,为那个边界挑选结构性答案,先读它的可测量代价,再读它的可测量收益。
4. 把越过边界的东西定义为一个带必填字段的 schema、一个“需要更多”的返回值、一份预算,然后像测试 API 一样测试这个载荷。
5. 在你控制的任务上,用同样的 token 预算对比单智能体,测量收益,因为大多数已发表的收益在预算拉平后都会缩小或反转。
什么时候要关心。 两个条件:任务需要不止一次模型调用,并且至少有一次调用可能出错。如果每个任务都是一次干净的单次调用,结构只会增加成本。如果调用会链式、重试、分支,或运行数小时,它们之间的接线就决定了故障是保持局部还是复合放大。
重要: 这个领域最强的受控结果是负面的。在同等 token 预算下,单智能体通常能匹配或击败一个团队,而同一个模型的五份拷贝会把同一个错误犯五次。下面每一种模式,只有通过增加单次调用不可能拥有的东西,才能挣得自己的位置:一个干净的上下文、一个不同的模型、作者没有写出的信号,或者窗口装不下的一次读取。
层级树
- 第 1 层:一个失败的步骤引导之后的每一步:每次尝试用全新上下文、重启循环、检查点、持久重试。
- 第 2 层:交接丢掉了接收方需要的东西:类型化状态、文件支撑的任务包、结构化接力、要点摘要、按输入重建的计划。
- 第 3 层:视野里东西太多:渐进披露、路由器、按节点划分的目录,以及嵌套的代价。
- 第 4 层:更多智能体,同样的错误:相关故障、从众、错误放大,以及让工人保持独立的结构。
- 第 5 层:输入比任何窗口都大:编排者-工人、分块归约、递归读取、代码执行、廉价读者。
- 第 6 层:审查者同意作者,而读者信任文档:盲验证者、跨模型审查、隐藏评分者、守卫节点、故障归因。
- 第 7 层:时钟与账单:快节点与慢节点、规划者-执行者拆分、按成本路由、缓存、按节点预算。
- 第 8 层:跨会话什么都没学到:记忆策展者、睡眠时间计算,以及为什么普通历史仍然胜出。
第 1 层:一个失败的步骤引导之后的每一步
这一层回答:当一次早期调用失败或猜错时,什么能阻止这个失败偏置系统接下来做的一切?
这是最常见的结构性故障,也是证据最清晰的一个。一个在上下文中看到自己错误转向的模型,会把它当作故事的一部分,并继续朝同一方向走。
- Laban 等人(arXiv 2505.06120),15 个模型,20 万次以上模拟对话:把任务的指令分散到多轮中,平均使准确率下降 39%;能力下降 16%,但不可靠性上升 112%。
- 把摘要粘贴回同一个对话,只恢复了约 15% 到 20% 的损失;用一个整合后的陈述作为种子的全新对话,恢复了大部分损失。
- 自我条件化(arXiv 2509.09677):看到自己先前的错误会提高模型之后的错误率;作者把 GAIA 失败的约 20%、ALFWorld 失败的 48%、WebShop 失败的 33% 归因于此,并发现延长思考能减少它。
- 记忆诅咒(arXiv 2605.08060):在重复合作博弈中携带完整历史的智能体,早期合作率为 92.1%,后期为 20.6%;历史本身驱动了崩溃。
- Chroma 的上下文腐烂研究(供应商测量,18 个模型):约 300 token 的聚焦提示在 LongMemEval 上击败了约 113,000 token 的完整记录,而打乱的记录得分高于连贯的记录。
不可靠性这个数字才是关键。模型并没有弱很多;它们变得不稳定,因为一个错误假设留在了输入里。Chroma 的结果从另一面说了同样的事:连贯的历史比打乱的历史伤害更大,所以模型是在跟随自己上下文的叙事,而不只是没能在里面找到事实。Breunig 给这个现象起的名字是上下文中毒,它区别于更早的位置效应,即准确率取决于一个事实在长窗口中的位置(arXiv 2307.03172;NoLiMa,arXiv 2502.05167,其中 13 个模型里有 11 个在 32,000 token 时跌到其短上下文得分的一半以下)。
存在六种结构性答案,它们的主要区别在于切口落在哪里。
每次尝试用全新上下文。 任务在一个空节点中运行,只有一份书面简报,没有别的东西,结束后丢弃。聊天机器人版本是一个有状态的前端节点,它持有对话并为无状态工人写简报;工人的失败永远不会进入聊天。框架默认值各不相同:OpenAI Agents SDK 的“agents as tools”、Google ADK 的 AgentTool 和 Strands 的 .as_tool() 会让被调用者从空上下文开始,而 hand-offs 和 sub_agents 会传递记录。
重启循环。 在一个固定的提示文件上运行智能体,退出,在新上下文中再次运行,重复直到测试通过或预算花完;文件和测试结果是唯一的状态。支持者报告说,一个循环在 30 天内产生了约 259 个拉取请求,有效窗口约为 147,000 到 152,000 token,之后质量下降。这两个数字都是没有对照的轶事。
检查点与回退。 回到错误转向之前,而不是在之后纠正。Claude Code 的指南说,两次纠正失败后就清空并重启,它的检查点可以恢复代码、对话或两者;Cursor 的检查点只恢复文件,消息留在原地,所以错误转向仍留在上下文中。
按步骤持久重试。 Temporal、Restate、Inngest 和 DBOS 等运行时记录每一步,并从最后完成的一步重放;一次被包装为步骤的模型调用会用其原始输入获得一次全新尝试。Temporal 默认无限重试,DBOS 重试三次。陷阱在于,一个把错误作为字符串返回的工具会被视为成功,于是错误被记录为结果,并在每次恢复时被重放。
把错误留在尝试内部。 Manus 的生产规则表面上与上述所有做法相反:把失败的动作及其错误留在上下文中,因为看到失败的模型会调整,而没看到的会重复它。
行动前先思考。 自我条件化研究发现延长思考减少了这种效应,这是在无法重置时最便宜的答案。
一旦固定时间尺度,Manus 的规则和 Laban 的结果并不冲突。在一次尝试内部,失败的命令及其错误是模型需要的证据。跨尝试时,一旦任务重启,旧的失败就不再是证据,而是偏置。同时适用于两者的规则是:把错误留在一次尝试内部,跨尝试时丢弃它们,当某些东西必须跨越时,写教训而不是写轨迹。
第二个陷阱更微妙。如果前端节点把每一个工人失败都逐字粘贴回对话,它就恰好积累了拆分本来要隔离的那些轨迹。隔离只有在边界两个方向都被过滤时才有效:工人得到一份简报,前端节点得到一个结论。
对我们意味着什么: 在选择切口之前先决定时间尺度。在一次尝试内部,错误是证据;跨尝试时,它是偏置。全新上下文、重启循环和持久重试都实现了后半部分,而如果错误作为文本返回而不是作为失败抛出,它们都会静默失败。
带走:
- 全新上下文移除错误转向;在同一上下文中的摘要只能恢复损失的一小部分。
- 把错误留在一次尝试内部,跨尝试时丢弃;用教训和文件路径跨越边界。
- 任何把错误字符串记录为结果的重试机制,都会重放毒药。
第 2 层:交接丢掉了接收方需要的东西
这一层回答:当工作从一个节点跨越到另一个节点时,什么被丢失了,哪种载荷格式丢失得最少?
每一个修复第 1 层的切口都会制造这个问题。接收节点不可能知道自己没被告知的东西,而发送方不知道接收方会需要什么。
- 自然语言智能体框架(arXiv 2603.25723):“信息交接召回率”,即子节点的回复中包含父节点所需事实的比例,在软件任务上是 0.32,在终端任务上是 0.55,而自己完成工作的单智能体是 1.00。
- 规格差距(arXiv 2603.24284,n = 204):拥有完整规格的单智能体得分为 88.6%;一个并行团队,每个工人只看到一片,得分为 58.2%;把完整规格给合并者,恢复到 88.9%,而要求工人报告冲突没有增加任何东西。
- 接力链(arXiv 2603.26993v1,n = 200 道 MMLU 题):单智能体得分为 90.7%;用散文把结论经过两个、三个和五个智能体传递,分别得到 41.2%、43.5% 和 22.5%;一个结构化接力传递答案上的概率分布而不是散文,保持了 75.2%。
接力结果是其中最尖锐的。在四选一测试中,五个智能体用散文传递,得分低于随机猜测;同样的链条用结构化载荷,只损失了单智能体得分的五分之一,而不是四分之三。载荷格式,而不是智能体数量,决定了大部分损失。论文的理论部分补充了一般性观点:一个拥有相同信号的中央决策者永远不会比一个被委托的网络更差,所以拆分带来的任何收益都必须来自拆分所增加的东西。Cognition 的文章把机制称为“行动携带隐含决策”:一个只看到简报的工人无法知道哪些选项在上游已经被拒绝。
记录中出现了八种结构性答案,从最便宜到最侵入排列。
类型化状态而不是记录。 节点交换一组定义的字段,每个字段都有更新合并规则,子图只暴露其答案。LangGraph 的图状态和 POLARIS 的类型检查计划图(arXiv 2601.11816)是参考设计。代价是,没有字段的事实会丢失,所以需要一个自由文本备注字段来应对意外。
文件支撑的任务包。 NLAH 论文自己的修复方案是一个任务文件、一个响应文件,以及磁盘上只追加的历史,这样接收方可以读到比发送方总结的更多东西。仅添加文件支撑的状态,就把软件得分从 73.0 提升到 75.6,把计算机使用得分从 44.4 提升到 58.3。
合并者看到一切。 规格差距的结果说明了在哪里花上下文:把完整规格给合并结果的节点,而不是给工人。
结构化接力。 传递一个分布或一个评分列表,而不是一个结论,就像接力研究做的那样;接收方看到发送方的不确定性,而不只是它的选择。
紧凑的已验证要点摘要。 DELM(arXiv 2606.10662)让同伴把已验证的 100 token 要点摘要写入共享状态,只在需要时展开细节;同一任务花费 $0.125,而同伴阅读完整命令历史时花费 $0.399。
可恢复压缩。 Manus 的规则:保留文件路径或 URL,丢弃内容,这样接收方可以重读摘要省略的东西。无法撤销的压缩是没有返回通道的交接。
按输入重建,而不是按年龄。 Planfence(arXiv 2609.03340)测试了当同伴记忆变化时会过时的计划:按年龄检查的计划让过时计划在 30 个五智能体工作流中通过了 30 个;每当输入变化就重建的计划让 0 个通过,代价是多约 15% 的 token。
潜在交接。 递归多智能体系统(arXiv 2604.25917)通过训练过的链接模块传递隐藏状态而不是文本:在 9 个基准上平均比文本基线高 8.3%,token 少 34.6% 到 75.6%。它需要闭源 API 不提供的模型访问权限,所以目前是研究结果。
还有两个结果属于这里,因为它们关于什么跨越,而不是在哪里跨越。幻觉滚雪球研究(arXiv 2608.14588)建模了一个四阶段流水线,测量有多少错误存活到最后。
- 流水线中存活的错误:没有检查时 58.4%,每个边界都有门控时 16.2%。
每个交接处都设门控,是“在边界验证”的结构化版本。第二个结果来自阅读框架源码而不是论文。OpenAI Agents SDK 的过滤器 remove_all_tools 会从交接历史中剥离工具调用项,但助手消息内引用的工具结果会存活,所以一次失败的查找可以以散文形式跨越。为丢弃失败工具结果而写的过滤器,必须针对这种情况来写。
最后一个答案是返回通道。一个无法反问的工人是每次拆分的主要代价,所以简报需要一个“需要更多信息”的返回值,由发送方把它变成一个问题,还需要一个带必填字段的 schema,这样缺失的输入会在工人运行之前失败,而不是在它内部失败。
为什么重要: 在每一项改变载荷格式的研究中,载荷格式都决定了大部分损失。散文摘要保留了单智能体得分的四分之一;结构化摘要保留了四分之三;一个接收方可以重读的文件增加了 2 到 14 个点。先设计交接,再设计节点。
带走:
- 跨越边界的东西决定了大部分损失;结构化胜过散文,可重读文件胜过两者。
- 合并结果的节点需要完整规格;工人不需要。
- 给每个交接设门控,为你想要阻止的泄漏写过滤器,并给每个工人一个说“需要更多”的方式。
第 3 层:视野里东西太多
这一层回答:任何节点一次应该看到多少工具和技能目录,展示更多要付出什么代价?
Breunig 的第二个和第三个故障名称是上下文分心,即历史太多,模型重复过去的动作;以及上下文混淆,即无关的工具或指令因为存在而被使用。两者都来自向一个节点展示超过其角色需要的东西。
混淆真实存在的证据来自数工具。
- RAG-MCP(arXiv 2505.03275):在调用前检索相关工具描述,把选择准确率从 13.62% 提升到 43.13%,并大致把提示 token 减半。
- MCP 服务器的生产遥测(arXiv 2606.30317,每桶约 200 轮,非对照):Haiku 4.5 在 10 个工具时 91% 选对工具,15 个时 87%;Sonnet 4 在 10 个时得分 95%,30 个时低于 90%。
- Breunig 引用一个 Llama 3.1 8B,在上下文中有 46 个工具时任务失败,19 个时通过,任务不变。
- Google 的扩展研究(arXiv 2512.08296):工具开销从约 16 个工具开始出现。
广泛流传的“三十到五十个工具”阈值,我找不到原始来源。测量到的阈值取决于模型以及描述有多相似,而遥测显示小模型从十五个工具就开始受损。
技能,即可供智能体加载的可复用指令文件,显示出同样的曲线,细节更多。
- 技能遮蔽(arXiv 2605.24050):选中名称相似错误技能的概率,从 52 个技能时的 0.08 上升到 102 个时的 0.14,202 个时的 0.21。
- 干扰技能(arXiv 2610.18522,15,000 条以上轨迹):正确技能的召回率从无干扰时的 73.6% 下降到 1,000 个干扰时的 27.4%;Opus 4.6 在子集上从 81.3% 下降到 30.9%。
- SkillsBench(arXiv 2602.12670):紧凑技能把任务成功率提高 19.0 个百分点;全面技能提高 0.7 个百分点。
- 按任务屏蔽(arXiv 2606.15390):隐藏与任务无关的技能,成功率提高 47.4%。
- 把技能正文藏在名称后面(arXiv 2603.22455):首次命中检索下降 37 到 44 个百分点。
第二条和第五条相互拉扯,并决定了设计。展示一切会埋没正确的技能;只展示名称会隐藏它。索引条目必须是一行模型可以匹配的描述,正文之后再加载。
五种结构性答案。
渐进披露。 节点看到一个短索引,并请求它所选那个的正文。Anthropic 的工具搜索(供应商测量)把一个多服务器设置从约 77,000 token 的定义削减到约 8,700,并在其 MCP 评估中把 Opus 4 从 49% 提升到 74%;同样的指南说,在约十个工具以下,搜索不值得。一个受控版本,惰性工具加载(arXiv 2604.21816),把每轮工具 token 从约 47,300 削减到约 2,400,没有报告准确率损失。
扁平索引,永不树状。 一项关于长上下文智能体的研究(arXiv 2607.17598)发现,嵌套披露把成功得分从 0.7479 降到 0.3890,而在 20 个选项中,扁平索引得分为 0.462,嵌套索引为 0.257。一层间接是便宜的;两层意味着从名称猜测分支,这是向上移动了一层的遮蔽。
分诊路由器。 一个小节点读取请求并选择一个主题;专家只看到该主题的工具和最后几轮。Salesforce、Decagon 和 Rasa 将其作为产品功能暴露出来,但都没有公布路由准确率,所以这是实践证据,不是测量到的收益。代价是,路由错误在轮次内不可恢复。
屏蔽而不是移除。 Manus 在提示中保留完整工具列表,并屏蔽当前状态禁止的工具的 logits,这样提示前缀保持稳定,缓存继续命中。当目录必须逐步变化,但缓存比 token 更重要时,这是答案。
按节点划分目录。 前端节点看到分诊列表,专家看到其主题的工具,审查者看到审查技能而没有编辑工具,策展者看到记忆工具而没有任何作用于世界的东西。混淆通过节点看不到什么来防止。
分心有一种更安静的形式:一个节点在不该委托时委托。LOCA-bench(arXiv 2602.07962)构建了上下文在受控条件下增长的任务,发现最佳模型从 8,000 token 时的 96.0% 下降到 256,000 token 时的 14.7%,并且一个智能体框架在相同任务上得分低于普通循环,原因是无谓地使用子智能体。子智能体本身就是一个工具,在存在时可能被选中,而修复方案与任何其他工具相同:一条规定何时可以使用它的规则。
带走:
- 在约十个工具以下,全部展示;超过则用一行描述建立索引,并按需加载正文。
- 保持索引扁平;在唯一测试它的研究中,嵌套大约使成功率减半。
- 给每个节点自己的短目录,并把“委托”当作一个也需要规则的工具。
第 4 层:更多智能体,同样的错误
这一层回答:当你增加工人时,为什么它们一起失败,哪些结构让它们保持独立?
团队背后的直觉是,多次尝试能抓住一次遗漏的东西。2026 年的证据表明,这仅在尝试独立时成立,而同一个模型互相交谈的拷贝不是独立的。
- 共失败上限(arXiv 2606.27288,67 个模型):所有模型都失败的问题比例,在 MATH-500 上是 5.2%,在代码竞赛上是 7.9%;任何路由器、投票或级联的上限都是 1 减去这个比率。一个学习到的路由器捕获了 oracle 收益的 9%,置信区间跨越零;一个用作路由器的模型把 100% 的任务发送给单个最佳模型,什么也没捕获。
- 多样性崩溃(arXiv 2604.18005):每个智能体的多样性随着交互从三个智能体时的 1.03 下降到七个时的 0.47;讨论前的独立提案,即名义群体技术,保持了它。
- 旁观者效应(arXiv 2605.10698,22,500 条轨迹):在两个模拟同伴审计员的情况下,GPT-5.4 在 SWE-bench 上从 1.00 下降到 0.23,Gemini 3.1 Pro 从 1.00 下降到 0.83,Claude Sonnet 4.6 保持在 1.00;审计员的顺序使准确率变化高达 24%。
- Google 的扩展研究(arXiv 2512.08296,180 种配置):独立工人的错误被放大 17.2 倍,中央编排者为 4.4 倍;跨任务添加编排者的平均变化是负 3.5%,在一个金融任务上收益 80.9%,在 PlanCraft 上损失 39% 到 70%;一旦单智能体基线超过约 45%,收益消失。
- 同等预算(Tran 和 Kiela,arXiv 2604.02460):在相同的思考 token 下,单智能体得分为 0.418,而多智能体设置在 1,000 token 预算下得分为 0.379 到 0.388;团队只在 100 token 预算或共享上下文被故意破坏时才获胜。
- 团队作为分布式系统(arXiv 2603.12229):自协调的编码团队以单智能体 0.88 倍的速度运行,中位测试失败 19 次,而预先分配角色的团队是 1.36 倍速度和 4 次失败,失败次数多 4.75 倍。
- 扩展单模型团队(arXiv 2606.00655):性能随智能体数量呈倒 U 形,成本二次增长,7B 和 8B 模型没有收益,思维链在推理任务上匹配或击败团队。
- 框架效应(arXiv 2607.06906,六个模型):委托只帮助了最强的两个模型,从 0.85 到 0.86,对快速层级从 0.42 到 0.45 没有任何作用。
放在一起,这些说了四件事。同一个模型的拷贝共享一组盲点,所以更多拷贝增加的是投票,不是检查。交互让拷贝更相似,一个看到同伴不同意自己的模型会放弃正确答案来匹配它们。独立工人把同一个错误犯很多次,而抓住它的编排者要花 token。拆分帮助弱基线和被破坏的上下文,否则对强基线征税。
七种结构性答案。
交互前先独立。 让工人在看到彼此之前提案,然后合并;这就是多样性研究发现能保持多样性的名义群体技术。实践中:提案阶段没有共享草稿板,任何工人的提示中都没有同伴输出。
中央审查,而不是同行审查。 一个节点看到每个工人的输出和完整规格;在扩展研究中,这相对于独立工人把错误放大减半,并恢复了规格差距得分。
每个角色用不同的模型家族。 共失败无法通过拷贝修复。第 6 层的跨模型审查给出了 14 个点,而同一模型的全新上下文只给了 1.5 个点。
固定顺序,自由角色。 Drop the Hierarchy(arXiv 2603.28990,25,000 个任务,4 到 256 个智能体)发现,固定轮次顺序且智能体选择自己角色,比中央协调者好 14%,比完全自由协调好 44%;较弱的模型在更严格的结构下表现更好。
预先分配工作,单一写者。 分布式系统的结果说,不要让工人协商拆分。Cognition 的建议是一个写者配多个贡献者,而 CAID 研究(arXiv 2603.21489)发现,在 git worktrees 中的硬隔离得分为 63.3%,而工人共享检出时为 55.5%:它们停止阅读彼此半完成的更改。
用测量统计而不是意见的路由器。 Agent-as-a-Router(arXiv 2606.22902,约 10,000 个编码任务,8 个模型):给路由器提供按任务类型的成功率,把它从 41.41% 提升到 47.74%,而最强的编码者 Opus 4.6 是最差的零样本路由器,为 39.27%。擅长任务并不能让模型擅长知道谁擅长任务。
发布前的同等预算检查。 Tran 和 Kiela 的设计就是测试:用团队的总思考 token 运行单智能体。如果单智能体获胜,团队就是一种花 token 的方式,而不是一种结构。
重要: 拷贝组成的团队不是团队。同一个模型的五个实例在同一个错误上达成一致,它们谈得越多,就越趋同。独立性必须内置:分开的提案、检查席位上的不同模型、一个看到完整规格的中央合并者。
带走:
- 共失败上限限制每一次投票、路由器和级联;只有不同的模型或真正的外部信号才能打破上限。
- 交互侵蚀多样性,从众会丢掉正确答案;在任何讨论之前收集提案。
- 预先分配拆分,保持一个写者,并在称团队为收益之前运行同等预算比较。
第 5 层:输入比任何窗口都大
这一层回答:当材料远大于一个上下文时,哪个节点读什么,拆分阅读什么时候能回本?
在这里,上下文不是被毒化了,而是被淹没了。结构性答案拆分的是阅读,而不是对话,而证据主要关于收益真正来自哪里。
Anthropic 的研究系统是最著名的编排者-工人文章,它的数字需要标签。
- 多智能体研究在内部评估中比单 Opus 4 智能体高 90.2%(供应商声称,约 20 个查询)。
- Token 使用解释了 BrowseComp 得分约 80% 的方差,加上工具调用次数和模型选择后为 95%;多智能体运行使用的 token 约为聊天的 15 倍。
- 主负责人提示中的努力规则:一个工人三到十次工具调用查一个事实,两到四个工人十到十五次调用做比较,十个或更多工人处理开放问题。
第二条是诚实的。大部分收益是花更多 token,而并行结构是一种在时限内花掉它们的方式。它们早期的失败,一个主负责人为简单查询生成五十个工人,以及含糊的简报让工人重复彼此的阅读,是通过简报和努力规则修复的,而不是靠更多工人。
六种结构性答案,按阅读节点被允许决定多少排列。
分块与归约。 拆分输入,让工人各读一片,归约它们的输出。Chain of Agents(arXiv 2406.02818)把一个运行摘要从一块传到下一块,报告比单次长上下文调用高多达 10 个点。第 2 层的接力结果是警告:散文形式的摘要链在每一跳都丢失事实,所以归约步骤需要结构化载荷。
递归读取。 递归语言模型(arXiv 2512.24601)把输入作为一个变量,模型用代码检查它,对片段调用自身。一个用 GPT-5-mini 的递归设置在 OOLONG 上 132,000 token 时比 GPT-5 高 34 个点以上,在 263,000 时高 15 个点以上;移除递归损失约 10%。浏览结果基于 20 个任务,而阻塞调用阻止了提示缓存。
为工具数据执行代码。 智能体写代码调用工具,并把数据留在沙箱中,只返回它需要的东西。Anthropic 的示例(供应商声称)把 150,000 token 的工具结果变成约 2,000;一个程序化工具调用的受控比较在一个基准上把 43,588 token 削减到 27,297,准确率从 46.5 移动到 51.2。第二组才是应该引用的:token 少三分之一,几个点的提升,而不是 98%。
用编码智能体作为读者。 Coding Agents are Effective Long-Context Processors(arXiv 2603.20432)把智能体自己的文件工具当作检索机制:输入放在磁盘上,智能体用 grep、读取并做笔记。来自检索基准的反证(arXiv 2605.15184,116 个问题)是,同一个智能体在 100,000 到 200,000 个文档下,工具调用从 38.5 翻倍到 86.9,并损失 13.6 个点;而且框架对准确率的影响与检索器一样大:Opus 4.6 在一个框架中得分为 93.1%,在另一个中为 76.7%。
一个廉价的无状态读者。 Spotify 的 Portal(供应商测量,一个 Java 单仓库,四个场景)把批量阅读发送给一个 Gemini 2.5 Flash 工人,用一次性无状态调用,只让一个短摘要进入 Claude 的上下文,批量阅读时 Claude token 少约 90%。作者列出了代价:编辑无法委托,因为摘要不携带可靠的行号;每次调用增加 10 到 30 秒;而廉价读者漏掉了一个主模型几秒钟就发现的线程安全 bug。
把文件系统作为上下文。 Manus 对每个长任务的规则:重置后存活的东西在磁盘上,记录持有可恢复的引用,智能体重读它需要的东西。Agora(arXiv 2609.18094)把这个推到极限,13 个工人除了 git 历史什么都不共享,在一次运行中 11 天内产生了 1,703 次贡献和 233 个新最佳,没有基线。
Spotify 的结果是这一层的实际形态。节省是真实的,失败是具体的:一个返回摘要的读者无法返回它没有注意到的内容,而廉价读者与主模型之间的差距,恰恰在摘要本应揭示的微妙 bug 上最大。
为什么重要: 当单智能体基线弱、共享上下文已经错了,或材料装不下时,拆分阅读才能回本。在约 45% 基线准确率以上,受控研究没有发现收益,而 token 账单上升了一个数量级。为容量买拆分,不是为准确率。
带走:
- 大部分测量到的研究收益是更多 token,由带努力规则的简报组织;结构是预算缩水时你保留的东西。
- 通过让模型用代码或文件请求批量数据,把它挡在上下文之外,并保持归约步骤结构化。
- 廉价读者节省 token 并漏掉微妙情况;决定哪些阅读能承受这一点。
第 6 层:审查者同意作者,而读者信任文档
这一层回答:审查者、评分者或守卫应该被允许看到什么,当它看到太多时会发生什么?
这里两个失败共享一个原因。一个与作者共享上下文的审查者继承作者的推理,以及作者对它的偏好。一个读取不可信文档的节点,与写文档的人共享上下文。两者的结构性答案都是一个看得更少的节点。
关于审查的三个基础结果。
- Huang 等人(arXiv 2310.01798):被要求在没有外部信号的情况下自我纠正的模型没有提高,而且常常变差。
- 自我偏好(arXiv 2404.13076):模型给自己的输出评分高于其他人同样好的输出,并且能认出自己的文本。
- Reflexion(arXiv 2303.11366):有测试结果等外部信号时,反思并重试的循环把 HumanEval 从 80% 提升到 91%。
2026 年的结果把上下文独立性与判断独立性分开。
- 同模型的跨上下文审查(arXiv 2603.12123):一个处于全新上下文的审查者发现的问题略多,F1 为 28.6 对 27.1。
- 跨模型审查(arXiv 2607.21656,116 个任务):两个不同模型互相审查的通过率为 56.7%,而自我审查为 42.7%;较弱的写者在较强审查者下从 71.6% 上升到 89.7%,而较强的写者在较弱审查者下从 91.4% 下降到 82.8%。
- CriticGPT(arXiv 2407.00215,供应商论文):一个评论者模型在 63% 的情况下比人类审查者抓到更多插入的 bug。
- GAUGE(arXiv 2609.12191):一个与写者同模型家族的评判者,为写者增加了约 0.75 个点的偏向。
- AIRA2(arXiv 2603.26499):对工作智能体隐藏评估,把真正改进的结果比例从约 56% 提升到约 76%。
全新上下文给了约一点五个点;不同模型给了十四点;较弱的审查者降低了较强的写者。Sonnet 5 系统卡描述了边界放错位置时的失败:模型创建子智能体来批准自己的工作。一个作者可以生成并指示的审查者不是独立的,无论它的上下文如何。
四种审查的结构性答案。
盲验证者。 审查者看到工件、任务,以及一个产生作者没有写出的信号的工具(测试、类型检查器、复现),而永远不看记录。Cloudflare 的内部审查以这种方式运行了 48,095 个合并请求,中位数 3 分 39 秒,约 $0.98,每次审查约 1.2 个发现,缓存命中率 85.7%。便宜、分离、频繁。
检查席位上的不同家族。 第 4 层的共失败上限适用于审查:同一模型在全新上下文中保留同样的盲点。
隐藏评分者。 工作节点不得看到评分者的标准、数据或存在,否则它会为它们优化。
作者不能选择审查者。 审查由框架分配,不由写者生成。
守卫节点是同一形状应用于不可信输入。一个单独的调用,固定任务,不能访问对话的目标,读取文档或计划动作并决定是否阻止;一个共享智能体上下文的守卫可以被同样的注入文本说服。
- LlamaFirewall(arXiv 2505.03574):在 AgentDojo 上,两个扫描器都启用时攻击成功率从 17.6% 下降到 1.75%,任务效用从 47.7% 下降到 42.7%。
- CaMeL(arXiv 2503.18813):把有特权的规划者与读取不可信数据的模型分开,在 949 个任务中阻止了 163 次攻击中的 163 次,token 为 2.82 倍,效用从 86.6% 下降到 74.2%。
- 在模型外部执行的行为契约(arXiv 2602.22302,7 个模型,1,980 个会话):硬合规 88% 到 100%,开销低于 10 毫秒。
- Anthropic 为其编码智能体提供的沙箱(供应商):权限提示下降约 84%,但通过已批准渠道进行的钓鱼测试在 25 次尝试中成功了 24 次。
- Azure 公布的经验(供应商):早期护栏配置阻止了 40% 到 60% 的合法请求。
每个守卫都以效用为代价,同时也阻止攻击,所以位置就是设计。节点之间简报上的守卫只看到一个短任务,很便宜。每次工具调用上的守卫彻底但慢。在模型外用代码执行的契约几乎不花钱,但只能抓住可以写成规则的东西。而允许一个渠道的沙箱就允许通过它外泄。
这一层的最后一个问题是事后找出哪个节点失败了。
- MAST(arXiv 2503.13657,1,642 条轨迹,7 个框架,14 种失败模式):约 40% 规格和设计失败,约 35% 智能体间错位,约 20% 验证失败;不同论文版本的份额略有不同。
- Who&When(arXiv 2505.00212):模型在 53.5% 的情况下识别出负责的智能体,在 14.2% 的情况下识别出负责的步骤。
- MP-Bench(arXiv 2603.25001,n = 289):接受多个标注者观点时,模型大幅击败随机,所以归因部分是主观的,Who&When 的数字有些悲观。
- AgentFail(arXiv 2509.23735,n = 307 个生产失败):超过一半的根因位于模型节点,一小部分位于代码或模板节点。
从合并记录归因,对智能体来说接近抛硬币,对步骤来说差得多。一个有多个节点的系统需要自己的日志,记录每个节点看到和返回了什么,因为模型事后无法重建它,而 AgentFail 的拆分说明模型节点是首先要看的地方。
对我们意味着什么: 上下文独立性便宜,价值约一个点;判断独立性需要不同模型,价值约十四点;作者可以生成的审查者一文不值。守卫和契约无论放在哪里都会消耗效用,所以把它们放在承载风险的最短载荷上。
带走:
- 审查者看到工件、任务和外部信号,永远不看记录,并且由框架分配。
- 不同模型家族打破共享盲点;较弱的审查者可能降低较强的写者。
- 记录每个节点看到和返回了什么,因为从合并轨迹归因步骤的运行准确率为 14%。
第 7 层:时钟与账单
这一层回答:当一个节点必须在三分之一秒内回答,或成本只有十分之一时,哪些工作移动到另一个节点?
延迟和成本迫使拆分,而准确率本身不会。问题是工作的哪一部分能容忍更慢或更便宜的节点。
语音是最清晰的案例,因为截止时间是物理性的。
- 人类轮次间隔:200 到 300 毫秒;超过 500 毫秒系统感觉慢。
- NVIDIA 的全双工语音前后端架构(arXiv 2609.19334):语音模型在约 320 毫秒时发出控制 token,在后台文本智能体运行工具时填充约 1 秒的语音;工具调用召回率 92% 到 97%,语音函数调用准确率 74.6%,而自己调用工具的语音模型为 80.8%,约五分之一的工具触发是误报。
- 单个语音模型做工具调用(arXiv 2609.21967):工具选择 F1 82.5,参数准确率 42.2,首次尝试通过率 33.0。
- tau-Voice(第三方基准):全双工语音模型得分 31% 到 51%,而 GPT-5 文本智能体在相同任务上为 85%。
参数准确率是决定拆分的数字。一个语音模型如果五次中四次选对工具,但填充参数正确的次数不到一半,它就不能是执行动作的节点。所以快节点保留口语对话和最多一小把工具(Nemotron 的指南说五个),慢文本节点写参数并运行任务。慢节点的失败永远不会进入语音上下文。
成本拆分有同样的形状,只是快节点的位置换成了规划者。
- ReWOO(arXiv 2305.18323):在运行任何工具之前规划所有工具调用,token 效率提高约五倍,HotpotQA 上提升四个点。
- LLMCompiler(arXiv 2312.04511):通过预先规划并行调用,延迟降低多达 3.7 倍,成本降低 6.7 倍。
- RouteLLM(arXiv 2406.18665):把简单查询路由到小模型,在 MT-Bench 上以大模型 95% 的得分节省 3.66 倍成本,视任务节省 29% 到 73%。
- Prewalk(SWE-Bench Pro 上的第三方测量):在第一次成功编辑后从前沿模型换到廉价模型,以低 39% 到 53% 的成本恢复了前沿通过率的 92% 到 97%;在一对中,单个大模型智能体以 85% 和 $2.78 仍然击败了先规划后执行的拆分,后者为 84.6% 和 $3.18,其中 91% 的 token 花在阅读上。
Prewalk 的那一对是警告。当执行者比规划者便宜且计划不需要改变时,规划者-执行者拆分才划算;当执行者与规划者一样强,或者大部分 token 用于阅读而不是行动时,拆分只增加了一次交接,没有别的。第 4 层的框架效应结果从模型侧说了同样的事:委托只帮助了最强的模型。
另外四个控制在不改变谁做工作的情况下塑造成本。
缓存感知前缀。 Manus 报告输入 token 数量约为输出的 100 比 1,缓存的输入 token 成本约为未缓存的十分之一(供应商数字),这使得稳定的提示前缀成为最重要的生产指标。全新上下文和并行突发可能错过主会话正在使用的缓存;Claude Code 的智能体团队在计划模式下使用的 token 约为单会话的 7 倍。
睡眠时间计算。 在系统空闲时预处理上下文(arXiv 2504.13171,供应商论文),在同等准确率下把测试时计算削减约 5 倍,并在固定测试时预算下把两个任务的准确率分别提高 13 和 18 个点。慢工作移动到一个在无人等待时运行的节点。
从日志恢复。 Anthropic 的托管智能体运行时从事件日志唤醒会话,而不是重读其历史,报告首 token 时间中位数改善 60%,尾部改善 90%(供应商声称)。
按节点预算。 OpenAI Agents SDK 默认十轮停止,smolagents 二十步,Strands swarms 二十次交接和总计 900 秒,Anthropic 的托管智能体有成本上限和二十五个子线程。预算是上下文策略:它固定了一个节点在系统强制边界之前可以积累多少历史。
带走:
- 按截止时间拆分:时钟下的节点保留对话和一小把工具;执行动作的节点得到完整工具集,没有记录。
- 规划者-执行者拆分只在执行者更便宜且计划稳定时划算;否则是一次没有收益的交接。
- 缓存命中率和按节点预算是两个不改变谁做工作的成本控制。
第 8 层:跨会话什么都没学到
这一层回答:当工作跨越数天时,哪个节点写记忆,它应该被允许写什么,它是否胜过保留记录?
一个在会话结束时忘记一切的系统,下次会重复它的错误。结构性答案是一个策展者:一个读取记录并写入记忆的节点,与服务于人的节点分开,这样工作节点不决定记住什么。对此的主张很强,而受控结果好坏参半。
- Mem0(arXiv 2504.19413,供应商论文):在 LOCOMO 上,记忆服务得分为 66.88,而上下文中的完整对话为 72.90,p95 延迟为 1.44 秒对 17.12 秒,token 少 90% 以上。
- 智能体上下文工程(arXiv 2510.04618):一个编辑不断增长的操作手册而不是重写它的策展者,在智能体任务上获得 10.6%,在金融任务上获得 8.6%,适应成本低 83.6%。
- 即时记忆(arXiv 2609.27334):一个训练过的策展者为冻结的执行者写任务载荷,把 Qwen3-8B 在 ALFWorld 上从 61.2% 提升到 77.4%,在 WebShop 上从 16.5% 提升到 32.8%,增加约 1,900 个输入 token,而写时基线为 10,700 和 13,400。
Mem0 那一行说,记忆服务在供应商自己的表中比完整上下文低六分,但在延迟和成本上获胜。JITMEM 那一行展示了该模式的最佳版本:策展者为执行者写一份简报,这使记忆成为又一次带 schema 的交接。
Continual Learning Bench(arXiv 2606.05661)是唯一为测试记忆系统是否帮助智能体跨任务改进而构建的基准,它把它们排在普通历史之下。
- 上下文中带 Sonnet 4.6 的完整历史:22.3,$30.4;GPT-5.4 的 Mem0:15.1;GPT-5.4 的 ACE:4.6,$62.8;Sonnet 4.6 的记事本记忆:3.5。
这些行使用不同的执行者模型,所以图表是论文的排名,不是受控配对。论文自己的结论无论如何都成立:朴素的上下文学习击败了专用记忆系统。两项失败研究解释了部分原因。
- 记忆提取(arXiv 2602.19320):18% 到 30% 的记忆写入静默失败,什么也没存或存了错误的事实。
- 被毒化的记忆(arXiv 2604.27707)和 Agents of Chaos 案例研究(arXiv 2602.20021):一个植入的记忆文档在共享存储的智能体之间传播。
策展者是一个写入每个未来上下文的节点。毒化它是最持久的第 1 层失败形式,而提取率意味着它写的东西可能有五分之一已经是错的。三种结构性答案随之而来。
把记忆写入作为受审查的工件。 一个单独的策展者节点,一个规定可以写什么的 schema,以及一个记录写了什么和为什么的日志,这样坏条目可以被找到并删除。
推导追踪。 第 2 层的 Planfence 结果适用于记忆:一个从已经改变的输入推导出来的条目应该被重建,而不是因为它新就信任它。
先与记录对比测量。 在唯一为此构建的基准上,普通历史获胜。为延迟和花费买策展者,在损失被测量之前保留完整历史,并把任何声称的记忆准确率收益当作声称。
对我们意味着什么: 记忆策展者比任何其他节点都更需要审查者和 schema,因为它的错误会在每个未来会话中复合。已发表的胜利在速度和成本上;在准确率上,记录仍然领先。
带走:
- 在受控结果中,记忆服务在延迟和 token 上获胜,在准确率上失败。
- 把每次记忆写入当作一次交接:schema、审查、推导,以及一种删除方式。
- 保留记录,直到替换它的损失在你控制的任务上被测量出来。
模式一览
上面出现了十九种模式。每一种都是关于一个节点看到什么的决定,每一种都列出了它解决的故障及其可测量代价。
每次尝试用全新上下文。 修复:失败的步骤引导后续步骤。保留:一份书面简报。丢弃:早期尝试的每条轨迹。代价:工人无法反问;重新收集上下文。证据:全新对话恢复了 39% 损失的大部分;摘要恢复了 15% 到 20%。
重启循环。 修复:长任务中的中毒和分心。保留:文件和测试结果。丢弃:每次迭代的整个记录。代价:没有基准,只有轶事。
检查点与回退。 修复:任务中途的错误转向。保留:转向之前的状态。丢弃:转向。代价:取决于工具恢复对话还是只恢复文件。
按步骤持久重试。 修复:崩溃和瞬态故障。保留:步骤日志。丢弃:失败的尝试。代价:作为字符串返回的错误被重放为结果。
类型化状态和任务包。 修复:有损交接。保留:定义的字段加上可重读文件。丢弃:记录。代价:没有字段的事实丢失。证据:仅文件就从 73.0 到 75.6 和 44.4 到 58.3。
结构化接力与要点摘要。 修复:每一跳的损失。保留:一个分布或一个 100 token 的已验证要点摘要。丢弃:散文结论。代价:每一跳一个 schema。证据:五跳时 75.2% 对 22.5%;$0.125 对 $0.399。
按输入重建。 修复:过时计划和过时记忆。保留:推导记录。丢弃:年龄作为新鲜度信号。代价:多约 15% token。证据:0 个过时计划通过,对 30 个中的 30 个。
每个边界设门控。 修复:错误传播。保留:每次交接一个检查。丢弃:未通过检查的输出。代价:每个门控一次调用。证据:存活错误从 58.4% 到 16.2%。
渐进披露与扁平索引。 修复:混淆和遮蔽。保留:一行描述。丢弃:正文直到被选择。代价:一次额外调用;在约十个工具以下不值得。证据:嵌套大约使成功率减半。
分诊路由器和按节点目录。 修复:混淆。保留:一个主题的工具。丢弃:所有其他。代价:路由错误在轮次内不可恢复;没有公布的路由准确率。
交互前先独立。 修复:多样性崩溃和从众。保留:分开的提案。丢弃:提案期间的同伴输出。代价:没有辩论收益。证据:交互下多样性从 1.03 到 0.47。
带完整规格的中央审查。 修复:错误放大和规格差距。保留:一切,在一个节点中。丢弃:合并者什么都不丢。代价:合并者的上下文。证据:4.4 倍对 17.2 倍放大;58.2% 到 88.9%。
每个角色用不同模型家族。 修复:共失败和自我偏好。保留:第二组盲点。丢弃:共享的。代价:第二个供应商。证据:审查通过率 56.7% 对 42.7%。
固定顺序、自由角色、单一写者。 修复:协商开销和文件冲突。保留:轮次顺序和一个写者。丢弃:自协调。代价:僵化。证据:比协调者好 14%;worktrees 下 63.3% 对 55.5%。
带努力规则的编排者-工人。 修复:超出窗口的输入。保留:主负责人中的计划。丢弃:工人的主负责人对话。代价:4 到 15 倍 token;在 45% 基线以上没有收益。
代码执行和递归读取。 修复:上下文中的批量数据。保留:代码选择的东西。丢弃:原始工具输出。代价:一个沙箱;阻塞调用阻止缓存。证据:token 少三分之一,提升几个点。
廉价无状态读者。 修复:昂贵的批量阅读。保留:一个摘要。丢弃:材料。代价:每次调用 10 到 30 秒;漏掉一个微妙 bug。证据:阅读时主模型 token 少约 90%。
盲验证者、隐藏评分者、守卫节点。 修复:有依赖的审查和注入文本。保留:工件、任务、外部信号。丢弃:作者的轨迹、评分者的标准、对话的目标。代价:效用,守卫五到十二个点。证据:规模下每次审查 $0.98 和 1.2 个发现。
带 schema 和审查的记忆策展者。 修复:跨会话什么都没学到。保留:受审查的条目。丢弃:会话之间的记录。代价:与今天的完整历史相比的准确率;18% 到 30% 的静默写入失败。
决策指南
一个失败的步骤持续偏置后续步骤。 使用:每次尝试用带书面简报的全新上下文,或当目标可检查时用重启循环。然后检查:失败是被抛出还是作为字符串返回,接收节点是否把轨迹粘贴回来。
接收方持续错过发送方拥有的事实。 使用:带备注字段的类型化状态、磁盘上的任务包,以及一个“需要更多”的返回。然后检查:在真实任务样本上的交接召回率,因为已发表的比率是 0.32。
来自多个工人的结果无法拼合。 使用:一个拥有完整规格的合并者、预先分配的工作、一个写者、worktrees。然后检查:规格差距那一对,没有完整规格时 58.2%,有它时 88.9%。
模型选错工具或技能。 使用:先数工具;约十个以下全部展示;以上用扁平的一行索引并按需加载正文,或用一个路由器。然后检查:每个模型的选择准确率,因为阈值随模型大小移动。
多个智能体一致且错误。 使用:讨论前的提案、检查席位上的不同家族、中央审查。然后检查:你的任务集上的共失败,因为那个比率限制每一次投票。
团队成本更高且没有更好。 使用:同等预算比较。然后检查:单智能体在团队总 token 下是否匹配它;如果是,保留简报,放弃团队。
材料装不进窗口。 使用:带努力规则的编排者-工人、代码执行,或一个廉价读者。然后检查:你的单智能体基线,因为拆分在约 45% 以下有帮助,以上没有。
审查只发现作者已经想到的东西。 使用:一个拥有工件和外部信号的验证者,在不同家族中,由框架分配。然后检查:审查者是否比写者弱。
节点必须在三分之一秒内回答,或成本只有十分之一。 使用:一个快节点持有对话和一小把工具;一个慢节点写参数;只有当执行者更便宜且计划稳定时才用规划者。然后检查:参数准确率和触发的误报率。
系统应该跨会话学习。 使用:一个带 schema、审查和推导追踪的策展者;先与完整历史对比测量。然后检查:静默写入失败,在唯一测量它们的研究中为 18% 到 30%。
要点
- 智能体架构是决定每个节点看到、做什么和返回什么;智能体数量是结果,不是目标。
- 任务重启后,早期错误的一步是偏置,不是证据;把错误留在一次尝试内部,跨尝试时丢弃它们。
- 任何把错误字符串记录为结果的重试或恢复机制,都会把毒药重放进每一次后续尝试。
- 载荷格式决定了大部分交接损失:散文经过五跳保留了四分之一得分,结构化接力保留四分之三,可重读文件增加了多达十四个点。
- 合并的节点需要完整规格;工人不需要,而要求它们报告冲突没有增加任何东西。
- 给每个交接设门控;在四阶段流水线中,每个边界一个检查把存活错误从 58.4% 削减到 16.2%。
- 在添加结构之前数工具;小模型从约十五个工具开始损失准确率,搜索在十个以下花费多于节省,嵌套索引使成功率减半。
- 同一个模型的拷贝共享盲点,谈得越多越趋同;在讨论前收集提案,并把不同家族放在检查席位。
- 预先分配拆分并保持一个写者;自协调团队运行更慢,测试失败多 4.75 倍。
- 在发布团队之前运行同等预算比较;在同等思考 token 下,单智能体获胜,除非上下文被破坏。
- 为容量拆分阅读,不是为准确率;在 45% 基线以上,受控研究没有发现收益,而廉价读者会漏掉微妙 bug。
- 给审查者一个全新上下文价值约一个点;不同模型家族约十四点;作者可以生成的审查者一文不值。
- 守卫、契约和沙箱无论放在哪里都消耗效用;把它们放在承载风险的最短载荷上,并记住已批准的渠道仍然是渠道。
- 记忆服务在延迟和 token 上获胜,在准确率上输给普通历史;把每次记忆写入当作一次带有推导的受审查交接。
- 记录每个节点看到和返回了什么,因为模型从合并轨迹归因失败步骤的准确率为 14%。
参考文献
- Laban et al., LLMs Get Lost In Multi-Turn Conversation, arXiv 2505.06120.
- Sinha et al., The Illusion of Diminishing Returns (self-conditioning), arXiv 2509.09677.
- Memory Curse, arXiv 2605.08060.
- Liu et al., Lost in the Middle, arXiv 2307.03172; Modarressi et al., NoLiMa, arXiv 2502.05167.
- Chroma, Context Rot, https://research.trychroma.com/context-rot
- Breunig, How Long Contexts Fail, https://www.dbreunig.com/2025/06/22/how-contexts-fail-and-how-to-fix-them.html
- Manus, Context Engineering for AI Agents, https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus
- Claude Code documentation on subagents, agent teams and checkpoints, https://docs.anthropic.com/en/docs/claude-code ; Cursor checkpoints, https://cursor.com/docs/agent/chat/checkpoints
- Temporal, Restate, Inngest and DBOS documentation; Anthropic Managed Agents documentation.
- Natural-Language Agent Harnesses, arXiv 2603.25723.
- The Specification Gap, arXiv 2603.24284.
- Ao, Gao, Simchi-Levi, On the Reliability Limits of LLM-Based Multi-Agent Planning, arXiv 2603.26993 (relay figures from v1).
- Cognition, Don't Build Multi-Agents, https://cognition.ai/blog/dont-build-multi-agents and the 2026 follow-up on the same blog.
- POLARIS, arXiv 2601.11816; LangGraph graph API, https://docs.langchain.com/oss/python/langgraph/graph-api
- DELM, Decentralized Multi-Agent Shared Context, arXiv 2606.10662.
- Planfence, Fresh Memory, Stale Plans, arXiv 2609.03340.
- Recursive Multi-Agent Systems (latent hand-off), arXiv 2604.25917.
- The Hallucination Snowball, arXiv 2608.14588.
- OpenAI Agents SDK, https://openai.github.io/openai-agents-python/ ; Google ADK, https://google.github.io/adk-docs/ ; Strands Agents, https://strandsagents.com/ ; CrewAI, https://docs.crewai.com/
- RAG-MCP, arXiv 2505.03275; MCP Server Architecture Patterns (tool-count telemetry), arXiv 2606.30317.
- Anthropic, Advanced tool use (tool search), https://www.anthropic.com/engineering/advanced-tool-use ; Tool Attention Is All You Need (lazy loading), arXiv 2604.21816.
- More Skills, Worse Agents? (shadowing), arXiv 2605.24050; Lost in Implicit Routing, arXiv 2610.18522; SkillsBench, arXiv 2602.12670; Not All Skills Help, arXiv 2606.15390; SkillRouter, arXiv 2603.22455; Is Progressive Disclosure All You Need for Long-Context Agents?, arXiv 2607.17598.
- LOCA-bench, arXiv 2602.07962.
- Co-Failure Ceiling, arXiv 2606.27288; Diversity Collapse, arXiv 2604.18005; Bystander Effect, arXiv 2605.10698.
- Towards a Science of Scaling Agent Systems, arXiv 2512.08296.
- Tran and Kiela, Single-Agent LLMs Outperform Multi-Agent Systems Under Equal Thinking Token Budgets, arXiv 2604.02460.
- Teams as Distributed Systems, arXiv 2603.12229; Scaling Behavior of Single LLM-Driven Multi-Agent Systems, arXiv 2606.00655; The Harness Effect, arXiv 2607.06906.
- Drop the Hierarchy and Roles, arXiv 2603.28990; Agent-as-a-Router, arXiv 2606.22902.
- Effective Strategies for Asynchronous Software Engineering Agents (CAID), arXiv 2603.21489.
- Anthropic, How we built our multi-agent research system, https://www.anthropic.com/engineering/built-multi-agent-research-system
- Chain of Agents, arXiv 2406.02818; Recursive Language Models, arXiv 2512.24601.
- Anthropic, Code execution with MCP, https://www.anthropic.com/engineering/code-execution-with-mcp
- Coding Agents are Effective Long-Context Processors, arXiv 2603.20432; harness-dependent retrieval, arXiv 2605.15184.
- Spotify Engineering, Portal cut my Claude Code token usage by 90%, https://engineering.atspotify.com/2026/9/portal-by-spotify-cut-my-claude-code-token-usage-by-90
- Agora: Git as Shared Memory for Collective AutoResearch, arXiv 2609.18094.
- Huang et al., Large Language Models Cannot Self-Correct Reasoning Yet, arXiv 2310.01798; Panickssery et al., LLM Evaluators Recognize and Favor Their Own Generations, arXiv 2404.13076; Reflexion, arXiv 2303.11366.
- Cross-Context Review, arXiv 2603.12123; Cross-Model LLM Code Review, arXiv 2607.21656; McAleese et al., CriticGPT, arXiv 2407.00215; GAUGE, arXiv 2609.12191; AIRA2, arXiv 2603.26499.
- Cloudflare, AI code review at scale, https://blog.cloudflare.com/ ; Anthropic, Claude Sonnet 5 system card, https://www.anthropic.com/
- LlamaFirewall, arXiv 2505.03574; Debenedetti et al., CaMeL, arXiv 2503.18813; Agent Behavioral Contracts, arXiv 2602.22302.
- Why Do Multi-Agent LLM Systems Fail? (MAST), arXiv 2503.13657; Who&When, arXiv 2505.00212; MP-Bench, arXiv 2603.25001; AgentFail, arXiv 2509.23735.
- NVIDIA, frontend-backend architecture for tool calls in full-duplex speech models, arXiv 2609.19334; single speech model tool calling, arXiv 2609.21967.
- ReWOO, arXiv 2305.18323; LLMCompiler, arXiv 2312.04511; RouteLLM, arXiv 2406.18665; Stencil, Prewalk, https://stencil.so/blog/prewalk
- Sleep-time Compute, arXiv 2504.13171.
- Mem0, arXiv 2504.19413; Agentic Context Engineering, arXiv 2510.04618; Just-in-Time Memory, arXiv 2609.27334.
- Asawa et al., Continual Learning Bench, arXiv 2606.05661.
- Memory extraction failures, arXiv 2602.19320; poisoned memory, arXiv 2604.27707; Agents of Chaos, arXiv 2602.20021.