论文一:Tracing the Thoughts of a Coding Agent Playing ARC-AGI-3: Lessons for Continual Learning(arXiv:2610.11450) 发表时间:2026年10月(NeurIPS 2026 Workshop: Continual Learning in the Era of Foundation Models and Embodied Agents) 机构:AWS(Amazon Web Services)。Chen Wu、Josh Passenger、Yin Song 三位作者全部来自 AWS,属企业研究院出品,无高校合著。作者声明实现、提示词、测量脚本与 R4 运行的官方 scorecard 将公开(截至论文发布时尚未附 URL) 领域标签:智能体持续学习 / 程序化记忆 / 白盒可解释性 / ARC-AGI-3

论文二:Code Understanding is a Bottleneck for Coding Agents(arXiv:2610.10610,框架简称 CABRA) 代码仓库:github.com/microsoft/CABRA;数据集:huggingface.co/datasets/microsoft/CABRA 发表时间:2026年10月 机构:Microsoft Research + University of Maryland。典型「企业研究院 + 高校实习」合作模式:第一作者 Nishant Balepur 为 MSR 实习生(致谢中感谢 MSR NYC 实习 cohort 与纽约 Lafayette 街的 La Cabra 咖啡馆——框架名字来源),Kiran Tomlinson、Tobias Schnabel 为 MSR 研究员 领域标签:编码智能体评测方法学 / 受控合成任务 / 失败归因 / 程序理解

这两篇论文一个共同的关键词是白盒:都不满足于给智能体打分,而是打开过程本身——一篇追踪智能体在任务切换时对记忆做了什么,另一篇把任务难度拆成可控单轴后观察智能体在哪个能力维度上失守。合起来读,恰好覆盖了编码智能体研究的两大基本问题:它是怎么学的,以及它是在哪里败的。

一、论文背景

1.1 持续学习:从权重更新到文件系统

持续学习(Continual Learning)是什么:让一个学习系统在连续到来的任务流中不断学新技能、同时不忘记旧技能。传统机器学习里它和神经网络权重绑定在一起:模型参数在任务 A 上训练后,再学任务 B 会覆盖对 A 有用的参数,这就是灾难性遗忘(catastrophic forgetting)。学界的经典表述是稳定性—可塑性权衡(stability–plasticity trade-off):参数太稳定学不进新东西,太可塑又会冲掉旧知识。

今天的编码智能体改变了问题的形态。基于冻结基础模型(frozen foundation model,指权重不再更新的 LLM)构建的智能体不做任何梯度更新,它面对同样的任务流时,必须回答另一个问题:知识存在哪里、任务切换时这些知识发生了什么。ARC-AGI-3 Thoughts(下称 Thoughts)选择的答案是:知识全部落在文件系统的脚本和笔记里。

1.2 ARC-AGI-3:每过一关就是一次任务切换

ARC-AGI-3 是什么:ARC Prize 基金会推出的交互式推理基准。智能体面对一个 64×64 的彩色网格、名为 ACTION1–ACTION7 的七个动作加一个 RESET,除此之外什么都没有——没有说明、没有目标描述、没有动作解释、没有颜色含义。唯一的反馈是关卡清除时上升的分数。智能体只能靠「行动—观察网格变化」来猜测游戏机制。

关键设计在于关卡即任务:一个游戏(demo 数据集共 25 个)是一串关卡,清掉一关自动载入下一关,界面、网格尺寸、动作名称不变,但布局、物体和获胜条件经常彻底改变——上一关的制胜策略下一关可能直接失败。论文给出了一个具体例子:首个智能体用「可推动箱子」理论过了 wa30 的 L1,然后在 L2 用同一理论失败。关卡边界不预先通告,每次边界到来时智能体必须自己决定:哪些学到的东西是游戏通则、哪些只是刚离开那一关的局部事实。这正是 task-free continual learning(不被告知任务边界的持续学习)的天然实验场。

1.3 编码智能体评测:为什么打分不够,还要归因

编码智能体(coding agent)是什么:在代码仓库上工作的 LLM 智能体,能读代码、搜代码、改代码、跑测试,GitHub Copilot、Codex 都是产品形态。评测它们的主流方法是仓库增强基准:收集真实 GitHub 仓库,配上问题陈述和测试用例(如 SWE-bench 系列)。

CABRA 的出发点是这类基准的一个方法学缺陷:任务在代码类型和任务类型上同时变化,失败无法归因。一个任务既比另一个任务代码更长、又涉及不同的重构类型、编辑还更多——智能体失败了,你不知道该怪谁。论文点名了一个反面案例:SWE-bench Pro 论文把智能体低准确率归因于「编辑了更多代码」,而 CABRA 作者的分析显示智能体在读、分析、测试更多时准确率同样低。**混淆变量(confounder)**没被控制,结论就可能张冠李戴。

合成任务传统:想控制变量,办法是从零造任务。NLP 领域早有先例——bAbI 测基本推理能力、Needle in a Haystack(大海捞针)用可调语料长度压测长上下文。这个传统还没被系统性地搬到「会调用工具的编码智能体」上,而工具恰恰让局面质变:很多 LLM 难题对智能体不再是难题。CABRA 要补的就是这块空白。

1.4 两篇合读的背景逻辑

Thoughts 问「智能体跨任务时记忆怎么变」,CABRA 问「智能体到底在哪种能力上失败」。两者共享同一个时代背景:编码智能体已经能拿高分,但高分黑箱让人既不知道它学到了什么,也不知道它会在哪里断。白盒化——把过程记录下来逐项分析、把任务拆解成单轴受控变量——是两篇论文共同的方法论姿态。

二、论文定位和关联工作

2.1 Thoughts 在持续学习谱系中的位置

按「学习时什么在被改变」,论文把相关方向分成五族:

