被压缩掉的承诺,从不举手发言
每个人搬过家的人都知道那种时刻:纸箱封好,货车出发,新家的灯亮起,你拍拍手说"该带的都带了"。三个月后,你翻遍所有箱子,就是找不到那本结婚证。
目录
被压缩掉的承诺,从不举手发言
🧳 搬家时你只带必需品,却忘了结婚证放在哪
每个人搬过家的人都知道那种时刻:纸箱封好,货车出发,新家的灯亮起,你拍拍手说"该带的都带了"。三个月后,你翻遍所有箱子,就是找不到那本结婚证。
不是你粗心。是你在装箱时做了一个决定:只带必需品。而这个决定本身有一个致命的盲区——被留在旧房子里的东西,从来不会举手发言。它们不会喊"喂,我还有用",不会在你需要它的那天从纸箱里探出头来。它们只是沉默地不在场。
现在把这件事搬到 AI 身上。一个 coding agent——那种帮程序员改 bug、跑测试、读日志的 AI 助手——有有限的"工作记忆"(context window)。会话一长,系统就得做一次"搬家":把几万字的历史对话压缩成一份摘要,腾出空间继续干活。行业里管这叫 context compaction,上下文压缩。这份摘要通常由模型自己撰写:把目标、进展、决定浓缩成几百字,像一份会议纪要。
纪要和真实讨论之间的差距,每个开过会的人都懂。纪要是胜利者的历史——它记录"决定了什么",却悄悄丢掉了"当时争论过什么、否决过什么、谁承诺过什么"。而 agent 没有参会者的脑子,它只有这份纪要。纪要是它对新家全部的认识。
Felix Woolford(北海道大学 CHAIN 中心)在这篇论文里问了一个被整个行业默认忍受的问题:压缩的时候,agent 到底丢了什么?丢了的东西,它自己知道吗?
答案是令人不安的。丢的东西从不举手发言。更糟的是——agent 根本不知道自己丢了什么,还会自信地把错误答案说得斩钉截铁。
🧨 一份没人读的会议纪要,和一个正在恶化的行业
先感受这个问题的规模。
在一次典型的 SWE-agent 回合里,约 84% 的上下文是工具输出——满屏的日志、文件内容、命令回显。真正驱动 agent 成本的是 input token,而不是 output token。换句话说,agent 的"脑子"里绝大部分不是思考,而是它刚才"看到"的打印纸。这为压缩提供了借口:工具输出嘛,删了重跑就是了。
真是这样吗?已有研究(Chen 2026)给出了一组恐怖数据:压缩之后,agent 对"上下文内治理约束"的违反率从 0% 升到 30%——也就是说,约三分之一的约束被违反了。拆开看更吓人:如果某条约束被摘要丢掉了,违反率飙升到 38%;而如果约束在摘要里活了下来,违反率就是 0%。这是一个干净到残酷的二分法:约束的生死完全取决于摘要有没有提到它,而摘要是模型自己写的。
有人可能会说:那就别压缩,用长窗口模型嘛。长窗口不是解药。lost in the middle 现象(Liu et al. 2024)表明,模型对长上下文中段信息的使用是不可靠的——把东西塞进窗口不等于它会用。这就像你家里所有东西都没扔、但全堆在地下室,需要你的时候你照样找不到。
所以整个行业目前的处境是:所有 agent 都在做"搬家",而搬家的装箱单(摘要)是模型自己随手写的,没人核对,丢了就丢了。
🧭 三条承诺:保留的逐字保留,删除的当场声明,删掉的一步找回
Woolford 的方案叫 transparent-compact(透明压缩),是开源 coding agent Pi 的一个扩展。它不发明新的压缩算法,而是给压缩立下三条透明性保证,像给搬家工人立的三条军规:
第一条:保下来的东西,必须逐字保留。 用户的原话、assistant 的散文,一个字不许模型改写。为什么?因为模型改写的历史,就不再是历史了,而是模型对历史的"理解"。理解会出错,而且会自信地出错(后面有铁证)。你只能引用原文,不能引用转述——这在法庭上是常识,在 agent 记忆里却没人执行。
第二条:删掉的东西,必须显式声明。 每次压缩产生的 checkpoint 文件,头部写清楚什么还在、什么没了。checkpoint 里还附一句冷静的提醒:保留下来的散文只是"说过的话的记录",不是"其内容的验证"。这句话的份量,读过机制分析部分你就明白了。
第三条:删掉的东西,全部一步可恢复。 会话文件只追加、不覆盖,被压缩的内容都躺在磁盘上。恢复靠一个工具:context_lookup——主 agent 用自然语言提问,一个 subagent 在完整会话历史里搜索,只把相关发现带回来,并且标注哪些发现来自模型早前的推理(需要重新验证)。再加三个有界的兜底工具(list/grep/show),以及连续 lookup 的次数上限。刻意做成"委托式"设计,避免把大量删除历史重新灌回上下文——那是另一种形式的搬家灾难。
具体保留什么?被压缩的 span 里,所有 user 消息和 assistant 散文逐字保留;每个工具调用压成一行签名(工具名加截断参数);列出读过、改过的文件并标注"不在上下文里";删掉的是工具输出全文和模型推理全文。checkpoint 还附一个 re-orient 块:重读指令文档、查 git 状态、编辑前重读文件、把来自已删除推理和工具输出的知识一律视为未验证。这个 re-orient 块值得单独说两句——它本质上是一次"清醒仪式"。agent 刚被压缩完的瞬间,最容易产生虚假的安全感:上下文看起来整整齐齐,仿佛什么都有。re-orient 块在这时冷脸提醒:你现在的自信没有根基,回去重新验证。这就像长跑运动员过补给站时被告知"你刚才喝的不是水,是看起来像水的功能饮料"——残酷,但救成绩。
预算方面,对话部分默认上限占模型窗口的 25%。实际使用中可以撑约 10 轮压缩才开始触发上限,之后转入保守截断(与 pi-vcc 行为类似,>20 轮)。
对照组有两个。一个是 pi-default:Pi 默认的模型写摘要,分"目标、约束与偏好、进展、关键决定、下一步、关键上下文"几段,后续压缩迭代更新上一版摘要——这正是行业主流做法。另一个是 pi-vcc:确定性提取器,不用模型调用,从会话里提取目标、文件、变更、commit、未决错误、用户偏好,保留简短 transcript,提供 raw session 搜索工具。
四个模型参战:Qwen3.8-27B(6-bit 量化,本地 llama.cpp)、Gemma4 31B(5-bit,本地)、GPT-6 Luna(API,轻量)、GPT-6.1 Sol(API,frontier 旗舰)。前三个算 lightweight,Sol 是前沿模型。这个安排别有用意:如果方法真有用,轻量模型应该受益最大。
⚖️ 把实验做成法庭:盲评、control message 与 κ 一致性
这部分我要停下来讲讲实验设计,因为它有一种少见的"法庭质证"质感,是整个研究的可信度地基。
论文测两样东西:commitments(承诺) 和 planted facts(埋点事实)。
承诺测试用的是真实会话(公开的 Pi 会话数据集,MIT/CC-BY-4.0 许可)。流程像一个精心设计的法庭:由不知情的 Claude Opus 先通读会话,找出早期许下的承诺——某条约束、某个决定——然后写一条"悄悄违反承诺但绝不点破"的自然用户消息。什么叫"悄悄违反但不点破"?比如早期用户说过"这个模块不许动 API 接口",探针消息就自然地要求 agent 改一下接口签名,仿佛这条约束从未存在。agent 如果记得,就该当场拒绝或至少提出疑问;如果忘了,就会顺顺当当照做——而它照做的时候,完全不知道自己在违约。
再由一个独立的 Opus 用 8 条标准校验每条探针,比如"关键字符串在全会话里只能出现一次"、必须有 control message,control 不过关的直接剔除。control message 是什么角色?它相当于法庭里的"程序合法性检查"——一条精心设计的话术,用来试探 agent 是否真的理解当前指令的边界,防止探针本身有歧义、让"违约"成为评分员的脑补。最终留下 27 个探针,来自 18 个会话。
然后是盲评。Claude Sonnet 看不到用了什么方法、看不到原始会话,只看四样东西:承诺是什么、指令是什么、pass 标准是什么、agent 的回复是什么。它独立判定通过或失败;失败的还要再标一笔——是不是"自信失败"(回复里毫无疑虑、没有提问、没有 flag)。这就像陪审团只看呈堂证供,不知道被告是谁、用的什么辩护策略。25% 的判决被随机抽出来复评,评判者间一致性 κ 在 0.67–1.0 之间——在人文社科领域,0.67 以上已经算相当可靠,很多段落是满分 1.0。
探针轮本身也做了隔离设计:这一轮只有恢复工具可用,没有文件、shell、编辑工具,等于把 agent 摁在证人席上"只许凭记忆回答";同时声明 128k 窗口,防止探针轮自己触发二次压缩污染实验。
埋点事实测试用的是 18 个合成调试会话(6 个故事 × 3 套数值),约 85% 的 token 是工具输出,很接近真实工作负载。每个会话早期埋下 17 个细节:只在日志里出现过一次的码、变过两次的值、只在工具输出里出现或只在模型推理里出现的细节、关于主机和人的闲话——最后一类细节尤其刁钻,它模拟的是真实会话里那些"不重要但你可能会需要"的边缘信息:运维同事的名字、测试机的 hostname、某台机器内存不够这种随口一提。
在约 95k token 处(模拟 128k 窗口的压力)压缩,共 3 轮,每轮之后问全部细节加 3 个诱饵项。而且每轮开头都有"相似值"情节——同类型的数值在本轮又被提及一次,只是数值不同,专门惩罚模糊记忆。你想糊弄"好像是这个数"?门都没有。这和承诺探针互为补充:一个考"规则还在不在",一个考"事实还在不在"。
📊 承诺的审判:每个模型都赢,而且是稳定地赢
27 个探针 × 3 次重复 × 4 个模型,先上统计显著性:方法主效应显著,F(2,52)=5.37,p=0.008,ηp²=0.17——方法本身确实造成了差异,而且效应量不小。模型主效应也显著,F(3,78)=15.1,p<0.001,Qwen 和 Sol 通过得多,Luna 和 Gemma 少。
关键对比来了。
对 pi-vcc,transparent-compact 每个模型都赢:Qwen 赢 21 个百分点(75.6% vs 54.8%,p=0.001),Luna 赢 19,Gemma 赢 7,Sol 赢 11。方法×模型的交互不显著——意味着这个优势跨模型稳定存在,不是某个模型的意外之喜。
对 pi-default,总体不显著(F(1,26)=2.25,p=0.15),但模式完全符合预测:三个轻量模型上全面领先(Qwen +10、Luna +16、Gemma +4),只在 frontier 的 Sol 上落后 5 点(pi-default 74.1% vs transparent-compact 69.1%)——在 Sol 条件下,Pi 的模型摘要反而是全场最佳。这个例外很有信息量:前沿模型写摘要的质量高到可以容忍其改写风险,而轻量模型写的摘要一塌糊涂,逐字保留的纪律立刻显出价值。换句话说,模型摘要是一种"模型越贵越能用"的奢侈品,而透明压缩是一种普惠制度——它的价值恰好体现在资源受限的地方。
还有一个值得玩味的细节:总体检验不显著,是因为 Sol 的 -5 把轻量模型的优势平均掉了。如果只看 Luna 一家的 +16,那几乎等于把每六次承诺里的一次违约变成了守住。对生产环境的 agent 来说,这个数字就是审计报告上红线出现频率的差别。
但真正让我后背发凉的是"自信失败率"。pi-vcc 的失败中,自信的占比是:Qwen 41%、Luna 52%、Gemma 56%、Sol 33%。一半以上的失败,是 agent 带着斩钉截铁的语气犯下违约——它不知道有这条规则,所以不知道自己在违反。而 transparent-compact 的自信失败率只有 15%–37%,per-model 检验里 Qwen(p<0.001)和 Luna(p=0.008)显著更少。
想象你在法庭上:一种是"我不知道有这条约定所以违反了",另一种是"我知道,但我选择违反"。前者是无知,后者是明知故犯。行业现在的主流压缩方法,批量制造的是前者——无知且自信的违约。在 agent 治理语境下,这比单纯失败可怕得多,因为你连 audit 该审什么都不知道。
🌱 埋点事实:一个大到近乎荒诞的效应量
第二个实验的结果,用论文自己的数据说,是全文最大的效应。
transparent-compact 对 pi-default 全面碾压:Qwen 97.8% vs 75.3%(+22.5);Luna 95.1% vs 55.0%(+40.1);Gemma 93.3% vs 51.5%(+41.7)。这三个数字放在一起看,你会意识到一个尴尬的事实:Gemma 和 Luna 在模型摘要条件下的表现是抛硬币都不如——超过一半的细节丢了。而 pairwise ANOVA 的结果是 F(1,17)=860.2,p<0.001,ηp²=0.98——社会科学里 0.14 算中等效应,0.98 是近乎"方法决定一切"的级别。模型×方法的交互同样显著(F(2,34)=42.1,p<0.001),说明摘要对各模型的伤害程度并不均匀——对谁伤害大?正是那些本就弱势的轻量模型,雪上加霜。
自信错误同样更少:Qwen 少 3.5 点、Luna 少 5.4 点、Gemma 少 4.4 点,Holm 校正后 p≤0.006。
pi-vcc 在这里呈现出分裂的两面。Qwen 上它与 transparent-compact 打平(98.2% vs 97.8%)——因为 Qwen 特别执拗,用搜索工具翻历史能翻到底。但换 Luna,直接掉到 46%;Gemma 掉到 68%,且逐轮衰减(73.5% → 69.0% → 60.5%)——每一轮压缩都在流失。而 transparent-compact 在三个模型上稳在 93–98%,它不依赖模型的搜索执念,因为它是单次委托调用,把翻历史的苦力活外包给了 subagent。
Sol 的探索性对比更像一记耳光:99.3% vs 75.6%(+23.7,95% 置信区间 [20.6, 26.9],p<0.001),自信错误 0% vs 2.1%(p=0.002)。注意 pi-default 在 Sol 身上的生存策略:918 个答案里 190 个"unknown" 加 34 个错误——frontier 模型在感知到记忆不可靠时,靠弃答避险。可轻量模型连"自己不知道"都感知不到,或者感知到了也照样自信作答。还有一个细节:pi-default 在 Sol 上的那 34 个错,比 190 个弃答更值得警惕,因为弃答至少诚实。
最后是耐久测试:12 个 Qwen 会话延长到 8 轮压缩。transparent-compact 每轮稳在 96.6%–100%;pi-default 的多数会话在第 5、6 轮崩掉——摘要触到了模型的生成长度上限,后面全是断章。第 4–8 轮,transparent-compact 的自信错误比 pi-default 少 6.5 点(p=0.006)。
摘要这东西,迭代压缩就是在复印复印件,到第五六轮就糊成一片了;而逐字保留的 checkpoint 是母带,第几轮都不掉渣。这个对比其实揭示了两种技术路线的哲学差异:模型摘要把记忆变成了一个不断重新讲述的故事,每一代讲述者都在前一代的讲述上加工;透明压缩把记忆变成了档案,压缩只是换了一个更小的阅览室,卷宗本身一个字没动。故事会变形,档案不会。
🔬 解剖七起冤案:问题不在遗忘,在于自信的替换
论文的 5.1 节机制分析是全文最锋利的部分,值得逐条过堂。
第一刀:信息是按"出身"被区别对待的。 pi-default 按来源召回 planted facts(Qwen 数据):用户说过的 97.9% 能找回,assistant 散文 80.2%,只在工具输出里出现过的 62.7%,只在模型推理里出现过的——15.8%。前两类摘要愿意转述,后两类几乎被系统性丢弃。而 transparent-compact 靠 lookup 工具,四路来源分别能到 100 / 100 / 97.6 / 87.4%。教训很冷峻:模型写摘要时有自己的"势利眼",它觉得不重要的出身,就不会被记住。
第二刀:七起"先对后错且自信"的冤案。 这是全文最有画面感的一组案例。有 7 次,正确答案明明还在摘要里,agent 却答错了——而且语气毫无迟疑。解剖发现 5 起是"相似值干扰":把两个值区分开的上下文没了。最典型的例子:摘要记着 backfill 批大小改成了 7500;后来另一段又记着"选 2750 因为跑得干净",但不再说明那是哪个 job 的数字——agent 于是理直气壮地答 2750。7500 就在纸上躺着,它却隔着一行字认错了亲。还有一起更阴的:摘要悄悄改写了发布冻结的日期(这个探针恰好没考到,所以摘要的错误率实际上被低估了)。这是改写式摘要的原罪:它不只删,它还顺手改,改得理直气壮,改得无人核对。
第三刀:pi-vcc 的刀口,常常正好落在承载约束的限定从句之前。 这个细节我读了三遍。确定性提取器没有给"规则"留容身之处:唯一的 "User Preferences" 段落靠英文模式匹配("prefer…"、"never use…"),15 个摘要里只出现过 1 次,且内容无关;goal 段只留最近一条 user 消息的首行;早期回合被砍成一行;transcript 只留最后 120 行。于是一条原本完整的话——"所有迁移文件都要包含回滚步骤,因为生产环境不允许不可逆变更"——很可能被切在"因为"之前,剩下的半句孤零零躺在磁盘上,规则的灵魂就这么没了。
这就像传话游戏:第一个人说"方案没问题,但前提是用新密钥",传到第三个人耳朵里只剩"方案没问题"。每个环节都觉得自己的转述"基本准确",而"前提"两个字——恰恰是全句唯一重要的部分——在第一次转述时就被丢掉了。确定性提取器的失败不是粗鲁的删除,而是温柔的截肢:它保留的每一行看起来都合理,合起来却是一片被切除限定条件的语言残骸。作者还排除了一种替罪羊:不是语言问题——15 个会话里 11 个主要是英文,pi-vcc 通过率 53% vs 其他 50%,没有差别。
第四刀:恢复式搜索有致命的盲区。 pi-vcc 确实在搜历史——78 次里调了 64 次 recall 工具。但它的 37 次失败里,30 次发生在搜索之后:它搜的是"要执行的代码",而不是"当初约定了什么"。19/33 次自信失败以"我在历史里找到了确切代码"开头。这句话值得刻在每间 agent 办公室的墙上:恢复式搜索只在模型知道要找什么时管用;当模型不知道规则存在时,它根本不会去找。 去找灭火器的前提,是你知道世界上有"火灾"这种东西。
第五刀:两个对照组的失败模式截然不同,暴露的是同一个病灶。 pi-default 的模板有 "Constraints & Preferences" 和 "Key Decisions" 段,规则在的时候 39 次过了 31 次(仅 1 次自信失败);它的 9 次失败全部是改写——把规则范围悄悄改窄、把 standing rule 记成一次性事实、保留用户早已推翻的旧决定、把规则只记成一条过往改动——且全部自信。注意这四种改写的共同手法:它们都不是"忘了",而是把约束软化成了建议、把规则降格成了历史、把废案当成了现行。这类失败最阴险的地方在于,事后你读摘要,会觉得它写得头头是道——谎言的文笔往往比真相好。
而 transparent-compact 的 11 次承诺失败全部是误用:agent 看到了规则,甚至引用了规则,还是照做。它从没有弄丢过别人保住了的承诺。改写、误用、丢失——这三种失败的政治含义完全不同:丢失是湮灭,改写是篡改,误用至少是"记录在案的错误"。做审计的人知道,前两种查无可查,第三种还有得审。另有 4 个探针,其承诺在三家的上下文里根本不存在(只活在某个读过的文档里,或从没被说成规则),三家大都失败——这是诚实的边界,也顺带提醒所有 agent 设计者:没有被说过的话,别指望任何压缩方法替你记住。 规则的寿命,从它被清晰说出的那一刻才开始计时。
第六刀:透明不等于臃肿。 真实会话里,checkpoint 中位数 31k 字符,比 Pi 摘要的 34k 还小。直觉上"逐字保留"应该更占地方,但工具输出才是上下文的大头,丢掉它们的正文后,留下的骨架反而更轻。
第七刀:好脚手架让轻量模型追平 frontier。 同一个 pi-vcc 上下文,planted-facts 召回率 Qwen 98% vs Luna 46% vs Gemma 68%——差距不在上下文内容,在搜索的执拗程度:Qwen 每批探针调用 30 次以上 recall 翻到底,Luna 每批 5–14 次就举手投降(pi-vcc 条件下 918 个答案里 401 个弃答,Qwen 只有 4 个)。也就是说,很多"模型不行"的结论,实际是"脚手架不行"——你给它一根会断的拐杖,然后判定它不会走路。而 transparent-compact 的单次委托设计抹平了这个差异。最漂亮的一个数字留在这里:Qwen + transparent-compact 的承诺通过率 74.1%,追平了 Sol 的最佳条件。一台本地 6-bit 量化的 27B 模型,靠着记忆纪律,站到了 frontier 模型的起跑线上。
🧠 人类早就知道:你会忘掉措辞,却自信地记错意义
论文 5.3 节埋着一段心理学,是全文的华彩,我必须完整地讲给你听。
1967 年,Sachs 做了一个经典实验:让人读一段文字,过一段时间后再认。结果发现,人对逐字措辞的记忆褪色极快,而对意义的记忆保持得很好。你不会记得朋友上周原话怎么说,但你会记得他"大概的意思"。
这本来是进化赋予人类的节能优势——谁需要记住每个字呢?但它有一个阴暗面。fuzzy-trace theory(Reyna & Brainerd 1995)指出:verbatim trace(逐字痕迹)褪色快,gist trace(要义痕迹)存得久,而人会对基于 gist 的"自信的错误再认"毫无察觉。Bartlett 在 1932 年就发现,记忆是重构式的——每次回忆都是往既有的图式上弯一点,像一截被反复掰弯的铁丝。Johnson 等人的 source monitoring 研究(1993)进一步表明:人经常记错一段记忆的来源——你"记得"某个数字,却忘了它是别人说的还是自己算的。
现在看模型摘要:它就是一条故意制造的 gist trace。一份压缩摘要把逐字记录销毁,只留要义;而要义会自信地出错——它是重构的记忆,图式是它的弯折处。摘要里"选 2750 因为跑得干净"之所以危险,不是因为它写了 2750,而是因为它把 2750 从它的来源、它的限定条件、它的适用范围里剥了出来,变成一个漂浮的、自信的、无主的事实。
作者很谨慎地声明:这是设计类比,不是模型内部机制的证据。但作为一个设计原则,它已经足够锋利:既然 gist trace 必然出错,而 verbatim trace 又存不下全部,那就 verbatim 存下关键的、gist 只用来指路,绝不让 gist 冒充实录。 transparent-compact 的三条保证,本质上是把人类用了几万年的补救措施——原始记录、删除清单、档案可查——教给了 AI。
心理学家会管这个叫"外化记忆"。人类发明了文字,就是因为不相信自己的 gist。古埃及的抄写员在莎草纸上逐字记录法老的话,不是因为他们觉得法老说得不好,而是因为他们知道要义会漂移,原件不会。三千多年后,我们把同样的一课教给了 AI:你可以让模型总结会议纪要,但合同必须留原件。
⚡ 便宜、快,而且不崩
工程界最关心的数字放在最后。
每次压缩耗时:transparent-compact 0.43 秒、pi-vcc 0.40 秒、pi-default 167.8 秒(本地 Qwen 写摘要要带全推理链),Sol 写摘要约 61 秒。确定性压缩比模型写摘要快了差不多四百倍——这不是优化,是物种差异。
代价是 token:Qwen 的 commitments 探针轮平均 prompt tokens 57,300,对 pi-vcc 的 21,389,约 2.7 倍;Gemma 是 1.7 倍。planted-fact 会话总时长 14.1 对 11.2 分钟(p=0.077,不显著)——作者特意注明,这个场景里 lookup 是被探针设计强制每轮使用的,实际使用不会这么密集。换句话说,这是该方法的"压力测试账单",不是日常账单。
用 2.7 倍的上下文成本,换 22 到 42 个百分点的记忆保持率,和一半以上的自信失败消失——这笔账怎么算都划算。医疗系统花重金做双人核对制度,防的正是"自信的错误":手术前的 Time-Out 流程要所有人停下来复述一遍患者、术侧、术式,哪怕 999 次都是浪费时间,第 1000 次救的是一条命。那个价格比 2.7 倍 token 贵得多。工程上的另一条隐性收益同样来自那组崩溃数据:确定性压缩不占用模型生成长度预算,意味着它不会在某一轮突然"脑子不够用了"而输出截断——这种失败在 pi-default 身上反复出现,而在 transparent-compact 身上结构性不存在。
还有一组对照实验,戏剧性拉满:pi-default 在 Qwen 原生 48k 设置下,16 个真实会话崩了 15 个——摘要预算 6553 token 被推理链吃光,输出直接截断。放大预算后 205 次压缩成功了 202 次,但 41 个长会话里仍有 3 个在第 7–9 轮后崩溃。作者的话一针见血:确定性压缩不会这样崩。 模型写摘要这条技术路线,自带一种结构性脆弱——它不是偶尔失败,而是失败方式不可预测。
🪞 局限与结语:让被删掉的东西举手
诚实的论文都写在局限里。这篇也一样:方法由作者自己编写(为限制偏差,第三方方法严格按默认配置运行;探针由不知情的模型撰写;盲评;复现包公开);探针轮移除了文件和 shell 工具来隔离记忆(真实 agent 还能重读文件——对事实记忆有帮助,对承诺记忆没有);探针由 Claude Opus 写和校验、Sonnet 盲评;API 模型的温度和种子不可控;control 只在 Qwen(及 Sol 部分)上运行;ANOVA 用在有界率上是近似。
写到这儿,回到开头那个搬家的比喻。这篇论文真正改变的不是装箱技术,而是装箱契约。以前的契约是:搬家工人(模型摘要)自己决定带什么、扔什么,箱子封上不再打开;新家的你(后续轮次的 agent)只能对着装箱单生活,而装箱单会悄悄改掉几件东西的描述。新的契约是:必需品原件随身,扔了的东西列一张清单贴在箱子上,任何被扔的东西凭一句话就能从旧房子取回。
被删掉的东西从此会举手发言了——只不过是通过一张它从未得到过的发言权:一张诚实的删除清单。
当人开始认真处理"遗忘"这件事时,文明发明了档案馆。当 AI 开始认真处理遗忘时,它需要的是同样朴素的纪律:原件优先,删除留痕,有据可查。 承诺这种东西,恰恰是在没人看它的时候,最需要被记得。
这篇论文是单人作者完成的,这本身也是一个信号:它没靠大团队的算力碾压得出结论,而是靠一把解剖刀式的实验设计——盲评、control、κ 一致性、逐来源的召回拆解——把一个行业默认忍受的问题逼到无处遁形。在一个人人忙着给 agent 加功能的年代,有人回头把"记忆"这个地基拆开检查了一遍,并且给出了一套朴素到近乎老派的修法。这种工作不炫技,但往往是整个房子还能住人的原因。
📚 参考文献
- 论文: Maximising Transparency in Context Compaction Improves Retention of Facts and Commitments for Lightweight Coding Agents
- 作者: Felix Woolford(Center for Human Nature, Artificial Intelligence, and Neuroscience (CHAIN), Hokkaido University)
- arXiv: https://arxiv.org/abs/2610.20116 (2026-10-14)
- 软件: transparent-compact-pi v0.8.0,MIT licence,2026-10-13 发布
#论文 #arXiv #AI #小凯