一个熟悉的场景
你让一个 Agent 去完成一个多步骤任务:在网页上找信息、交叉验证、计算、汇总。
前 10 步它做得很好。到第 15 步,它开始重复搜索同一个关键词。第 20 步,它忘了之前已经验证过的事实,重新验证一遍。第 30 步,它陷入循环——把之前的错误推理当成事实,基于错误继续推理。
这不是模型不够聪明。这是认知过载。
人类遇到这种情况会怎么做?你会拿张纸,把已经确认的事实记下来,然后把脑子里乱七八糟的中间过程清掉,从干净状态继续。
CORAL(COgnitive Resource Self-ALlocation)就是给 Agent 这张纸。
论文来自香港中文大学和腾讯的研究团队,发表于 2026 年 10 月 29 日。
问题:Agent 的"工作记忆"会塞满
LLM Agent 的工作方式通常是这样的:每一步,它都会看到之前所有步骤的完整记录——搜索了什么、点击了什么、推理了什么。这就是它的"工作记忆"。
短任务没问题。但任务一长(30 步、50 步、100 步),工作记忆里堆满了:
- 已经搜索过的页面内容(大部分已经没用了)
- 中间推理步骤(很多是试错的死胡同)
- 工具调用的返回结果(冗长且重复)
- 早期错误推理留下的"污染"
这就像你的桌子上堆了 50 张纸,你需要的信息在第 3 张和第 47 张,但你每次都要翻一遍所有纸才能找到。更糟的是,第 23 张纸上有个错误计算,你每次翻过去都会被它干扰。
认知过载的直接后果:
- 注意力被稀释——重要信息和噪音混在一起
- 错误累积——早期的错误推理被后续步骤当作事实
- 循环——Agent 忘了自己做过什么,重复同样的操作
- 成本爆炸——每一步都要处理越来越长的上下文,token 消耗线性增长
CORAL 的解法:检查点 + 重置
CORAL 的核心思路异常简单:让 Agent 自己决定什么时候"清桌子"。
具体来说,CORAL 给 Agent 提供了一个"工作记忆管理工具集":
1. Checkpoint(检查点)
Agent 可以主动把"已验证的事实"和"当前任务进度"保存下来。这就像你写纸条:"已经确认了 X、Y、Z,下一步要做 W。"
2. Context Reset(上下文重置)
Agent 可以主动清空当前的工作记忆,只保留检查点里保存的内容。这就像你把桌上的纸全扫到地上,只留下那张写有关键信息的纸条。
3. Resume(恢复)
清空后,Agent 从检查点保存的状态继续推理,带着干净的工作记忆开始新的"episode"。
关键在于:Agent 自己决定什么时候 checkpoint、什么时候 reset。 这不是外部强加的规则,而是 Agent 通过训练学会的元认知能力。
多回合 Agentic RL:教 Agent 学会"清桌子"
光给工具不够,Agent 还得学会用。研究者用了Multi-episode Agentic Reinforced Policy Optimization来训练 Agent 的检查点能力。
训练方式:
- 把长任务拆成多个 episode
- Agent 在每个 episode 结束时可以 checkpoint
- 下一个 episode 从 checkpoint 恢复,但工作记忆是干净的
- RL 奖励基于最终任务完成度,但 Agent 需要学会"什么时候 checkpoint 最有价值"
这和人类的工作方式很像:你在写代码时,会在完成一个功能后 commit 一次。不是因为有人告诉你"现在 commit",而是因为你学会了"在这个节点 commit 最安全"。
实验结果:8B 模型打败大模型
在 GAIA 基准测试上(一个多步骤 Agent 任务的标准评测):
CORAL + 8B 模型:42.8% 平均准确率
这个数字本身可能不惊艳,但对比一下:
- 在最难的 Level 2 和 Level 3 任务上,CORAL 的提升最大
- CORAL 消耗的 input token 是 ReAct Agent 的 1/6 到 1/7
6-7 倍的 token 效率提升。这不是"稍微好一点",是"同样的任务,用 1/7 的成本完成"。
更值得注意的是:一个 8B 的小模型,配上 CORAL,在长任务上能超过没有 CORAL 的更大模型。瓶颈不是模型容量,是上下文管理。
消融实验:每个组件都有用
研究者做了详细的消融:
去掉 checkpoint:Agent 无法保存进度,每次 reset 都从零开始。长任务准确率大幅下降。
去掉 reset:Agent 只能 checkpoint,不能清空上下文。这就像你只能往桌子上加纸,不能扫掉。认知过载问题依然存在。
去掉 RL 训练:只给工具不训练。Agent 不知道什么时候该 checkpoint、什么时候该 reset。效果介于两者之间。
三个组件缺一不可:工具(checkpoint + reset)+ 策略(RL 训练的检查点时机判断)= CORAL 的完整配方。
泛化能力:不只适用于 GAIA
CORAL 不只在 GAIA 上有效。研究者还测试了:
- 多跳知识问答:需要跨多个文档推理的任务。CORAL 的检查点机制帮助 Agent 记住"已经找到了哪些事实"。
- BrowseComp:需要浏览大量网页的任务。CORAL 的 reset 机制帮助 Agent 摆脱"浏览历史"的干扰。
这说明 CORAL 解决的不是一个特定 benchmark 的问题,而是长任务 Agent 的通用认知过载问题。
一个具体的例子
论文附录里有一个很好的案例研究:
任务:一个需要 36 步的 BrowseComp 问题。
- CORAL Agent:36 步完成,中间做了 7 次检查点。每次检查点后 reset 上下文,从干净状态继续。最终正确回答。
- ReAct Agent:47 步后放弃。做了 42 次搜索(大量重复搜索),上下文越来越长,最终在噪音中迷失。
关键区别:CORAL Agent 在第 10 步左右做了一次检查点,保存了"已经找到的关键事实",然后 reset。这让它在第 11 步开始时,工作记忆里只有 3 条关键事实,而不是前 10 步积累的 5000 token 噪音。
我的看法:从"更长上下文"到"更好上下文管理"
CORAL 代表了一个重要的范式转变:解决长任务问题,不是给模型更长的上下文窗口,而是教模型管理自己的上下文。
这和人类认知科学的研究一致。人类的工作记忆容量很小(大约 7±2 个组块),但人类能完成极其复杂的长任务。靠的不是更大的工作记忆,而是:
- 外部化记忆(笔记、文件、检查点)
- 主动清理(做完一步就"忘掉"中间过程)
- 分集处理(把长任务拆成多个短 episode)
CORAL 把这三个策略都给了 Agent。而且关键是——它让 Agent 自己决定什么时候用。
这和"判断-闸门解耦"的思路一脉相承:不是给模型更多能力,而是给模型"管理自己能力的能力"。 检查点是判断(什么值得保存),reset 是闸门(什么该被清掉),Agent 学会两者配合才能在长任务中保持清醒。
一个更实际的启示:如果你的 Agent 在长任务中表现下降,先别换更大的模型。试试让它学会"清桌子"。 瓶颈可能不是模型容量,是上下文里塞了太多该清掉的东西。
讨论回复
加载中...正在加载回复...
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。