谱系代表工作改变什么与 Thoughts 的关键区别
参数化持续学习EWC 类正则化、经验回放、参数隔离(综述 Parisi et al. 2019、De Lange et al. 2021)模型权重Thoughts 完全冻结权重;且文件系统无预算约束,丢弃决策不受缓冲区已满的压力
上下文内学习CL-Bench(Asawa et al. 2026)发现保留全部上下文优于多个专用记忆系统什么也不持久改变受上下文窗口限制;而 logs.txt 最大 24.9MB,prompt 保持固定大小
外部记忆系统Generative Agents(Park et al. 2023)、MemGPT(Packer et al. 2023)外部记录消除了参数遗忘但引入检索瓶颈与整理误差;Thoughts 的测量显示智能体实际选择重写而非检索
技能库Voyager(Wang et al. 2023)、WikiSkill(Tang et al. 2026)可复用程序集合前提是「库只增不减」——Thoughts 的边界计数直接推翻了这个前提(74% 脚本被抛弃)
Harness/循环工程与测试时训练Evo-Harness、GEPA、TTT(Sun et al. 2024)模型周围的脚手架或瞬态权重需要预定义的编辑空间和先验轨迹语料;Thoughts 的设定是首次接触完全陌生的环境

Thoughts 直接的架构基础是 PRO-LONG(Fox et al. 2026)的程序化记忆设计:harness 把每次交互追加到 logs.txt、只给智能体这个文件路径,任何关于环境的事实都必须由智能体写的脚本建立。论文的贡献不在架构而在测量协议——它复用 PRO-LONG 的循环(Figure 1 注明 taken unmodified),在 689 个关卡边界上给每个脚本归类四种结局。与可解释性方向的对比也值得注意:电路追踪(circuit tracing,Anthropic 的 Transformer Circuits 工作)能在模型内部恢复计算图但每个 prompt 成本高昂;Thoughts 反其道而行,让智能体把状态放在文件里,从外面直接读。

2.2 CABRA 在评测方法学谱系中的位置

谱系代表工作核心思想与 CABRA 的关键区别
代码生成基准HumanEval、AlphaCode、LiveCodeBench单文件生成,难度来自算法不测智能体的工具使用与仓库级编辑
仓库基准SWE-bench / SWE-bench Verified(Jimenez et al. 2024)、SWE-bench Pro、SWEatlas真实 issue 解决,生态效度高任务/代码类型混淆,失败归因只能做相关分析
难度缩放型工作SWE-bench Pro 等加更多编辑、多轮 prompt、附加要求用「更多」换「更难」CABRA 证明编辑量不是有效的难度轴——理解量才是
合成受控任务bAbI、Needle in a Haystack、LongCoT、RELIC、CRUXEval、Bug in the Code Stack定义任务+缩放尺寸,隔离单一能力均未研究「带工具的智能体」场景;CABRA 首次系统化并发现 LLM-hard ≠ agent-hard
轨迹相关性分析Majgaonkar et al. 2025、Liu et al. 2025 等在仓库基准上把轨迹特征与准确率关联相关性弱且混淆;CABRA 用控制变量补上因果路径

CABRA 的直接灵感来源清晰可数:五类基础任务取自 Fowler《重构》目录(与 RefactorBench 同源);四条缩放轴分别对接函数遍历(Wang et al. 2023 图问题研究)、函数搜索(Needle in a Haystack 的代码版)、运行时求解(CRUXEval)、指令遵循(Pyatkin et al. 2025)。第五部分的新任务则建立在程序等价性(Pitts 1997)研究之上,与 EquiBench(Wei et al. 2025)的语义等价检查一脉相承。

2.3 两篇的合璧定位

  • Thoughts:新范式——首个对文件系统记忆做逐脚本生命周期追踪的白盒持续学习测量协议,结论是智能体自发采用持续学习文献中的「隔离策略」(isolation strategy)。
  • CABRA:新方法学——用可控合成+工具调用分类确立「代码理解」为可缩放的智能体瓶颈轴,论证 LLM-hard ≠ agent-hard。

一个给过程做显微镜,一个给失败做解剖台。

三、问题定义

3.1 Thoughts:把「持续学习」变成可计数的文件事件

具体问题:一个冻结模型的编码智能体,在连续的未知任务上学习时,到底发生了什么?它保留了什么、修改了什么、丢弃了什么?传统持续学习只能从任务成绩间接推断遗忘与迁移——像医生只看体检总分,不看任何检查影像。

核心洞察(结构相似性):PRO-LONG 架构让智能体的全部状态外化为文件(Python 脚本+笔记),且 harness 日志完整保全。于是一条「思维」(thought,论文定义为:任何被写进文件的信念、规则或计划)从诞生到被修正或抛弃,全程留痕。持续学习的「稳定性—可塑性」权衡,在这里变成了可以逐条点数的文件操作。

形式化定义:

  • 给定:一个任务序列(ARC-AGI-3 的关卡流)、一个把所有记忆写为文件集 M 的智能体、一份完整交互日志 logs.txt;
  • 定义边界 b 为相邻两关的转换时刻;每个脚本 s 归属于它被写入时处于打开状态的任务(关卡);
  • 求在每个边界上,边界前写下的每个脚本 s ∈ M 的结局,归入四类之一:
    1. reused-by-reference(引用复用):边界后有脚本 import 或 exec 它;
    2. reused-by-copying(复制复用):边界后有别的脚本包含与其函数体完全相同的函数;
    3. rewritten(重写):边界后写出了它的新版本;
    4. abandoned(抛弃):以上皆非。
  • 约束:判定只依据文件内容本身,无需访问模型。

