Target: 2512.24601 "Recursive Language Models" (RLM) · category=agent 同簇主题:long-context degradation / context-rot、agent context-management & memory、context-engineering scaffolds
这组 peers 自然分成三个子簇,分别对应 RLM 论证链上的三个不同节点:
A. 长上下文退化的"问题方"(motivation 簇)。 RLM 的全部立论起点是 context rot——质量随 prompt 变长而陡降,且越语义复杂的任务越早崩 [2512.24601]。这一现象由四篇退化论文从不同角度独立坐实:
B. Agent 上下文管理的"同行方"(同 category=agent 簇)。 这两篇与 RLM 共享 "scaffold 而非重训" 的方法论,但管理对象不同:
C. Context-engineering scaffold 的"工程方"。
退化簇 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 最干净的存在性理由(连完美检索都救不了长度),却没走到符号递归这一步。
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/trim | agent 用 grep/read 自主决定 | ||
| 递归/子调用 | 核心:$\Omega( | P | )$ 可编程子调用 | 无 | 无 |
三者共享 "lazy / 按需访问外部存储" 的 meta-pattern,但只有 RLM 把这一访问做成可编程递归而非单层读取——这是 RLM 相对 blog 的核心 delta [blog-dynamic-context-discovery]。
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)。
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 行为是已有能力的廉价释放"。
攻击点 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}$、信息密集)需要更诚实地圈定。
范式定位:RLM 是 "long-context scaffold" 谱系里把 inference-time-scaling 推到符号递归的极点。 把同簇按 "对长上下文做什么" 排成一条谱系:
RLM 是第 4 档 (blog) 的"重武器版"——同样 lazy,但把"读"升级为"写代码递归地读/变换/再调自己"。它独占的生态位是 information-dense + super-window + long-output 三者同时成立的任务(OOLONG-Pairs 是典型),其他四档都做不到 [2512.24601]。
采用证据(成熟度排序,从高到低):
范式 vs 渐进判定:RLM 自称 "new axis of scale",证据是 1,000 样本 +28%、RL 64k→1M 长度泛化 [2512.24601]。这确实是范式级主张(可训练的递归推理行为),但当前落地成熟度低于它的概念雄心——属于 "范式提案 + 强 PoC",尚非生产范式。
方向 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) 综合裁定。