Recursive Language Models

agent 2512.24601 — Cross-paper Synthesis

Recursive Language Models — L3 (本篇 vs 相关篇) #

Target: 2512.24601 "Recursive Language Models" (RLM) · category=agent 同簇主题:long-context degradation / context-rot、agent context-management & memory、context-engineering scaffolds

1. 相关论文 #

这组 peers 自然分成三个子簇,分别对应 RLM 论证链上的三个不同节点:

A. 长上下文退化的"问题方"(motivation 簇)。 RLM 的全部立论起点是 context rot——质量随 prompt 变长而陡降,且越语义复杂的任务越早崩 [2512.24601]。这一现象由四篇退化论文从不同角度独立坐实:

B. Agent 上下文管理的"同行方"(同 category=agent 簇)。 这两篇与 RLM 共享 "scaffold 而非重训" 的方法论,但管理对象不同:

C. Context-engineering scaffold 的"工程方"。


2. 本篇 vs 相关论文的 delta #

Delta-1:从"诊断/缓解退化" 到 "把退化的输入根本踢出网络" #

退化簇 A 的四篇都在 神经网络内部 解决问题——2404.16811 改训练数据分布 [2404.16811],2601.15300 建议 context ≤ 40% 容量做运营约束 [2601.15300],2510.05381 提出 retrieve-then-recite 把长输入压成短 prompt [2510.05381]。RLM 的新意是把整篇 prompt 绑成 REPL 变量、root 只看常数大小 metadata,使 root 窗口与 $|P|$ 完全解耦(至多 $K/c$ 次 root 迭代)[2512.24601]

值得注意:2510.05381 的 retrieve-then-solve 其实是 RLM 的退化特例——它是一次性、单层的 "recite→short prompt",而 RLM 是持久 REPL 中可编程、可递归的版本。2510.05381 给出了 RLM 最干净的存在性理由(连完美检索都救不了长度),却没走到符号递归这一步。

Delta-2:对 "compaction" 的态度——同向批判,但解法分叉 #

RLM 与 CMV (2602.22402) 对 compaction 的批判几乎逐字同向:RLM 说 compaction 对 dense-access 任务有损(OOLONG-Pairs 仍是 0.1)[2512.24601],CMV 说 autocompaction 损失 98% 会话状态 [2602.22402]。但解法分叉:

维度RLM (2512.24601)CMV (2602.22402)dynamic-context blog
长上下文存放处REPL 变量(整篇不动)DAG 节点 + 三遍裁剪后的 JSONL磁盘文件
是否有损无损(root 永不读全文,但全文可被代码访问)结构无损(剥 tool 输出,保留 user/assistant)无损(截断改为 lazy-load)
谁决定读什么root LM 写代码自主决定用户手动 snapshot/branch/trimagent 用 grep/read 自主决定
递归/子调用核心:$\Omega(P)$ 可编程子调用

三者共享 "lazy / 按需访问外部存储" 的 meta-pattern,但只有 RLM 把这一访问做成可编程递归而非单层读取——这是 RLM 相对 blog 的核心 delta [blog-dynamic-context-discovery]

Delta-3:与 SideQuest 的正面对照——"不放进窗口" vs "放进后再语义驱逐" #

SideQuest 与 RLM 在同一战场(agentic、FRAMES/BrowseComp、KV cache 线性膨胀)给出相反的工程哲学

二者的共识非常深刻:都拒绝启发式重要性估计(attention score),都主张让模型用语义理解管理上下文 [2602.22603]。SideQuest 的 "non-monotonic token utility"(第 t 轮无用、第 t+n 轮复活)[2602.22603] 恰恰也是 RLM 不做有损压缩的根本理由——RLM 用 "永不丢弃 + 按需重读变量" 绕开了这个问题,而 SideQuest 用 "可逆性差但显存友好的物理驱逐" 直面它。矛盾点:RLM 把全文留在 CPU 侧的 REPL(显存零负担但靠多次 sub-call 重算),SideQuest 优化的恰是 GPU KV cache 显存(+83.9% 吞吐)[2602.22603]。两者解决的是同一问题的不同资源维度,可以正交叠加(见 §5)。

Delta-4:是否 train 一个新东西 #