这个抽象的精妙之处有三层。第一,它把「迁移」拆成两种可数事件(引用/复制),把「可塑性」拆成两种(重写/抛弃), retention 和 transfer 从推断量变成计数器。第二,「任务」不靠外部标注而由关卡切换自然给出,且不预先通告,天然符合 task-free 设定。第三,协议对「任何把知识写到文件系统的智能体」通用——这正是白盒的代价与收益:你必须先让智能体外化记忆,然后一切皆可测量。论文也诚实划出边界:由于没有重访已清除的关卡,反向迁移(backward transfer)无定义,被计数的遗忘是工件的处置而非能力的丧失。

3.2 CABRA:把「任务难度」拆成单轴可控变量

具体问题:编码智能体失败时,究竟失败在哪种能力上?仓库基准上这个问题无法回答——每个任务的代码类型、任务类型、编辑量、理解量全都在同时变。

核心洞察:借鉴合成任务传统(定义任务类型 × 缩放任务尺寸),把「难度」从不可分解的整体拆成一次只动一个旋钮的受控实验。再配上对智能体工具调用的六类标注,就能问出那个关键问题:当任务沿某条轴变大时,智能体把额外工作量花在了哪类工具上?

形式化定义:

  • 程序表示为有向无环调用图 C=⟨V,E⟩,顶点是函数、边是调用关系,每个函数计算输入的随机数学函数(另有字符串/数组版本保证泛化);
  • 五类基础任务(Fowler 重构目录的合成版):Remove Dead Code(删除 main 不可达函数)、Add Parameter(把新参数沿调用图下传)、Add Return(把新返回值上传)、Cache Function(把重复调用上移到最低公共祖先)、Don’t Repeat(DRY,把重复计算下移到首个公共后代);
  • 四条缩放轴,每条用尺寸参数 n∈{5,10,25,50,100,200} 只动一个量:函数遍历(要编辑的函数数)、函数搜索(不要编辑的干扰函数数)、运行时求解(解析 check() 需要的 Collatz 式步数)、指令遵循(附加规则条数);
  • 求准确率随 n 的变化曲线,配合工具调用分类(READ/ANALYZE/SEARCH/EDIT/TEST/OTHER)统计随 n 的变化;
  • 判分:任务全部为规则变换,故存在 ground truth 程序 C_true,用黑盒测试比对(每个函数 50 个随机输入,共 50|V| 个用例,最少 500),全过记 1 分。

这个定义的精妙在于两个可控步骤解耦了任务设计与难度缩放:任务类型固定时,n 只放大一种能力需求;并且由于答案程序可解析地构造,判分完全客观。第五部分再把它升级成因果验证:构造「编辑量 O(ℓ) 温和增长、理解组合数 Ω(ℓ²) 爆炸增长」的等价代码提取任务,专测「理解」这个单一变量。

四、问题解法

4.1 Thoughts 的解法:一套循环、三种记忆、四类结局

智能体循环(继承自 PRO-LONG):分 runner 与 analyzer 两部分。runner 每次向游戏发出一个动作,把每个动作和返回的棋盘追加进 logs.txt。analyzer(唯一做决策的组件,以 Strands Agents SDK 实现的 ReAct 循环,约十次工具调用)读 logs.txt、把计划写进 actions.json。runner 队列清空或分数变化时再次唤起 analyzer。要点:analyzer 收到的是日志路径而非棋盘本身——想恢复当前或历史状态,必须自己写脚本解析日志。这保证了「任何事实由脚本建立」,也保证 prompt 固定大小(日志最大 24.9MB 全在盘上)。

记忆的三种形态(论文用血泪史说明演化理由):

  1. 早期:散文记忆(prose)——像 Generative Agents 那样总结历史、检索片段入 prompt。两个弱点暴露无遗:总结丢信息;散文规则不能执行、无法对回放历史验证。实测该智能体把 2,416 条记忆条目压缩成 106 条,还把从屏幕条推断的「移动预算」错标为 CONFIRMED MECHANICS 并此后当真理使用。
  2. 脚本(可执行记忆)——规则写成脚本就可以对 logs.txt 回放检验,失配即模型需要修正。记忆积累为解析器、状态重建器、模拟器等工件。
  3. 笔记(notes,保留的散文部分)——写给模型自己读的信念文件,不可执行、只增不删(4.3 节会看到它的独特行为)。

沙盒与计分环境:六个工具跑在无网络沙盒里,写入限于当前游戏工作区(看不到别的游戏文件);系统提示只描述接口(只说动作名、不说用途、不断言存在目标)。只有发给游戏的动作计入分数,推理、工具调用、重试都不计——于是对日志跑脚本是免费的,对游戏试错是花钱的,智能体被结构性激励去运行脚本而非反复试探。

测量协议:7 次评估运行、3 个骨干(Opus 4.7 一次;Opus 5 三种条件;Qwen3.8-27B-FP8 本地离线三种 prompt 变体),共 4,786 个脚本、689 个边界。R4(Opus 5、移除 prompt 先验)达到 RHAE 99.95%、清空全部 183 关。注意论文明确声明:7 次运行是刻意变化的条件组合而非同一实验的重复,所以不做排名、不归因单一因素、不给置信区间——目的是看哪些行为跨条件成立。

六类工具结局的语义对照(脚本四类+笔记一类+日志一类):

记忆成分读者边界上的结局持续学习对应
脚本脚本(计算事实)引用复用 / 复制复用 / 重写 / 抛弃前两种=正向迁移工件;后两种=可塑性半边
笔记仅模型只增长(修正以追加方式追加)追溯式信念史
logs.txt(harness 所写,不算记忆)智能体(只读)永不丢失裁决记忆内部矛盾的外部证据

4.2 CABRA 的解法:两步生成 + 分类器 + 三级证据链

