/compact 丢掉的上下文,可以学个残差补回来
用长程 Agent 干活的人对这个画面不陌生:上下文越滚越满,然后敲一个 /compact——Claude Code 和 Codex CLI 都有这个命令——把前面的交互压成一段文字摘要,窗口腾空,工作继续。输入长度于是呈锯齿形:涨、砍、再涨。
/compact 丢掉的上下文,可以学个残差补回来
用长程 Agent 干活的人对这个画面不陌生:上下文越滚越满,然后敲一个 /compact——Claude Code 和 Codex CLI 都有这个命令——把前面的交互压成一段文字摘要,窗口腾空,工作继续。输入长度于是呈锯齿形:涨、砍、再涨。
锯齿的代价藏在里面。摘要是文字 checkpoint,Agent 从它上面恢复工作。但摘要保的是大意,大意不等于全部:随着任务展开,之前某段对话的相关性会变——你压缩的时候不知道后面要用什么,所以没办法提前把「重要的」都留下。纯文本摘要能不能撑住之后的每个决策,是个碰运气的事。
10 月 8 日上 arXiv 的一篇论文(REMEMORY,2610.11287)给这个问题找了个新解法,思路说穿了很干净:摘要丢了信息,那就把「丢掉的那部分」学出来。
序列维度的残差连接
REMEMORY 是一个单独训练的记忆网络。给它原始历史和对应的摘要,它输出一串数量有界的软记忆 token(soft memory tokens),追加在摘要后面。训练目标定得很直接:让冻结的大模型拿「摘要加软 token」继续写出来的东西,尽量逼近它拿完整历史会写出来的东西。
也就是说,软 token 学的不是历史本身,而是「摘要和历史之间的差」。作者给它起的名字也因此很准确——残差记忆:摘要沿着序列往后传,软 token 在旁边补上那部分本会丢失的修正量。深度学习里的残差连接让网络学「增量」,这里是同一个思想,只是作用在上下文这个维度上。
大模型全程冻结。动的是外围那个记忆网络——这也是这类方案能跟着任意新模型走的原因。
5.2% 的位置,接近满上下文的分
评测设计里有个值得注意的对照。除了原始上下文、纯摘要、摘要加软 token,他们还加了一组「摘要加同长度纯文本」——软 token 占多少位置,就往摘要后面塞多少普通文字。这组对照专门回答一个问题:提升是学出来的,还是仅仅因为位置变多了?
答案是学出来的。在 SummHay 这个摘要归因基准上,原始上下文平均占 96,872 个位置,纯摘要 1,393,摘要加软 token 5,024——只有原始的 5.2%。这 5.2% 把联合得分拉回到接近满上下文的水平:引用 F1 涨 4.04 分,联合分涨 3.55,洞察覆盖率几乎不动(0.40);配对 bootstrap 的 95% 区间是 [0.74, 6.21]。而同样位置预算的那组纯文本,表现跟纯摘要几乎一样。位置不解决问题,学出来的差量才解决。
Agent 的体感:不再重复自己
端到端的长程 Agent 任务上,两个模型带着残差记忆跑:Qwen3.8-27B 在 AutomationBench 涨 9.8 分、JobBench 涨 7.6;Terminal-Bench 涨 4.5、BrowseComp 涨 3.0。GLM-5.3-Flash(320B 参数)对应涨 3.3 和 4.1,被推向接近前沿模型的水平。两组都是五次运行的均值。
比分数更有体感的是行为变化:带残差记忆的 Agent,在 BrowseComp 和 Terminal-Bench 上重复输出同样工具结果、重复犯同样工具错误的次数显著下降。这其实就是上下文丢失最典型的病征——摘要里没记住「已经查过这个、结果是这个」,Agent 就再查一遍、再错一遍。补回残差之后,这类的无效循环变少了,任务的平均 API 开销也随之下降(论文按 2026 年 9 月的未缓存价折算,软 token 位置计入输入;记忆网络自身的执行开销没算进去,账要这么读)。
论文还做了个细节分析:取 100 条真实 BrowseComp 轨迹上压缩后的 488 对「下一个动作」,用裁判模型配对评分。压缩后第一动作的质量,正是锯齿谷底最脆弱的时刻——这里恰恰是残差记忆帮上忙的地方。
归属与谱系
署名上说清楚:论文由上海科学智能研究院与复旦主导(两位共同第一作者和通讯作者的邮箱都在 SAIS),上海交大、密歇根、港中文、南大参与,阿里是第六作者的单位——视频标题里说「阿里提出」,按署名是合作单位之一。
放到更大的图景里看:上下文压缩本身就是一次有损接口——原始轨迹被摘要替换,结构丢在压缩这一步。此前这个家族的解法多是「少丢」(更好的摘要、保真的存储),REMEMORY 的路线不一样:承认会丢,然后把丢掉的差量当成一个可学习的目标。它与「把历史 KV 存进内存池」的方案是互补的两件事——一个保真存着不动,一个压狠了再补。而它最妙的隐喻其实是那个词本身:残差。网络里的残差连接让深层学增量,这里的残差记忆让 Agent 学「我忘了什么」。