论文 1 链接:Coding Agent Memory Post-training: Unlocking the Memory Potential of Pre-trained File Operations for Long-Horizon Tasks via Reinforcement Learning 论文 2 链接:Improving Large Language Models for Code through Runtime Program-State Reasoning 发表时间:2026 年 9 月 机构:论文 1(CAMG/CAMG-RL)为京东(JD.com)单一企业研究,13 位作者全部来自 JD.com,含方聪(Cong Fang)等;论文 2(Comet-9B)为 UC Santa Barbara 与 Microsoft 合作——第一作者 Hongwei Li 来自 UCSB,Spandan Garg 与 Yufan Huang 来自 Microsoft,属高校出研究方向、企业提供合作者与工程支持的典型产学合作,团队仅 3 人 领域标签:cs.AI / cs.CL / cs.SE(Agent 记忆、代码大模型后训练)
CAMG × Comet-9B:文件即记忆与程序状态推理的 Agent 训练新范式
如果把「训练一个更强的代码 Agent」想象成应试教育,直觉的做法是题海战术——直接针对目标行为做训练:想要记忆就造记忆工具,想要修 bug 就喂修复轨迹。本篇精读的两篇论文不约而同地背叛了这条直觉路线,却都拿到了更好的成绩:
- CAMG-RL(京东):想训练 Agent 用记忆,却发现「专用的记忆工具」模型根本不会用——把工具撤掉、只留一个普通 shell,让纯任务奖励自己把文件操作「泡」成记忆行为,4B 模型的长程任务成绩反而追平了 35B。
- Comet-9B(UCSB + 微软):想提升修 bug 成绩,却不训练写补丁,而是训练两个看似旁门的辅助任务——「构造能暴露 bug 的输入并预测执行结果」和「推理 bug 的触发条件与传播链」——SWE-bench Pro 成绩反而从 24.35% 涨到 30.51%。
两篇论文的共同命题是:在后训练阶段,与其直接优化目标行为,不如优化一个模型本就熟悉(在预训练分布内)或者能迁移(与目标同构)的中间能力。下面按九个部分展开。
一、论文背景
1.1 长程任务与 Agent 记忆:从「是什么」讲起
现代 LLM Agent(智能体)的工作方式是循环式的:读环境 → 思考 → 发一个动作(工具调用)→ 读反馈 → 再思考。**长程任务(long-horizon task)**指的是这种循环要转几十上百轮、交互历史加起来超过模型上下文窗口(context window)的任务——比如在一个代码库里连续修复多个 issue、跨多天做文献调研。一旦历史超出窗口,早期信息就被截断或挤出,Agent 就「失忆」了。
解决失忆的思路叫 Agent 记忆(agent memory):把重要信息存到上下文之外的地方(一个文件、一个向量库、一个记忆系统),需要时再取回来。业界已有大量记忆系统:Mem0 把记忆存进向量数据库按语义相似度检索;Letta(前身 MemGPT)用专门的记忆分页机制管理长期记忆;AgeMem 则更进一步,把「存储/检索/更新/摘要/删除」六种长短期记忆操作做成工具,用强化学习(RL)教模型何时调用。强化学习在这里的含义是:不告诉模型每步该做什么,只给最终任务成败的奖励,让模型自己试出好策略——这是本文第一个关键概念。
第二个关键概念是 surprisal(惊异度)。它来自信息论,衡量模型看到一个 token 时的「意外程度」,数值上是负对数概率,单位 nats/token。模型在预训练语料里见过无数次的东西(比如 cat、grep 这类 shell 命令)surprisal 很低;几乎没见过的东西(比如某个系统特有的 memory_store 工具名)surprisal 很高。surprisal 高意味着这个动作落在预训练分布之外——模型天生就「不认识」它,采样出来的概率极低。
第三个概念是 程序状态(program state)与前置/后置条件。程序在运行的每一刻都有一个状态:变量取了什么值、执行到哪一行。**前置条件(precondition)**是「 bug 会被触发」所需满足的输入/状态条件(比如「当数组长度为奇数时」);**后置条件(postcondition)**是操作执行后应成立的状态(「排序后数组应非降序」);**传播链(propagation chain)**则描述错误状态如何从触发点经过一层层计算,最终变成可观测的错误行为(崩溃、错误输出)。人类工程师调试时做的正是这套推理:先想 bug 什么时候触发,再想它怎么暴露出来,最后反推怎么修、怎么写回归测试。而现有 SWE(软件工程)训练只奖励最终补丁对不对,从不强制模型显式刻画这套推理——模型可以反复跑测试拿到具体输出,但「符号级的断言与因果解释」从未被当作训练目标。
1.2 两条各自遇到的困境
- 记忆方向:此前的 RL 记忆训练(如 AgeMem)依赖预定义记忆工具 + 领域专属短程环境。CAMG 作者发现,把这套搬到一个统一的长程环境里,261,941 个模型响应中记忆工具只被尝试了 53 次——模型几乎「碰都不碰」这些工具,RL 无从强化一个从不发生的动作。
- 代码方向:SWE-bench 谱系的训练(SFT 在修复轨迹上、RL 在测试通过奖励上)都在优化「直接产出补丁」。模型学会的是「改哪、怎么改」的模式匹配,但对「这个 bug 为什么会发生、什么条件下会发生」缺乏显式理解——表现为修复幻觉频发、写不出能复现 bug 的测试。
两篇论文分别从这两个困境出发,给出了结构相似的反直觉答案。
二、论文定位和关联工作
2.1 记忆工具谱系:从外挂系统到内生策略
| 谱系 | 代表工作 | 核心思想 | 与 CAMG 的关键区别 |
|---|---|---|---|
| 训练免费记忆系统 | Mem0、Letta Code | 向量库/分页记忆 + 固定检索管线,模型权重不动 | 记忆行为不随任务奖励优化;CAMG 证明其长程成绩反而低于冻结底座之上的学习方法 |
| 工具式学习记忆 | AgeMem(arXiv:2601.01885) | 6 个 LTM/STM 记忆工具 + 三阶段渐进 RL + 逐步 GRPO | 记忆接口是新造的工具,落在预训练分布外;CAMG 用 surprisal 实验证明这类工具在长程任务中几乎无法被 RL 采出 |
| 学习式上下文压缩 | CompactionRL(arXiv:2607.05378) | 把「写摘要」变成策略的一部分,与任务动作在同一个最终奖励下联合 PPO 训练 | 摘要仍是有损压缩;CAMG 用文件无损保存证据/中间态,差距集中在证据密集任务 |
| 文件/索引即记忆 | AutoMEM(arXiv:2606.04315)、MemexRL(arXiv:2603.04257)、HORMA(arXiv:2606.11680) | 用平面文本文件或索引库做记忆,Agent 主动管理存取 | AutoMEM 是训练免费的 harness 发现(文件自管理跨场景最稳);MemexRL/HORMA 仍引入自建索引/层级导航机制。CAMG 最激进:零新增接口,只有 shell,记忆行为完全从任务奖励里长出来 |
CAMG 在这条谱系上的定位:第一个把「记忆完全等价于预训练文件操作、零专用接口」作为明确设计原则,并用 surprisal 先验分析 + 因果干预实验闭环论证的工作。
2.2 代码训练谱系:从补丁监督到能力训练
| 谱系 | 代表工作 | 核心思想 | 与 Comet-9B 的关键区别 |
|---|---|---|---|
| SWE 环境与 SFT | SWE-Gym 等 | 从真实 issue 修复轨迹做监督微调 | 只学「改代码」这一目标行为,不刻画 bug 的触发与传播 |
| SWE RL | 各类 outcome RL(GRPO/PPO 在测试通过奖励上) | 用最终测试结果做奖励 | 奖励只编码「补丁对不对」,失败条件与传播过程仍是隐式的 |
| 测试生成 | SWT-Bench 相关工作(AssertFlip 等) | 生成 fail-to-pass 回归测试 | 多为提示工程/专用流程;Comet 把「推理落成可执行回归测试」做进训练目标 |
| 中间行为信号 | SpecTune(arXiv:2604.11770) | 推理时用局部后置条件做调试信号 | 推断时框架、不动权重;Comet 是把程序状态推理训练进模型 |
| 形式轨迹训练 | 符号执行轨迹 CPT(ICML 2026) | 用符号执行引擎生成的 bug 轨迹做继续预训练,8B 超 32B | C 程序、形式侧、预训练语料;Comet 面向仓库级 agentic 场景与符号+具体双任务 |
Comet-9B 的定位:第一个用 agentic 程序状态推理 RL 训练的模型——任务设计系统覆盖「符号×具体、反向×正向、agent×非 agent」三个维度,并在补丁生成、回归测试、安全 PoC 三个下游验证迁移。
2.3 两篇论文共同的空白地带
两条谱系此前各自演进,但都默认「训练目标应当尽量贴近最终目标行为」。两篇论文恰好从两个方向证明:中间能力(分布内接口、可迁移表征)比目标行为本身更值得作为训练目标——这是它们在更大图景中的共同坐标。
三、问题定义
3.1 CAMG:把「记忆」抽象为「分布内的状态外置动作」
具体问题:如何让单一策略在历史超出上下文窗口的长程任务中自主建立、检索、复用记忆?
论文的核心洞察是把问题抽象为:RL 只能强化策略「能发出」的动作。形式化地说,PPO/GRPO 的梯度只会流向采样概率非零的行为;一个 token 级 surprisal 极高的工具调用(整条动作的联合概率趋近于零)在 rollout 里几乎不会出现,永远得不到正反馈。于是问题转化为:
给定:预训练模型(其分布内动作空间包含 shell 文件操作)、episode 持久的工作区、只在任务完成时给奖励的环境; 求解:一个策略,使其文件读写动作构成有效的「存-取-用」记忆链; 约束:不引入任何专用记忆工具、不给记忆行为任何专属监督或奖励。
这个抽象的精妙之处在于把「接口设计问题」变成了「先验选择问题」:与其问「什么记忆工具最好」,不如问「哪个既有接口已在预训练分布内且表达力足以承载记忆」。答案显然是文件系统——每个代码模型都见过海量 cat/grep/重定向文本。
3.2 Comet:把「修 bug」抽象为「程序状态的可执行表征」
具体问题:如何让模型在仓库级任务中更好地修复 bug、写回归测试、生成安全 PoC?
核心洞察:这三件事共享同一个深层结构——都必须回答「程序在什么状态下会出错、错误如何变成可观测行为」。补丁生成需要知道 bug 何时触发才修得准;回归测试需要构造满足触发条件的输入;PoC 生成本质上就是一次带恶意意图的回归测试。于是问题转化为:
给定:可交互的代码仓库与可执行环境; 训练:模型对「触发前置条件 → 操作 → 预期后置 → 传播链」的符号推理能力,以及「构造暴露行为差异的具体输入并预测执行结果」的具体值推理能力; 检验:这种训练(两个辅助任务均不直接训练目标行为)能否迁移到三个下游。
两个抽象的共性:都把「学什么」从目标行为上移了一层,移到模型已有先验支撑(CAMG)或与多目标同构(Comet)的中间表征上。
四、问题解法
4.1 CAMG-RL:四环境 + 单一 shell 接口 + 双粒度异步 PPO
CAMG 环境套件。四个长程环境覆盖不同记忆压力:
| 环境 | 任务形态 | 记忆压力来源 |
|---|---|---|
| Shop | 多约束长程购物决策 | 早期约束(尺寸/预算)在后期决策时已滑出窗口 |
| Coding | 跨多轮的代码任务 | 早期探索结论(哪个文件在哪)需跨上下文边界复用 |
| DeepResearch | 多源信息检索综合 | 检索到的事实需在写报告时仍可用 |
| AutoResearch | 迭代式自主实验 | 实验中间态(跑过什么、结论是什么)需跨轮保存 |
每个环境提供:episode 持久工作区(一个 episode 内文件不丢)+ 唯一的 shell_command 文件接口(与各环境原生任务接口并存)+ 上下文替换机制:当历史超出窗口时,环境只提醒策略自己写一个 .agent_memory/CONTINUATION.md 文件(上限 8,192 字节),新上下文以该文件为起点——环境从不代写、也从不清空,写不写、写什么完全由策略决定,且这一动作像其他动作一样被采样和训练。
CAMG-RL 算法。类比:多轮 agent RL 里既有 Turn-PPO(轮级优势,稳但粗——一轮里每个 token 共享一个优势)也有 token 级方法(细但方差高)。CAMG-RL 用双粒度 PPO 取两者之长:优势估计在响应级(每个采样 token 拿到同一个归一化的轮级优势,长响应贡献更多损失项),裁剪在 token 级。配合完全异步的 rollout-训练流水线,四个环境联合训练。关键机制是 GAE(广义优势估计)跨响应传播:后续任务的奖励可以回溯到之前的记忆读写动作——第 40 步因为读了第 5 步存的文件而成功时,第 5 步那次 cat <<EOF 写文件的动作会得到正梯度。记忆行为没有任何专属监督或奖励,全部从下游任务奖励学出。
先验诊断(论文的动机实验,也是方法合理性的支点):在冻结底座上测动作 surprisal——文件系统操作在四种意图下仅 0.076–1.193 nats/token(store 1.193 / retrieve 0.076 / revise 0.252 / remove 0.272);而 AgeMem 的专用工具在自己的调用格式下每种意图都更高;混合变体中最贵的位置是工具名 token,达 6.371 nats/token,而原生 shell 命令名仅 0.252。两个对照排除了「只是名字陌生」的解释:把 shell_command 改名为无意义名 tool_kappa,surprisal 至多变化 0.013;换调用格式也只能挽回很小一部分差距。结论:差距来自专用工具整体落在预训练分布之外。
4.2 Comet-9B:两个互补的程序状态推理任务 + 四阶段课程
任务一:Buggy 输入-输出推理(非 agent、具体值、反向+前向)。给定问题规格与一个含 bug 的程序,模型要构造一个能暴露 bug 程序与隐藏正确实现行为差异的具体输入(反向推理),并预测错误程序在该输入下的执行结果(前向推理),预测必须与真实执行一致。这个任务训练的是「bug 在具体取值下如何表现」。
任务二:前置-后置条件推理(agent、符号级)。模型在可交互仓库中持续维护一个七节推理文件:有效输入/状态域、bug 触发前置条件、操作、预期后置条件、证据接地的 bug 传播链、测试分区与边界、修订证据。最后把整套符号推理实例化为一个可执行的回归测试。验证用四变体执行:错误程序±补丁 × 有无新测试,只有当新测试在未修复版本上失败、修复后通过,且既有测试不被破坏时,推理才算正确落地。这个任务训练的是「bug 在什么条件下触发、如何传播」的符号刻画。
四阶段训练课程:
| 阶段 | 内容 | 作用 |
|---|---|---|
| ① Math RL + Code RL | NuminaMath-1.5 数学 + TACO 竞赛编程,GRPO | 建立通用推理与代码能力底座 |
| ② 混合 SFT | 8,418 条 issue 修复轨迹(2,048 任务)+ 1,138 条前后置推理轨迹(617 任务)+ 3,247 条 buggy-I/O 轨迹(372 任务),教师为 GPT-5.5 与 Qwen3.5-397B,超 65,536 token 的轨迹剔除 | 把两个程序状态任务与目标行为混训 |
| ③ 前置-后置 agent RL | 在可执行仓库环境中,执行检查奖励与 LLM 推理评委奖励等权,GRPO | 强化符号级 bug 刻画 |
| ④ Buggy-I/O RL | 非 agent 设定下的执行验证奖励 | 强化具体值级执行预测 |
两个 RL 阶段都不训练写补丁——这是设计声明,也是后面实验要检验的迁移假设。
4.3 两套解法的结构对照
| 维度 | CAMG-RL | Comet-9B |
|---|---|---|
| 不直接训练的目标行为 | 记忆工具调用 | 补丁生成 |
| 用来承载的中间能力 | 预训练内的 shell 文件操作 | 程序状态推理(符号+具体) |
| 奖励 | 纯任务成败,无记忆专属奖励 | 执行验证 + 推理评委(辅助任务上) |
| 关键机制 | GAE 跨上下文回溯到记忆动作 | 四变体执行把符号断言钉进现实 |
| 共同赌注 | 中间能力会自发服务目标 | 中间能力会迁移到目标 |
五、评估指标与实验证据
5.1 CAMG-RL:主结果、机制证据与迁移
主指标:四环境各 128 个测试任务(共 512 个)的成功率等权平均。机制指标:存-取-用完整记忆链率、surprisal、因果干预。迁移指标:SWE-bench Verified 与 MLE-bench Lite(外部环境,检验文件操作习惯是否泛化为通用工作组织能力)。
| 方法 | Shop | Coding | DeepResearch | AutoResearch | 平均 |
|---|---|---|---|---|---|
| 冻结 Qwen3.5-4B | 11.6 | 10.9 | 36.7 | 10.2 | 17.4 |
| Mem0(训练免费) | 15.6 | 14.8 | 37.5 | 10.9 | 19.7 |
| Letta Code(训练免费) | 12.6 | 14.8 | 32.0 | 11.7 | 17.8 |
| AgeMem(6 工具+RL) | 16.7 | 26.6 | 28.1 | 29.7 | 25.3 |
| CompactionRL(学习式压缩) | 97.5 | 19.5 | 50.8 | 24.2 | 48.0 |
| CAMG-RL-4B | 97.1 | 26.6 | 55.5 | 38.3 | 54.4 |
三个关键读数:
- vs CompactionRL +6.4pp(54.4 vs 48.0),10,000 次配对 bootstrap 的 95% CI 为 [3.3, 9.5],差距集中在 Coding 与 AutoResearch——恰恰是最需要保存证据与中间态的证据密集任务,支持「文件无损 vs 摘要有损」的解释。5 次独立重训均值 55.3±2.9 vs CompactionRL 47.1±3.5,区间 [52.4, 58.2] 与 [43.6, 50.6] 不重叠,排除单次训练的运气。
- vs AgeMem +29.1pp。机制上:训练后 CAMG-RL 的完整「存-取-用」链率从训练前段 8.0% 升至末段 20.9%(且这是在强制 CONTINUATION.md 之外的自愿使用);AgeMem 在 261,941 个响应中仅尝试记忆工具 53 次且从未完成一条链——RL 想强化也强化不了从不发生的动作。
- 因果干预:在轨迹第一次上下文替换处,把已保存的记忆文件置空,平均成功率掉 14.1pp;换成等长但不匹配的记忆内容,掉 11.5pp。这排除了「文件只是成功的伴随物」的解释——记忆内容驱动后续成功。
消融:去掉记忆动作上的梯度(不切断行为、只切断学习信号),平均掉到 21.1%,接近冻结底座——证明提升确实来自「任务奖励回溯塑形记忆动作」这条通路;只用 CONTINUATION.md 一个文件评估,降到 41.8%,说明自发记忆文件独立贡献了 12.6pp。
外部迁移:CAMG-RL-4B 在 SWE-bench Verified 达 15.8%(冻结 35B-A3B 为 15.6%)、MLE-bench Lite 4.5% 持平 35B-A3B;CAMG-RL-9B 在 SWE-bench Verified 达 27.6%,超过冻结 122B-A10B 的 22.0%。4B 训练后追平 35B、9B 超 122B——「组织工作区」这种能力一旦学会,跨环境、跨规模地值钱。
5.2 Comet-9B:三下游与逐阶段归因
主基准:SWE-bench Pro(731 个任务,覆盖 Python/Go/JavaScript/TypeScript,mini-sWE-agent 400 步);辅助:SWT-Bench Verified(433 任务,生成 fail-to-pass 回归测试);泛化:CyberGym(300 个 Level-1 安全任务,验证无安全训练下的迁移)。
SWE-bench Pro(补丁生成,两辅助任务均不训练此事):
| 模型/阶段 | 成绩(%) |
|---|---|
| Qwen3.5-9B Base | 1.23 |
| Qwen3.5-9B Instruct | 24.35 |
| Pure SWE SFT(只在修复轨迹上 SFT) | 16.01 |
| SWE + Buggy-I/O SFT | 24.21 |
| Mixed SFT(+两个程序状态任务) | 23.26 |
| Buggy-I/O RL(单项) | 26.54 |
| Pre-Post RL(单项) | 26.81 |
| Comet-9B(全课程) | 30.51(223/731;Python 39.47 / 非 Python 25.38) |
对照公开榜单:超过 Kimi K2 Instruct(27.67%)、逼近 GPT-5.2(29.94%),仍低于 Gemini 3 Flash(34.63%)。注意 Pure SWE SFT(16.01)反而低于 Instruct 起点(24.35),而加入两个辅助任务后回到 23.26——在目标行为数据之外混入「理解性」数据,直接修复了 SFT 的退化。
SWT-Bench Verified(回归测试生成,与前置-后置任务直接同构):
| 模型/阶段 | 成绩(%) |
|---|---|
| Qwen3.5-9B Instruct | 27.02 |
| Pure SWE SFT | 9.01 |
| SWE + Buggy-I/O SFT | 5.08 |
| Mixed SFT | 18.71 |
| Buggy-I/O RL | 24.71 |
| Pre-Post RL | 44.80 |
| Comet-9B | 45.50 |
45.50% 追平 GPT-4o + AssertFlip 的 45.5%,远超 Claude 3.5 Sonnet + OpenHands 的 27.7%(但仍低于 GPT-5-mini 的 62.4%)。Pre-Post RL 单项把 SWT 从 18.71 拉到 44.80(+26.0pp)——同构迁移最直接的证据。
CyberGym(安全 PoC,零安全专项训练):Mixed SFT 6.00% → Pre-Post RL 11.33%(34/300)→ Comet-9B 10.67%(32/300,较同 SFT 模型 +4.67pp);直接做 Buggy-I/O RL 停在 6.00%。安全 PoC 依赖长传播链与复杂解析,正是符号推理的用武之地——Pre-Post 贡献最大。
5.3 证据汇总:两篇论文的主张-证据对照
| 论文 | 核心主张 | 支撑证据 |
|---|---|---|
| CAMG-RL | 分布内文件操作 + 纯任务奖励 ⇒ 自发记忆 | 主表 +6.4pp(CI 显著);surprisal 6.371 vs 0.252;链率 8.0→20.9% vs 53/261,941;干预 −14.1pp;去梯度 −33.3pp;跨环境迁移 |
| Comet-9B | 程序状态推理训练 ⇒ 多下游迁移 | SWE-Pro 24.35→30.51;SWT 18.71→44.80(同构迁移 +26.0pp);CyberGym 6.00→10.67(零样本迁移);单任务 RL 对照(26.54/26.81)证明两个任务互补 |
六、效果优势的根源解释
6.1 CAMG-RL:为什么「不造工具」反而赢
因果链(每步标注证据来源):
- 专用记忆工具落在预训练分布之外 → 模型采样该动作的概率趋近于零【论文实验已支持:surprisal 6.371 nats/token vs 原生命令名 0.252;nonce 改名对照至多变 0.013,排除命名因素】。
- RL 的梯度只能流向被采样的动作 → 分布外工具在 rollout 中几乎不出现,永远得不到强化【论文实验已支持:AgeMem 261,941 个响应中仅 53 次尝试、0 条完整链;这是策略梯度法的数学性质】。
- 文件操作是分布内动作 → 从第一轮训练起就高频出现,任务奖励可以经 GAE 回溯到记忆读写【论文实验已支持:去掉记忆动作梯度即掉到 21.1%,证明这条学习通路承载了主要提升】。
- 文件相对摘要是无损的 → 在需要精确证据的任务上拉开差距【论文实验支持:vs CompactionRL 的优势集中在 Coding(26.6 vs 19.5)与 AutoResearch(38.3 vs 24.2);「无损」本身是机制推断,属阅读者推测但与数据一致】。
- 4B 追平 35B 的原因【阅读者推测】:「把工作组织成文件」是预训练中已被大规模演示的行为模式,RL 只需重新加权而非从零学习,因此小模型也能获得接近大模型的记忆行为;论文的 surprisal 与迁移数据与此一致,但「参数量差距为何被抹平」未被直接分解。
反事实检验:论文自带两组——撤掉专用工具(AgeMem→CAMG 设定,+29.1pp);保留行为但切断梯度(−33.3pp)。两组共同把「接口先验」与「奖励回溯」钉死为两个必要条件。
6.2 Comet-9B:为什么「不练补丁」反而更会修
因果链:
- 现有 SWE 训练只编码最终结果 → 模型从不被要求刻画失败条件与传播【论文动机部分论证;外部证据:arXiv:2609.04909 的幻觉研究发现模型经常错认触发测试、生成的测试缺失 bug 触发条件】。
- 前置-后置任务把「从 bug 反推触发谓词、正向解释传播、落成回归测试」变成显式优化目标 → 与 SWT-Bench「生成失败转通过测试」的要求直接同构【论文实验已支持:Pre-Post RL 单项 18.71→44.80,是全表最大单项跳变】。
- 对补丁生成的迁移来自「知道程序何时会失败」这一理解【论文实验支持的推断:两个 RL 任务都不训练写补丁,却分别带来 26.54/26.81 的 SWE-Pro 成绩,全课程达 30.51;「理解→修复」的因果方向是合理解读但非直接证明】。
- 两个任务互补:具体值执行预测补充跨语言泛化(非 Python 21.51→25.38 由 Buggy-I/O RL 贡献),符号断言主攻传播链场景(CyberGym 上 Pre-Post 贡献 6.00→11.33)【论文实验已支持】。
- 【阅读者推测】SFT 阶段的修复也值得注意:Pure SWE SFT 16.01 低于 Instruct 24.35,混入两个理解性任务后回到 23.26——程序状态数据可能起到了对抗「模式匹配式修复」的正则化作用;论文未直接检验此机制。
6.3 外部检索与交叉验证
围绕两条关键机制,本次共执行四轮检索(agent memory RL / file-based memory;program state reasoning / precondition training;surprisal 与分布外动作;CompactionRL 与 SWE 训练谱系),结果汇总:
| 研究 | 相似尝试 | 相关结论 | 与本文的差异与边界 | 对根源解释的影响 |
|---|---|---|---|---|
| AutoMEM(arXiv:2606.04315) | 训练免费横评 8 个记忆系统 + 5 场景 | 平面文本文件 + Agent 自管理存取取得最佳跨场景排名,结论是记忆性能取决于给 Agent 存取的主动控制权 | 训练免费 harness 评测,非 RL 训练 | 方法不同、结论相近:独立支持「文件即记忆」路线,强化 CAMG 根源解释的普适性 |
| MemexRL(arXiv:2603.04257) | 索引式经验记忆 + RL 联合优化读写 | 外部索引记忆 + RL 管理,比摘要式更不损失信息 | 自建索引/解引用机制(新增接口) | 补充:同样认为无损外置优于压缩,但走的正是 CAMG 质疑的「新接口」路线——说明新接口并非必然失败,需配合充分探索机制 |
| HORMA(arXiv:2606.11680) | 文件系统式层级记忆 + RL 训练导航检索 | 层级组织 + RL 检索在长对话任务中大幅省 token 且性能更好 | 记忆构造靠专门模块 | 支持「文件系统结构 + RL」的有效性,补充组织维度 |
| AgeMem(arXiv:2601.01885) | 6 个记忆工具 + 三阶段 RL + 逐步 GRPO | 在其自建 5 个基准上有效提升 | 环境更短程、接口是训练时自带;在 CAMG 的长程统一环境中崩塌(53/261,941) | 限定条件:工具式学习记忆并非原理上错误,而是对「环境 × 接口先验」的组合敏感——长程+纯任务奖励下探索不足即失效 |
| CompactionRL(arXiv:2607.05378) | 学习式上下文压缩,已部署于 GLM-5.2 训练管线 | SWE-bench Verified +5.5~7.0pp | 压缩路线的当前最强代表,被 CAMG 反超 6.4pp | 对照:证明学习式压缩本身有效(CAMG 中它是最强 baseline),CAMG 的增量来自「无损文件」对「有损摘要」的相对优势,且集中在证据密集任务 |
| SPEAR(arXiv:2509.22601) | agentic RL 的探索-利用平衡 | 辅助工具调用奖励对「接触不熟悉分布」至关重要 | 训练技术侧 | 机制侧支持:印证「分布外动作在纯任务奖励下探索不足」是 agentic RL 的普遍问题,AgeMem 在 CAMG 环境的失败是该问题的一个实例 |
| Look Before You Leap(arXiv:2605.16143) | 任务导向 RL 是否损害探索 | 发现任务 RL 会降低探索覆盖率、把错误恢复率压到零 | 探索评测视角 | 补充 CAMG 论点的另一面:任务 RL 强化已有行为、抑制未探索行为,进一步解释 53/261,941 |
| SpecTune(arXiv:2604.11770) | 用局部后置条件做 APR 的调试信号 | 中间行为信号改善故障定位与修复 | 推断时框架,不改权重 | 方法相似(后置条件)+ 结论相近:从推理侧独立验证「程序状态断言有用」,Comet 把它做成了训练目标 |
| 符号执行轨迹 CPT(ICML 2026) | 用 ~3,200 条 bug 符号轨迹继续预训练 8B 模型 | 违规检测 +17.9pp,8B 超 32B | C 程序、函数级、预训练侧 | 结论相近的最强外部证据:训练「bug 如何发生」的显式表征可迁移且能以小胜大,与 Comet 的 SWT/安全迁移同型 |
| 幻觉研究(arXiv:2609.04909) | 分析 APR 中间产物幻觉 | 中间产物更准通常伴随修复更成功,但并非总是 | Defects4J、832 bug 上的实证 | 支持 + 限定:证明「理解 bug」确与修复相关(支持 Comet 前提),同时提示理解→修复的映射不完美(限定迁移强度) |
| Evident(arXiv:2606.15122) | LLM 程序行为推理 vs 形式分析 | 主张 LLM 的行为推理解释不足以支撑「无 bug」裁决 | 静态告警分诊场景 | 互补视角:不否认程序状态推理的价值,但提醒自然语言推理链需要执行/形式验证接地——Comet 的四变体执行恰是这种接地 |
在本次检索范围内未发现:直接复现「surprisal 先验筛选动作接口再决定 RL 训练接口」这一完整决策流程的第三方工作——CAMG 的先验诊断方法论目前看是独特的,其普适性尚待验证。同样未发现与 Comet 完全同构的「前后置 agent RL」独立复现。
6.4 综合判断与未决问题
得到多项研究共同支持的机制:
- 「文件/文本 + Agent 主动控制」是记忆的有效载体(CAMG + AutoMEM + MemexRL + HORMA,训练与训练免费两侧都有证据);
- 「显式训练 bug 触发/传播表征可迁移到下游」有多方向支持(Comet + SpecTune + 符号轨迹 CPT);
- 「任务 RL 无法强化采样不到的动作、且会抑制未探索行为」有独立探索研究佐证(SPEAR、Look Before You Leap)。
仍属合理推测的部分:CAMG 的 4B 追平 35B 机制、Comet 中「理解→修复」的因果方向、混合 SFT 缓解退化的正则化解释。
可能的失效条件:CAMG 的结论依赖「预训练中文件操作密集」这一先验——对非代码底座(文件操作 surprisal 未必低)未必成立;纯任务奖励塑形记忆需要 GAE 能跨很远的前后动作建立信用,若任务奖励更稀疏或噪声更大,记忆链可能学不出来。Comet 的迁移依赖辅助任务与目标「同构或共享深层结构」——若下游与程序状态推理无关(如纯重构、样式任务),增益应当消失;且幻觉研究提示理解与修复的关联并非必然,理解质量本身需要执行验证把关。
七、必要知识反推
假设一个零知识的人要完成这两项工作,最少必须掌握什么?
7.1 领域知识层
- Agent 与上下文窗口的交互机制(不理解「历史超出窗口后信息被截断」,就无法把记忆问题形式化为跨边界信息保持);
- shell/文件系统的完整操作面(CAMG 的设计前提是知道文件操作能覆盖「建立-修订-检索-复用」全链条,含 heredoc 写文件、grep/cat 读文件这类具体命令形态);
- 程序语义学的前置/后置条件与传播概念(Comet 的七节推理文件的每一节都对应一条经典程序分析概念;四变体验证矩阵直接来自「fail-to-pass / pass-to-pass」的回归测试语义);
- SWE 评测体系(SWE-bench / SWT-Bench / CyberGym 各自考什么、mini-SWE-agent 与 SWE-Agent 的差异——不知道这些就无法设计能区分方法优劣的评测)。
7.2 方法论知识层
- 策略梯度/RL 的采样-强化耦合性质(这是 CAMG 全部论证的理论地基:梯度只在被采样动作上定义);
- 信息论 surprisal 及其与预训练分布的关系(把「模型会不会用某接口」变成可测量的量;nonce 改名与格式对照的实验设计也需要先验地理解混杂因素);
- PPO/GAE 的优势传播与信用分配(「双粒度」设计只有在理解轮级估计稳而粗、token 级细而方差高之后才可能提出);
- GRPO/RLVR 与课程训练(Comet 的四阶段顺序——先通用推理、再混入辅助任务 SFT、再两个 RL——需要知道各阶段各解决什么);
- 相关记忆/记忆 RL 与 SWE 训练的研究谱系(AgeMem/CompactionRL/Mem0/Letta 既是 baseline 也是对照假设的来源;不知道它们就发现不了「接口在分布外」这个洞)。
7.3 工程知识层
- episode 持久工作区与上下文替换的沙箱实现(环境必须做到「文件不丢、上下文会换」,否则记忆无从谈起;CONTINUATION.md 的 8,192 字节上限与「环境不代写」的纪律都是工程决断);
- 完全异步的多环境 RL 训练系统(四环境联合异步训练的工程实现是 CAMG-RL 的隐性门槛);
- 可执行仓库环境与教师轨迹生产(Comet 需要 8,418 条教师轨迹的合成、65,536 token 的过滤阈值、四变体执行验证的编排;执行检查与 LLM 评委等权配比的奖励工程);
- 配对 bootstrap 显著性与多次重训的方差报告(CAMG 的 10,000 次分层 bootstrap 与 5 次重训是结论可信的保障)。
7.4 知识融合的关键节点
两篇论文的创造性都不在单点知识,而在融合节点上:
- CAMG 节点一:RL 采样机制 × 信息论测量。把「策略梯度只作用于已采样动作」这条 RL 性质,与「surprisal 度量动作分布内外」这条信息论工具拼接,得到「用 surprisal 预判哪个接口能被 RL 学会」的设计准则——接口选择从工程审美问题变成可测量问题。
- CAMG 节点二:文件系统 × 记忆语义。看出「写/改/搜/复用文件」与「存/改/取/用记忆」在操作语义上同构,从而零新增接口地承载记忆。
- Comet 节点一:程序分析概念 × 可执行验证。前置/后置/传播链这些符号概念本身廉价(模型可以空谈),但四变体执行把它们钉在「测试真的失败又通过」的现实上,使符号推理变成可奖励的训练信号。
- Comet 节点二:能力同构分析 × 训练课程。识别出补丁/回归测试/PoC 三下游共享程序状态推理这一深层结构,再按「具体值→符号」「SFT→RL」组织课程,让辅助任务的收益逐级传导到全部下游。
八、论文中可以提取的通用性灵感
灵感一:训练目标应当落在预训练分布内,而不是最新潮的接口上
- 核心思想:后训练(RL)是「重新加权已有行为」而非「创造新行为」;一个能力再好,如果其触发动作落在模型先验之外,RL 也几乎无法把它练出来。接口选择应先测量先验,再决定是否引入。
- 论文证据:专用记忆工具名 token surprisal 6.371 vs 原生命令 0.252 nats/token;261,941 个响应仅 53 次尝试 vs 文件操作从第一轮即可被强化;CAMG-RL 反超 AgeMem +29.1pp。
- 推广场景:① 给企业 Agent 选工具集时,优先复用员工/模型常见的界面(邮件、表格、文件系统)而非自研 DSL;② 机器人操作技能训练优先借用预训练中高频的运动原语;③ 教育/培训设计——新行为应锚定学习者已有习惯动作;④ 数据库/BI 工具的自然语言入口选用户既有词汇而非新造术语。
灵感二:想优化目标行为,先优化与目标同构的中间能力
- 核心思想:当目标行为难以直接奖励(信号稀疏、易被模式匹配攻破)时,寻找与多个目标共享深层结构的「理解性任务」,把它做成显式优化目标——同构保证迁移,多目标共享保证泛化。
- 论文证据:Pre-Post RL 不训练写测试之外的任何目标行为,却把 SWT 从 18.71 拉到 44.80(同构迁移),并把 SWE-Pro 从 24.35 推到 30.51、CyberGym 从 6.00 到 10.67(跨域迁移);两个辅助任务均带来 SWE-Pro 单项提升(26.54/26.81)。
- 推广场景:① 法律 AI 先训练「要件-事实-证据链」推理而非直接判案;② 医疗诊断模型先训练病理机制传播链而非直接开方;③ 自动驾驶先训练「情境先决条件→预期后果」预测;④ 金融风控先训练「风险因子→传导路径」刻画而非直接打分。
灵感三:无损外置优于有损压缩(当证据密集时)
- 核心思想:摘要/压缩必然丢信息;把原始证据无损外置、建立索引按需取回,在「后续步骤依赖精确细节」的任务上是结构性更优的状态管理方式。
- 论文证据:CAMG-RL 对 CompactionRL 的优势集中在证据密集的 Coding(26.6 vs 19.5)与 AutoResearch(38.3 vs 24.2);外部 MemexRL、AutoMEM 从不同设定得出一致结论。
- 推广场景:① 长会议/长项目的知识管理(原始记录+索引优于层层纪要);② 科学实验记录(保留原始数据与中间态);③ 客服/运维工单系统(挂接原始日志而非仅摘要);④ 多智能体协作的工作交接。
灵感四:用「可执行落地」给符号推理加接地
- 核心思想:让模型产出符号断言(前置条件、传播链、计划、承诺)容易被「听起来对」的空谈糊弄;要求同一推理被实例化为可执行产物并用多场景变体验证,才能把空谈变成可奖励、可学习的信号。
- 论文证据:Comet 的七节推理文件必须落成回归测试并通过四变体(buggy±补丁 × 有无新测试)执行;执行奖励与推理评委等权的 RL 使 SWT 提升 26pp。外部 Evident(arXiv:2606.15122)从告警分诊角度给出同型结论:LLM 行为推理需要形式/执行接地。
- 推广场景:① 项目管理中计划须转化为带验收标准的任务卡;② 合规审查中风险判断须落成可测试的控制点;③ 科研假设须登记预注册的可证伪预测;④ 产品需求须落成可执行验收用例。
灵感五:把「学会组织工作」当作可迁移的元能力投资
- 核心思想:「组织自己的工作空间/状态」是一项跨任务、跨环境值钱的元能力;一旦训练获得,其收益会溢出到从未见过的环境,且能部分抹平模型规模差距。
- 论文证据:CAMG-RL 只在四个自建环境训练,SWE-bench Verified 上 4B 追平冻结 35B-A3B(15.8 vs 15.6)、9B 超 122B-A10B(27.6 vs 22.0)。
- 推广场景:① 个人职业发展——方法论与工作组织能力的复利高于单点技能;② 组织管理——知识管理基础设施的投入跨项目回报;③ 多任务模型的训练预算分配——留一部分给「如何工作」而非「做什么」。
附录:两篇论文速览卡
| CAMG / CAMG-RL | Comet-9B | |
|---|---|---|
| 一句话 | 让纯任务奖励把预训练文件操作泡成记忆 | 训练程序状态推理而非补丁生成 |
| 机构 | 京东(JD.com) | UCSB + Microsoft |
| 底座 | Qwen3.5-4B / 9B | Qwen3.5-9B Base |
| 机制关键词 | shell_command、CONTINUATION.md(≤8,192B)、双粒度异步 PPO、GAE 回溯 | 七节推理文件、四变体执行验证、Math/Code RL→混合 SFT→Pre-Post RL→Buggy-I/O RL |
| 主结果 | 四环境平均 54.4%(vs CompactionRL 48.0、AgeMem 25.3) | SWE-Pro 30.51%、SWT 45.50%、CyberGym 10.67% |
| 最硬的单点证据 | 记忆置空干预 −14.1pp(因果性) | Pre-Post RL 单项 SWT 18.71→44.80(同构迁移) |
| 共同启示 | 不直接优化目标行为,优化能迁移/分布内的中间能力 | 同左 |