第一步:DAG 合成程序。给定 N 个顶点,采样高度比例 hUniform(0.45,0.55) 定拓扑层数,逐层泊松分配顶点数,每个非根顶点按几何分布 ΔGeom(0.9) 从前面某层选一条入边(偏向相邻层但允许跳层)。函数体由随机数学运算构成(另设 strops 字符串运算与 numpy 数组版本)。C_edit 与 C_init 之间的边以 β=0.3 概率连接。

第二步:五任务 × 四轴 × 六尺寸 × 20 采样 × 三种代码类型 = 6,840 个任务。运行时求解轴用 Collatz 式函数(for step in range(num_steps) 循环 n 步才能解出 check() 的奇偶);指令轴从规则库采样(加注释、加断言、打印、临时变量等 14 种模板)。

被评测对象:8 个 LLM(无工具,SWE-Agent 式 prompt,输出完整代码库重写——附录 A.3 显示全量重写优于 diff 补丁):GPT-5.4 Mini / 5.3 Codex / 5 / 5.5、Grok-4.1 Fast、DeepSeek-V3.2、GPT-OSS-120B、Mistral Large 3.1;6 个智能体(GitHub Copilot 公开 harness v1.0.76,三段式 ReAct 循环):GPT-5.5、GPT-5.4 Mini、Gemini-3.5 Flash、Gemini-3.1 Pro、Sonnet-4.6、Opus-4.7。最终运行花费约 25k 美元。

工具调用分类器:对每条工具调用,用 Qwen3-4B-Instruct 依名称、输入、推理 token 打六类标签——READ(逐字读文件,占 22%)、ANALYZE(AST/调用图/运行时分析,14%)、SEARCH(grep 等模式查找,11%)、EDIT(改代码,36%)、TEST(验证,8%)、OTHER(9%)。与人工标注一致率 94%(SWE-bench 89%,merge 任务 94%)。论文还给了两个佐证 UNDERSTAND(READ+ANALYZE)语义的位置证据:48% 的 READ 和 40% 的 ANALYZE 出现在轨迹前四分之一;69%/56% 先于首次 EDIT——都是所有工具类中最高的。

三级证据链设计(这是 CABRA 论证结构的精髓):

  1. 受控层(CABRA 任务):LLM 准确率随 n 全轴下降,智能体近乎满分 → 难度对两者不是一回事;
  2. 生态层(SWE-bench Verified 公开轨迹):用分类器统计 mini-swe-agent 下 Claude-4.5 Opus/Sonnet、Gemini-3 Pro/Flash、GPT-5.2、GPT-5 Mini 的轨迹,看哪个指标预测准确率最好;
  3. 因果层(新任务):按假设构造理解密集型任务,验证智能体准确率终于下降。

附录还有两层稳健性:过滤可能的跨智能体通信轨迹(起因是 OpenAI 披露的评测安全事故,11% 轨迹涉及共享目录、<0.2% 查询过其他智能体会话)、Docker 全隔离重跑,结论均不变。

五、评估指标与实验证据

5.1 Thoughts:四张「体检单」

指标一:脚本结局计数(主指标)。在 689 个边界上统计:

  • 引用复用几乎不跨边界:7 次运行共 630 次 import/exec,597 次发生在同一关卡内,跨边界的只有 33 次。原因在机制上:273 个被引用脚本中 263 个一被 import 就执行代码,其中 229 个在这段代码里内嵌了 ≥5 个当前关卡数值(如 R4 游戏 sp80 的 L5 模拟器开头就写死 ROWS=19、COLS=19——L6 棋盘不同,import 当场失效,还没轮到函数被调用)。
  • 复制复用是跨边界主通道:函数体跨脚本复现 562 次,其中 72 对跨关卡(对比引用的 33 次)。且只有三个 Opus 5 运行有任何跨关卡复用;R1 与三个 Qwen 运行跨关卡复用为零(R1 关卡内复制 137 个函数体,全运行最多——它复用,只是从不跨边界)。
  • 重写普遍且「重打字」而非增量扩展:R4 的 734 个脚本中 230 个是旧版的新版本,101 个达到两版以上、一个达十二版;三个 Opus 5 运行写新版本从不调用文件编辑工具。新版丢弃旧版函数的比例:R4 56%、R2/R3 62%/61%、R1 38%、R5–R7 73%/74%/52%。
  • 抛弃是最常见结局:边界前写下的 2,319 个脚本中 1,726 个(74%) 既未被重写也未被复用。分运行抛弃率:R3 60%、R2 73%、R4 74%、R1 88%、R5 84%、R6 93%、R7 100%。

这些数字直接支撑「迁移靠重推导而非引用」:被引用的工件极少(33/630),被复制的是函数内容而非保留的库,技能库式设计假设的「只增不减的库」与实测 74% 抛弃率相反。

指标二:RHAE(相对人类动作效率),ARCPrize 官方指标,奖励用少于中上首位人类玩家的动作数清关。作为运行条件的背景:R4(Opus 5、移除 prompt 先验)99.95%、183 关全清;R2(在线模式)98.33%;R3(竞赛模式)96.87%;R1(Opus 4.7、动作上限 20)46.82%;Qwen 本地三变体 8.39%/6.78%/6.84%。论文特意注明 PRO-LONG 原文用 Fable5 报告 97.4% best@2 RHAE(2000 动作上限),与 R4 在骨干、上限、选择与计分模式上都不可比。

指标三:笔记组织索引。三种骨干用了三种不同的索引键:Opus 5 三运行每游戏单一文件、按关卡分节(93–98% 文本位于关卡标题下);Opus 4.7 按文件索引(每关一个 notes 文件,898 个脚本文件名中 227 个含关卡名);Qwen 按自己的轮次索引(R5 中 73% 标题名轮次、13% 名关卡,对比 R4 的 12%/27%)。三个骨干对边界的共同反应是分区(partition)而非调和(reconcile)记忆,差别只在分区键——这是跨骨干最强的行为不变量。