2404.16811 训练一个新 base 权重(FilM-7B)[2404.16811];SideQuest LoRA 微调 215 条 trace [2602.22603];RLM 主打 无需训练即可用现成 frontier 模型,但又给出 1,000 样本就能 +28% 的 post-train 证据 [2512.24601]。三者训练样本量级(1.75M vs 215 vs 1,000)的巨大差异,反映了"修基座" vs "教一个轻量行为"的根本区别——RLM 和 SideQuest 都属于后者,押注 "scaffold 行为是已有能力的廉价释放"。


3. 可攻击面 #

攻击点 1:RLM "comparable cost" 的结论被自己的长尾数据反驳。 L2 明确承认只有 median 更便宜,平均成本因 outlier trajectory 更贵,95th percentile 运行时极长 [2512.24601]。在 2602.22603 关心的生产 serving 视角下,吞吐与 tail latency 才是关键 [2602.22603]——RLM 全程 blocking/sequential sub-call 的实现会让 tail 灾难化。"comparable cost" 在 batch serving 语境下站不住脚,只在 per-answer API 报价的中位数上成立。

攻击点 2:把退化归因于 "compaction lossy",但退化簇证明退化更深层。 RLM 的论证链 step 2 说 compaction 救不了是因为它有损 [2512.24601]。但 2510.05381 表明:即使零干扰、完美检索、证据紧贴问题,纯长度仍掉 50% [2510.05381]。这意味着退化不仅是"信息被丢",还有"长序列本身让 attention/位置编码失效"——2601.15300 的 RoPE aliasing / attention dispersion 给了机制 [2601.15300]反诘:RLM 的 sub-LM 自己也要吃 ~500K 字符的 chunk [2512.24601],按 2601.15300 的 43.2% 悬崖,这些 sub-call 的输入若超过 sub-model 容量的 ~40% 同样会退化。RLM 没有报告 sub-call 输入长度 vs 准确率的曲线,等于把退化问题递归地推给了下一层而未证明下一层免疫。

攻击点 3:FINAL-tag 脆弱性是范式级而非实现级缺陷。 L2 承认 ~16%/~13% 的 distillation turn 误用 FINAL()/FINAL_VAR(),且模型能在 REPL 里建好正确答案却丢弃它、返回错误的 root 答案(E.2)[2512.24601]。这与 2412.10079 的发现共振:结构化输出/few-shot 会引发反直觉崩溃(Llama-longlora+CoT 掉到 ~0%)[2412.10079]。RLM 的 "信任你读不全的变量" 契约本质上是更激进的结构化输出依赖,可攻击性更高。

攻击点 4:依赖强编码能力 = 适用面窄。 RLM 明确说弱编码模型(Qwen3-8B 原生、Qwen3-Coder 高 depth)会因 syntax error 传播而越递归越差 [2512.24601]。相比之下 CMV 对 backbone 零要求 [2602.22402],SideQuest 仅需 215 条 trace LoRA [2602.22603]。RLM 把 "上下文管理" 这件本该通用的事,绑死在 "会写无 bug 的递归 Python" 这个强前提上。

攻击点 5:缺与"治疗派"的同台对比。 RLM 把基座重训路线(2404.16811 式)归入 related work 一笔带过 [2512.24601],但从未在同一 benchmark 上和 FilM 类位置鲁棒模型对比。一个 IN2 训练过的、位置均匀的强模型,可能在 32K 内就不需要 RLM 的开销——RLM 的优势区间(>$2^{14}$、信息密集)需要更诚实地圈定。


4. 生态位 #