指标四:笔记的追加式修正。R4 游戏 wa30 的笔记先描述玩家的「双格模型」,后来一个标题为 KEY MECHANIC CORRECTION 的小节宣布它错了、改成「单格模型」,80 个动作后又一个小节 MAJOR REVISION 恢复双格模型——第一次是对的、修正是错的,但两段都留在文件里、相隔 65 行、都没标记撤销。sb26 游戏中 R2/R3 各加一个 CORRECTION 小节而把错误原句留在上方。笔记是带日期的信念史而非当前信念表,矛盾由 logs.txt 裁决。

负面迁移案例(机制级证据):游戏 m0r0 水平控制镜像翻转。L4 中让两个标记相遇的动作方向,到 L5 反转、下一边界又反转。三个 Opus 5 运行都把 L4 方向带进了 L5。修复方式分化:两个运行把定值改成参数(def solve(polarity, ...) 与 S3 = int(sys.argv[1]),方向必须运行时提供);R4 用字典存值、就地编辑,结果把 L5 的修正带进 L6 再次出错、又改回原值。L6 处 R2/R3 试两个值、几个动作内定位方向,R4 带着旧值直接再失败。参数化是唯一有效的修复,而这种表示只存在于脚本中——三个运行的笔记都只把方向重述为每关事实、无一记录为需要重新确立的量。反例同样有教学意义:Qwen R6 游戏 tu93 的 L2 模拟器本已把步长作为参数(def move(r, c, mv, n=2, ...)),L3 重写却换成固定偏移表 DIRS={'ACTION1':(-2,0),...},把本已开放的值重新封闭——R6 平均几乎每行代码一个硬编码数字。

5.2 CABRA:三组实验如何环环相扣

实验一:LLM vs 智能体准确率曲线(Figure 2)。

  • LLM 准确率随 n 在全部四轴下降(8 个模型一致,按任务类型、按 math/string/array 程序类型分解后趋势均保持;控制骨干的 Gemini 对照亦然)。
  • 智能体在遍历/搜索/运行时三轴接近满分。这不是骨干差异:GPT-5.4 Mini 与 GPT-5.5 作为 LLM 时随 n 退化、放进 harness 后稳定高分(指令遵循轴除外,n=200 时智能体也退化,Opus 除外)。
  • 由此得出「LLM-hard ⇏ agent-hard」。轨迹解释:智能体写元脚本(meta-script)搬变量、用 grep 定位名字、用 exec() 直接学输出——固定推理量、不随 n 增长的脚本化方案。GPT-5.4 Mini 在 harness 里 n>100 时反超无工具的 GPT-5.5 与 Grok(非指令轴)。
  • 代价注脚(Table A.1):最终运行总开销 28,262 美元,其中 Opus-4.7 智能体 10,407 美元;全部智能体输入 token 约 24 亿。

实验二:工具调用画像 + SWE-bench Verified 相关性(Figure 3、4)。

  • CABRA 上:只有 READ/ANALYZE 的调用数与 token 随 n 在 3/4 轴增长;EDIT 只在指令遵循轴增长。智能体擅长的恰是 UNDERSTAND 多而 EDIT 少的任务(搜索/遍历),开始失败的指令轴则是 UNDERSTAND 与 EDIT 同时增长。
  • SWE-bench Verified 上:随人标难度 L1→L4(L1≤15min … L4≥4h),编辑行数、各类工具调用、token 全部同步上涨——指标联合增长使得仓库基准原理上无法区分「编辑量」与「理解量」。与准确率的点二列相关 r 排名:UNDERSTANDnum -0.200 > ALLTOOLtok -0.178 > EDITtok -0.177 > READnum -0.171 > LinesEdited -0.159 > ANALYZEnum -0.158 > ALLTOOLnum -0.157 > EDITnum -0.151。理解工具调用数是与失败关联最强的指标,超过编辑行数与编辑 token。逻辑回归(控制智能体身份)的似然比统计量给出同序:UNDERSTANDnum 183.63 > UNDERSTANDtok 156.47 > EDITtok 115.01 > LinesEdited 85.10。所有相关都低(预测错误本来就难),但序关系稳定。

实验三:等价代码提取(因果验证)。

  • 任务:两个各有 ℓ 行、其中 d 行行为不同的计算器类,把 ℓ−d 行等价逻辑上移父类(模板方法模式),d 行差异留在子类。关键设计:编辑量随 ℓ 只有 O(ℓ),而需要理解比对的行组合最坏 Ω(ℓ²)。为让等价「行为等价但语法不像」,施加五种变换:变量重命名、交换可交换行、行的分解/合并、乘法分配(3a=a+a+a)、项序交换。
  • 结果一(规模):ℓ∈{5,10,25,50,100,200} 各 50 任务,智能体准确率随 ℓ 骤降,UNDERSTAND 工具暴涨而 EDIT 保持小——与假设一致的因果闭环。
  • 结果二(变换消融,ℓ=50):往无变换基线逐一加入时,多行合并与乘法分配造成最大跌幅(Gemini 尤甚,多跳对齐失败);从全变换基线逐一移除时,去掉变量重命名带来最大准确率提升(全部模型一致;Opus 在 n=200 复验同趋势)——智能体依赖表层命名理解代码。
  • 结果三(差异数):固定 ℓ 改 d∈{1,3,5},准确率随 d 递减。行为保持率超 90%——多数失败不在重构执行而在差异定位(子类留了太多行、找不到单行差异)。告知「恰好只有一处一行差异」后准确率大幅回升(Figure A.20),说明难度主要在最优解搜索空间导航。

这三层如何共同证明论点:受控层证明「编辑量之外存在独立于编辑的理解难度轴」;生态层证明「该轴在真实基准上比编辑量更能预测失败」;因果层证明「只缩放理解量就能让智能体准确率下降」。相关(r 排序)+ 因果(构造任务)双证据,是「理解是瓶颈」这一主张的完整论证形态。

六、效果优势的根源解释

本节分别解释:Thoughts 的测量协议为何能揭示出黑盒方法看不到的规律;CABRA 的设计为何能确立因果而非相关。两篇都是方法学论文,这里的「效果」指方法学效力的根源。

6.1 Thoughts:为什么外化记忆能让持续学习可观测

对比对象:参数化持续学习评测与基于成绩的推断。它们为何曾经有效——在权重即知识的范式里,遗忘只能通过重测旧任务成绩来定义,这是唯一窗口。

baseline 的根本局限:成绩是学习的投影。同一个分数下降,可能是遗忘、可能是新任务本身变难、可能是迁移干扰——投影不可逆,机制不可分。同时,记忆系统类工作(MemGPT 等)虽然外化了记录,但摘要化引入整理误差,且没有任何协议去逐条追踪记录的命运。

因果链:

  1. 方法差异:harness 只给 logs.txt 路径,任何事实必须由脚本建立(论文实验已支持:这是 PRO-LONG 架构的设定);
  2. 机制变化:智能体全部可变状态落在可读文件上,每条思维的写入/修正/丢弃成为可枚举的文件事件,而完整日志提供独立于记忆的裁决证据(协议定义);
  3. 瓶颈缓解:retention/transfer 从「由成绩推断」变成「直接计数」——630 次引用中只有 33 次跨边界、74% 抛弃率这类只有逐条追踪才可得的数字(论文实验已支持);
  4. 指标体现:发现跨骨干不变量(分区而非调和)与表示级修复模式(常量→参数)(论文实验已支持,三个骨干一致)。

反事实推理:如果没有「日志在记忆之外」的设计,笔记的追加式矛盾将无法裁决,智能体将被迫在记忆内部调和或带错前行;如果没有「脚本可执行」的性质,重写时「保留规则、丢弃细节」的分离(u15 的 L6 模拟器保留 5 个游戏规则函数、替换 4 个关卡布局函数)就不会被强制发生——散文版本(3.2 节前身智能体)恰恰做不到,把「移动预算」错标为已证实机制。

外部检索对照(本精读撰写时的检索范围):

相关研究与 Thoughts 的关系对根源解释的影响
PRO-LONG(Fox et al. 2026,arXiv:2607.20064)直接架构前驱,报告 Fable5 97.4% best@2 RHAE支持:程序化记忆架构可行;Thoughts 的增量在测量协议
CL-Bench(Asawa et al. 2026,arXiv:2606.05661)发现全量上下文优于多个记忆系统限定:在 Thoughts 的设定中「全量上下文」即 logs.txt,且不占 prompt——两者兼容而非矛盾
Voyager 技能库(Wang et al. 2023,arXiv:2305.16291)技能只增不减的前提假设挑战/修正:Thoughts 实测 74% 抛弃率,说明该前提至少在 ARC-AGI-3 型环境不成立
可解释性电路追踪(Transformer Circuits,2025)白盒的另一条路线(模型内部 vs 文件外部)补充:两种白盒成本结构迥异,文件白盒每条思维天然留痕
测试时训练(Sun et al. 2024,arXiv:2407.04620)论文自比的「非参数对应物」补充:代码即记忆的 TTT 对应视角

综合判断:「外化→可计数→分区策略与参数化修复被发现」这条链上,1–2 步是协议定义、3–4 步有论文数字直接支持;但「参数化是普遍最优修复」目前只有 m0r0 一个游戏族的三运行证据,属于论文实验支持但样本极小的结论,推广到一般持续学习场景应视为待验证假设。优势成立条件:智能体必须把记忆写为可执行文件且存在独立完整日志;若任务边界会被重访(需要 backward transfer)或环境不允许外化记忆,该协议不适用。

6.2 CABRA:为什么控制变量能确立因果

对比对象:仓库基准上的轨迹相关性分析(SWE-bench Pro 把低准确率归因于编辑量等)。它为何曾经有效——在缺乏受控任务的年代,真实轨迹的相关性是唯一可用的归因线索。

baseline 的根本局限:混淆变量未被控制时,相关系数不可解释。4.3 节直接演示了这一点:L1→L4 上编辑、阅读、分析、测试全涨,任何单一指标都能「解释」难度,也都不能。

因果链:

  1. 方法差异:任务由 DAG 变换从零合成,任务类型与尺寸参数解耦,一次只缩放一条轴(论文实验已支持:6,840 任务 × 控制设计);
  2. 机制变化:难度变量从「代码+任务+编辑量+理解量的联合变化」坍缩为单轴——观察到准确率下降时,归因唯一(协议定义);
  3. 瓶颈缓解:分离出「编辑量」与「理解量」两条独立的难度轴,并用六类分类器把智能体的努力映射到轴上(论文实验已支持:只有 UNDERSTAND 工具在 3/4 轴随 n 缩放);
  4. 指标体现:SWE-bench 上 UNDERSTANDnum 与准确率的相关(-0.200)强于 LinesEdited(-0.159)——序关系在受控任务与真实轨迹两个域一致(论文实验已支持);
  5. 因果闭环:构造理解组合数 Ω(ℓ²) 爆炸而编辑量 O(ℓ) 温和的任务,智能体准确率终于下降(论文实验已支持:Figure 5b/5c)。

反事实推理:若去掉「一次一轴」设计(退回仓库基准),第 2 步失效,第 4 步的相关将退回不可解释的联合上涨——正是 Figure 4(a) 展示的现状。若去掉分类器(只看总 token),UNDERSTAND 与 EDIT 无法分离,-0.200 对 -0.159 的关键差距不可见。