范式定位:RLM 是 "long-context scaffold" 谱系里把 inference-time-scaling 推到符号递归的极点。 把同簇按 "对长上下文做什么" 排成一条谱系:

  1. 改基座(2404.16811):重训权重消除位置偏置——根治但贵(300 GPU-day + 1.75M GPT-4 调用)[2404.16811]
  2. 运营约束(2601.15300):实测悬崖、规定 context ≤ 40% 容量——不改任何东西,只是"别越线" [2601.15300]
  3. 有损压缩/裁剪(compaction、CMV 2602.22402、SideQuest 2602.22603):进窗口后压缩或驱逐——省显存/省 token,但承担信息丢失风险 [2602.22402] [2602.22603]
  4. lazy 外部存储 + 按需读取(dynamic-context blog):不进窗口,文件系统按需拉 [blog-dynamic-context-discovery]
  5. 符号递归 over 外部存储(RLM 2512.24601):不进窗口 + 可编程 $\Omega(|P|^2)$ 子调用 + 输出拼接突破输出上限。
  6. RLM 是第 4 档 (blog) 的"重武器版"——同样 lazy,但把"读"升级为"写代码递归地读/变换/再调自己"。它独占的生态位是 information-dense + super-window + long-output 三者同时成立的任务(OOLONG-Pairs 是典型),其他四档都做不到 [2512.24601]

    采用证据(成熟度排序,从高到低):

    • dynamic-context blog:已在 Cursor 生产环境 A/B(46.9%)[blog-dynamic-context-discovery]——最成熟。
    • 2404.16811:开源权重 + 代码(microsoft/FILM)[2404.16811]
    • CMV:开源 CLI 工具,但仅 single-user n=1 case study [2602.22402]
    • RLM:开源参考实现(alexzhang13/rlm),但 blocking 实现、FINAL 脆弱、未 async [2512.24601]——研究原型成熟度。
    • SideQuest:代码未公开,但有 SGLang 真实 serving 数据 [2602.22603]

    范式 vs 渐进判定:RLM 自称 "new axis of scale",证据是 1,000 样本 +28%、RL 64k→1M 长度泛化 [2512.24601]。这确实是范式级主张(可训练的递归推理行为),但当前落地成熟度低于它的概念雄心——属于 "范式提案 + 强 PoC",尚非生产范式。


    5. 未探索方向 #

    方向 1:RLM × SideQuest 的资源正交叠加。 RLM 省 root 窗口但每个 sub-call 仍在 GPU 上建 KV cache;SideQuest 正是管理 agentic KV cache 的 [2602.22603]。在 RLM 的 rlm_query 子循环内部嵌 SideQuest 式辅助驱逐线程,可同时拿到 "root 窗口不膨胀"(RLM)+ "sub-loop KV 显存不膨胀"(SideQuest),SideQuest 的 L2 本就把自己定位为可组合进 RLM/Context Fold 子任务 [2602.22603]。这是最现成的 hybrid。

    方向 2:sub-call 输入的退化感知调度。 把 2601.15300 的 43.2% 悬崖 [2601.15300] 和 2510.05381 的 "纯长度伤害" [2510.05381] 作为 RLM llm_query 分块器的硬约束——自动把每个 sub-call 输入控制在 sub-model 容量的退化阈值以下,而非现在拍脑袋的 ~200K/500K 字符。本质是给 RLM 的递归分解加一个"退化预算"目标函数。

    方向 3:position-robust sub-model + RLM 叠加。 在 RLM 的 sub-LM 位置换成 IN2 训练过的位置鲁棒模型(2404.16811 式 [2404.16811])。RLM 解决 super-window,FilM 解决 sub-call 内部的 lost-in-the-middle/between——两条本被 RLM §6 对立起来的路线(改架构 vs scaffold)其实在分层结构里互补:root 用 scaffold,leaf 用 robust base。

    方向 4:用 lost-in-between 重新设计 RLM 的输出拼接。 RLM 靠把 10,731 个 pair 拼进变量来突破输出上限 [2512.24601]。但 2412.10079 证明多证据"间距"会单调损害推理 [2412.10079]——当 RLM 把分散的 sub-call 结果重新拼回去给上层消费时,是否重新引入了 lost-in-between?没人测过 RLM 拼接结果的"证据间距"对最终正确率的影响,这是一个直接的 ablation gap。

    方向 5:把 CMV 的 DAG 谱系作为 RLM 的可复用递归记忆。 RLM 每次 query 从零初始化 REPL [2512.24601];CMV 的不可变快照 + 分支 [2602.22402] 可让多个相关 query 复用同一棵已建好的中间变量树(如已分类好的 OOLONG 标签),把 RLM 的 amortized 成本进一步压低——直击 §3 攻击点 1 的长尾成本问题。

    方向 6(跨簇 open,留给 L4):退化是任务属性还是模型属性? 2412.10079 [2412.10079]、2510.05381、2601.15300 三篇都把退化当作既定事实去诊断/绕开,RLM 也是。但若退化在足够强的下一代基座上消失,RLM 的 super-window 价值仍在、context-rot 价值则削弱。这个"根本性困难"超出单篇 vs 单篇范围,宜在 L4/topic(long-context) 综合裁定。