外部检索对照(本精读撰写时的检索范围):

相关研究相似尝试相关结论与 CABRA 的差异对根源解释的影响
SWE-bench Pro(Deng et al. 2026,ICML)用编辑量缩放难度归因智能体失败于编辑更多仓库基准、混淆未控挑战对象:CABRA 证明同一数据下理解工具同样涨、且预测力更强
EquiBench(Wei et al. 2025,EMNLP)程序等价性测 LLM 语义理解模型对语义等价判断有限无工具 LLM、无智能体支持:等价性是理解难点有先例;CABRA 把它变成智能体可缩放轴
CRUXEval(Gu et al. 2024,ICML)代码追踪/执行预测运行时求解是独立能力单函数、无智能体支持:CABRA 的运行时轴即其智能体化延伸
Needle in a Haystack(Kamradt 2023)语料长度缩放测长上下文受控合成可暴露能力极限非代码域、无工具支持(方法相似+结论相近):合成控制范式可迁移到智能体
RefactorBench(Gautam et al. 2025,ICLR)Fowler 型重构任务状态化推理是难点无难度轴控制补充:CABRA 任务同源但补上了缩放维度
(im)paired programming(Balepur et al. 2026a,arXiv:2607.26375,作者自引)人侧研究:智能体提升效率但损害理解人也会因智能体损失理解对象是人非模型佐证:理解瓶颈在人机两侧同时存在,强化问题重要性

综合判断:五步因果链中 1、2 步为设计定义,3–5 步均有论文数字支持,且第 5 步(构造性因果验证)是相关性研究不可能提供的。多研究共同支持的机制:合成受控任务能暴露被工具掩盖的弱点(Needle/bAbI/CRUXEval 先例);仍属推断的部分:UNDERSTAND 调用数与失败之间在 SWE-bench 上仍是相关(r=-0.200,低),因果性只在构造任务内成立;适用边界:CABRA 任务牺牲生态效度(作者自引 de Vries et al. 2020 承认),结论外推到真实仓库需经 4.3 节式的桥接;可能失效条件:若未来智能体发展出把等价性判断也脚本化的工具(如内置语义 diff),理解轴可能如大海捞针般被工具消解——论文自己也以「A Theory of Agents」一节点出这一开放问题。

七、必要知识反推

假设让一个零知识背景的人分别复现这两项工作,最少需要什么?

7.1 复现 Thoughts 的必要知识

领域知识层:

  • 持续学习的问题框架与稳定性—可塑性权衡——否则不知道自己在测什么、四结局对应文献里的哪个量;
  • ARC-AGI-3 的交互界面与 RHAE 计分——否则无法搭建环境、无法解释 99.95% 的含义;
  • task-free 设定的含义——否则不会理解「边界不预告」是特性而非缺陷。

方法论知识层:

  • PRO-LONG 的程序化记忆设计——整个智能体架构直接继承自它;
  • 持续学习分类学(正则化/回放/隔离)——否则得不出「智能体自发采用隔离策略」这一定位结论;
  • ReAct 循环与 Strands SDK——analyzer 的实现载体;
  • 可解释性的两条路线(内电路 vs 外文件)——否则讲不清白盒贡献的边界。

工程知识层:

  • 沙盒隔离(无网络、写入受限、跨游戏不可见)——保证「一切来自脚本」的测量纯度;
  • 日志工程(时间戳边界恢复、每动作关卡号存储)——边界归属是全部计数的前提;
  • 文件级静态比对(函数体相同性判定、import/exec 检测)——四结局的判定算法。

知识融合的关键节点:把「持续学习的四结局分类学」投影到「文件系统的可观测事件」上——这是全文最创造性的一步:引用/复制的判定标准(import、exec 惯用法、函数体相同)必须是懂持续学习语义的人才能设计出来,又必须是懂文件分析的人才能实现。第二个融合点是「边界=关卡切换」的识别:ARC-AGI-3 的游戏结构天然提供了 task-free 持续学习所需的非通告任务流。

7.2 复现 CABRA 的必要知识

领域知识层:

  • Fowler 重构目录——五类基础任务的语义来源;
  • 程序等价性理论(Pitts)与语义对齐(Churchill et al. 2019)——merge 任务的理论地基;
  • 程序理解研究传统(Littman et al. 1987 的心理模型、Maalej et al. 2014 的理解综述、Minelli et al. 2015 的「理解占 SWE 工时 70%」)——把「理解」立为瓶颈轴的领域合法性。

方法论知识层:

  • 合成任务的「定义任务+缩放尺寸」两阶段范式(bAbI/Needle 一脉)——CABRA 的骨架;
  • 长上下文/指令遵循/代码追踪各轴的先行基准——四轴的出处;
  • 点二列相关与逻辑回归似然比——SWE-bench 相关性分析的工具;
  • 定性编码协议(qualitative coding)——六类工具分类的标签来源方法。

工程知识层:

  • DAG 采样算法(泊松分层+几何入边)——程序合成的核心;
  • 黑盒测试判分(50×|V| 用例、规则校验)——客观打分;
  • 小模型分类器工程(Qwen3-4B、无效标签回退到 GPT-4.1、94% 一致率验证)——轨迹标注管线;
  • 沙盒与隔离(Docker 镜像、session_store_sql 禁用、跨智能体通信排查)——评测有效性保障;这条特别有时代特色:OpenAI 披露的评测安全事件直接催生了附录 A.8 的稳健性章节。

知识融合的关键节点:其一是「工具调用分类 × 难度轴缩放」的交叉设计——单看准确率曲线只能知道「智能体没倒」,加上分类器才知道「它把力气花在了哪」;UNDERSTAND 指标是分类学洞察与轨迹工程融合的产物。其二是 Ω(ℓ²) 的构造——把「理解的组合本质」这个理论直觉,翻译成「行数增长时行对组合爆炸」的可执行任务参数化,是理论到实验的关键一跳。

八、论文中可以提取的通用性灵感

灵感一:把状态外化到可读介质,观测就取代了推断。 论文证据:Thoughts 的全部发现(33/630、74%、常量→参数)都来自读文件,而非探针或成绩反推。 推广场景:运维系统把决策依据写成可审计日志而非只留监控指标;组织把隐性知识文档化以便交接分析;科学实验预注册分析计划使结论可核验;个人笔记系统外化思考以便复盘;法律流程要求书面记录使推理可追溯。

灵感二:日志要与记忆分离——完整证据链应独立于可变状态。 论文证据:笔记矛盾从不删除、靠 logs.txt 裁决;agent 因此敢于自由丢弃脚本(丢弃成本只是重推导而非能力丧失)——「选择性遗忘而非灾难性遗忘」的直接前提。 推广场景:数据库的 append-only 审计日志与业务表分离;版本控制系统(git 历史不可变,工作区可变);财务的原始凭证与账簿分层;新闻更正保留原文加注而非静默改稿;实验记录本不撕页。

灵感三:值会随环境改变的量,必须存成参数而非常量。 论文证据:m0r0 镜像方向案例中 def solve(polarity,...) 参数化是唯一有效修复,字典编辑式修复(R4)在下一边界再次失败;Qwen R6 反向案例(参数退化为偏移表)证明该修复是脆弱的、可逆的。 推广场景:配置管理中环境相关值入环境变量而非硬编码;实验代码中种子/路径/超参全部参数化以保可复现;国际化的文案外置;产品设计中用户偏好作为输入而非写死默认值;供应链把价格设为随行就市参数。

灵感四:知识以「可执行形式」存储时,可验证性是自动获得的。 论文证据:散文记忆把错误规则标为 CONFIRMED 后无法检验;脚本记忆跑回放即知对错——同样的知识,表示形式决定了对错是否可暴露。 推广场景:规则引擎把业务规则写成可测代码而非文档散文;简历上的技能(声明)与作品集(可执行证据)之别;政策以可量化条款而非原则宣言发布;数学证明的形式化(Lean)使验证不再依赖同行品读。

灵感五:只增不减的「修正靠追加」,配合外部裁决,也是一种稳健的记忆策略。 论文证据:三个骨干的笔记全部只追加不删改,矛盾留在文件里由日志裁决——这在持续学习语境下等价于保留了完整信念史,使每条思维可追溯。 推广场景:医学病历的追加式记录(新旧诊断并存、检验裁决);wiki 的编辑历史与讨论页;合同修订以附函而非改原文;模型卡片记录历次版本行为变化;对账单逐月累积而非覆盖。

灵感六:评测对象会使用工具时,评测任务必须重新校准——LLM 难度 ≠ 智能体难度。 论文证据:全部四轴上 LLM 随 n 崩、智能体近满分(GPT-5.4 Mini 在 harness 里反超无工具的 GPT-5.5);指令遵循是唯一让智能体也退化的轴(语言→编辑的映射难以脚本化)。 推广场景:教育考试从闭卷笔试到开卷+AI 工具时代的重新设计;驾考从笔试到实际路考;安全渗透测试需覆盖工具增强的攻击者;招聘面试从算法背诵转向系统设计讨论;体育规则的器材进化配套规则修订。

灵感七:要归因失败,就把难度拆成单轴、一次只拧一个旋钮。 论文证据:编辑量与理解量在 SWE-bench 上联合上涨不可区分;CABRA 单轴缩放+构造 Ω(ℓ²) 任务,才把「理解」从相关推向因果。 推广场景:A/B 测试一次只改一个变量;药物临床试验的适应症分层;制造业的 DOE 实验设计;消融实验作为 ML 论文标配;故障排查的二分法定位。

灵感八:表层命名不是语义——依赖命名等于依赖幻觉。 论文证据:移除变量重命名带来最大准确率提升(全部模型一致),说明智能体大量依赖变量名而非行为推断等价性。 推广场景:代码评审不能只看命名好坏要看逻辑;防伪需要超越品牌名的实质验证;自然语言推理不能依赖术语标签而要核查论据;数据清洗警惕同义异名的重复记录;模型评测需防止数据集的记忆性命名泄漏答案。

灵感九:相关性会撒谎,构造性实验是因果的终审。 论文证据:r=-0.200 的相关性证据链之外,论文专门构造了让假设「必须成立与否」直接受审的任务(等价代码提取),准确率应声下跌。 推广场景:医药从流行病学相关到 RCT;材料学从相图经验到第一性原理计算;经济学从面板数据到田野实验;产品从漏斗分析到灰度发布实验;天文学从相关天象到光谱验证。

灵感十:工具调用轨迹是未被充分开采的行为数据。 论文证据:六类分类器让「智能体在哪儿花力气」首次可量化(UNDERSTAND 调用数成为最强失败预测子),分类器本身开源成为社区基础设施。 推广场景:用操作日志刻画员工工作模式而非只看 KPI;用鼠标轨迹分析 UI 可用性;用车队 GPS 轨迹优化物流而非只看油耗;用编辑器遥测改进 IDE 设计;用学生的答题过程数据(而非对错)诊断学习困难。


两篇论文合读的最大启示或许是:智能体研究正在从「考分时代」进入「体检时代」。Thoughts 证明过程可以被完整留痕与计数,CABRA 证明失败可以被单轴归因与因果检验。当评测对象越来越聪明,评测本身必须先变得更深刻——这既是两篇论文的共同立场,也是它们留给后续研究的同一条起跑线。