Dream-RSI: Recursive Self-Improvement through Evolving Worlds
论文阅读:Dream-RSI——通过演化世界实现递归式自我改进
论文标题:Dream-RSI: Recursive Self-Improvement through Evolving Worlds
作者:Tong Zheng, Xidong Wu, Zheng Zhang, Zhankui He, Chaoyi Zhang, Benjamin Coleman, Ruoqiao Wei, Di Bai, Haolin Liu, Rui Liu, Xue Wang, Yue Zhuan, Wang-Cheng Kang, Renkai Xiang, Heng Huang, Xinwu Cheng, Yunsong Guo
作者单位:Google、Google DeepMind、University of Maryland, College Park、University of Virginia
发表位置:arXiv preprint,cs.CL,v1,2026-09-14
arXiv 编号:2609.14858
原文链接:https://arxiv.org/abs/2609.14858
项目主页:https://dream-rsi.com
官方仓库:https://github.com/zhengkid/Dream-RSI
主题:Recursive Self-Improvement、LLM Agent、探索策略、Scientific Discovery、Replay Simulator
核心问题:如何利用已经产生的搜索历史,以低成本反复评估和改进“如何探索”的策略,而不需要每修改一次探索策略就重新执行一次昂贵的真实搜索?
1. 引言:真正需要改进的,不一定是解题 Agent
很多使用 LLM Agent 进行科学发现、算法优化或代码优化的系统,都可以抽象成一个不断重复的过程:
提出候选方案
↓
实际运行 / 评测
↓
得到结果和反馈
↓
继续修改
↓
再次运行
↓
……
当任务足够困难时,这个过程可能持续成百上千次。
论文将这种过程称为 long-horizon discovery,即长时间跨度的发现过程。
随着 discovery 规模变大,一个越来越重要的问题出现了:
Agent 下一步究竟应该探索哪里?
例如,现在已经存在十几个候选方向:
- 应该继续优化目前最好的方案吗?
- 应该回到之前某个失败的方向重新尝试吗?
- 应该新开一个完全不同的分支吗?
- 应该同时运行多少个方向?
- 某个分支连续若干次没有提升后,应该停止吗?
- 整个搜索什么时候应该结束?
这些都不是“具体怎么解决科学问题”的决策,而是:
如何组织搜索过程本身。
论文把负责这部分行为的机制称为 exploration policy(探索策略)。
因此,这篇论文研究的对象并不是普通意义上的:
如何让 LLM 生成更好的代码
而是:
如何让系统学会更好地组织 LLM 的搜索过程
也就是一种更高层次的 meta-exploration。
2. 为什么优化探索策略很困难?
一种简单做法是人工提前写好一个固定策略,例如:
开 10 个并行分支
每个分支最多继续优化 10 次
始终优先继续当前最好方案
达到预算后结束
很多现有 discovery 系统实际上都采用类似的固定探索规则。
问题在于,随着搜索不断进行,什么样的策略最合适可能会发生变化。
比如搜索早期可能应该大量开新分支:
广泛探索
而在发现几个有希望的方向后,策略可能应该变成:
减少新分支
集中深入已有方向
如果某个方向长时间没有进展,又可能需要重新增加探索。
固定策略无法根据已经积累的 discovery experience 自动发生这种变化。
2.1 那为什么不直接在线优化 exploration policy?
另一个自然想法是:
policy_1
↓
实际跑完整个 discovery
↓
看结果
policy_2
↓
再跑一次 discovery
↓
看结果
policy_3
↓
再跑一次
但这会遇到两个核心问题。
第一,exploration policy 的反馈非常延迟。
一个具体候选程序好不好,运行一下 benchmark 很快就知道。
但一个“探索策略”好不好,往往必须让它控制几十甚至几百次 proposal-evaluation cycle,才能看到最终效果。
也就是说:
candidate solution
→ 快速得到 feedback
exploration policy
→ 必须控制很长一段搜索
→ 才能得到 feedback
第二,exploration policy 本身的搜索空间也非常大。
策略可以修改:
branch selection
branch depth
branch width
parallelism
pruning
stopping
recovery
因此,如果每尝试一种 exploration policy 都要重新运行完整 discovery,优化成本会非常高。
Dream-RSI 的核心就是试图解决这个问题。
3. 核心想法:Discovery History 本身就是一个 Simulator
论文提出的关键观察非常简单:
一次 discovery 跑完之后,其实已经产生了一棵包含大量搜索结果的树。
例如:
root
├── A
│ └── A1
│ └── A2
├── B
│ └── B1
│ └── B2
└── C
└── C1
每一个节点都对应一次真实的 generation + evaluation。
节点中不仅保存候选方案,还保存:
代码或生成工件
workspace 状态
evaluation diagnostics
score
历史上下文
假设第一次真实运行时,系统探索顺序是:
A → A1 → B → A2 → B1 → C
那么搜索结束之后,这些结果已经全部存在磁盘上。
此时如果想测试另一个 exploration policy:
先 B
再 B1
然后 A
最后停止
实际上并不需要重新调用 coding agent,也不需要重新运行 evaluator。
因为:
B 的结果已经存在
B1 的结果已经存在
A 的结果已经存在
新的 policy 只需要在历史树上重新选择节点即可。
因此作者提出:
把已经完成的 discovery history 当成一个 replay simulator。

【Figure 2(Discovery history as a replay simulator)。重点观察:真实在线搜索只运行一次,但不同的 exploration policy 可以在已经记录好的 discovery tree 上选择不同分支、不同顺序、不同并行度和不同停止位置。】
这里所谓 simulator 并不是重新训练了一个神经网络 World Model。
它实际上是:
已经发生过的真实搜索空间
+
这些节点对应的真实执行结果
因此更准确地说,它是一个 经验型 replay simulator。
它只能模拟已经被真实探索过的区域,不能凭空预测历史树之外会发生什么。
但它有一个非常重要的优势:
回放过程中不需要重新执行昂贵的 coding agent 和 evaluator。
于是,一次昂贵的 online discovery 可以支持大量廉价的 off-policy evaluation。
4. Dream-RSI 整体框架
Dream-RSI 将整个系统组织成一个不断循环的过程:
Online Explore
↓
生成新的 Discovery Tree
↓
加入历史
↓
Construct Replay Simulator
↓
Dreaming-based Policy Improvement
↓
得到新的 Exploration Policy
↓
重新 Online Explore
↓
……
也就是:
真实探索
→ 历史积累
→ 离线回放
→ 改进探索策略
→ 再次真实探索

【Figure 1(Dream-RSI 整体框架)。重点观察三个阶段:Online Explore、Construct Replay Simulator、Dreaming-based Policy Improvement,以及改进后的 policy 如何重新进入下一轮真实探索。】
论文特别强调:
系统只修改 exploration-policy code。
以下组件始终保持固定:
discovery agent
evaluator
underlying model
execution interface
因此 Dream-RSI 并没有对 Gemini 进行梯度训练,也没有修改 coding model 权重。
发生递归自我改进的是:
如何调度和组织搜索的策略
而不是:
解决具体任务的基础模型
5. Discovery Tree 是如何构造的?
Dream-RSI 首先将 discovery 过程显式表示成一棵树。
根节点 root 表示初始 workspace。
每个非根节点对应一次新的 generation-evaluation attempt。
假设:
A
└── A1
└── A2
那么:
A从初始 workspace 开始;A1从 A 保存的 workspace 继续;A2从 A1 的 workspace 继续。
每个节点保存:
| 内容 | 含义 |
|---|---|
| inherited history | 从父节点继承的历史 |
| filesystem snapshot | 当前 workspace 状态 |
| generated artifact | Agent 生成的代码或方案 |
| evaluation diagnostics | evaluator 给出的诊断 |
| score | 当前方案得分 |
因此,一个 branch 本质上就是一个不断迭代优化的轨迹。
6. Exploration Policy 到底控制什么?
在任意时刻,policy 可以选择:
root
+
当前所有 leaf nodes
其中:
- 选择
root:创建一个新的探索方向; - 选择某个 leaf:继续深入这个已有方向。
假设当前有:
root
├── A → A1
├── B → B1 → B2
└── C
那么当前可选择节点可能是:
root
A1
B2
C
如果 policy 选择:
[root, A1, B2]
则意味着同时执行:
新开一个 branch
继续 A
继续 B
论文允许最多 W 个 worker,因此一次 action 实际上不是一个节点,而是一个 batch:
C = {node_1, node_2, ..., node_k}
k <= W
这样 exploration policy 同时决定了两个东西:
探索哪里
+
同时探索多少个地方
因此 parallelism 本身也是 policy 的一部分。
7. Online Exploration
第 t 轮真实搜索使用当前 exploration policy:
pi_t
同时可以访问此前所有已经完成的历史:
H_(t-1)
但新的 discovery tree:
T_t
仍然从一个新的 root 开始构造。
每一个 decision round 中:
exploration policy
↓
选择若干 leaf / root
↓
分配给 W 个 worker
↓
discovery agent 生成新方案
↓
evaluator 实际运行并打分
↓
得到新的 child node
因为 coding agent 的生成具有随机性,所以 online transition 是随机的:
即使从完全相同的 workspace 开始,再次调用 discovery agent,也可能产生不同结果。
Online rollout 在两种情况下结束:
policy 主动选择 empty batch
或者:
达到最大 decision round K1
最终得到新的树:
T_t
随后加入历史集合:
H_t = H_(t-1) + T_t
接下来进入 offline dreaming。
8. Offline Replay:让新的 Policy 在历史里“做梦”
假设目前已经完成三轮在线搜索:
T1
T2
T3
那么 replay simulator pool 就包含:
H3 = {T1, T2, T3}
现在可以提出一个新的 exploration policy:
pi_new
然后分别让它在:
T1
T2
T3
上重新进行一次搜索。
但这一次没有真的执行 coding agent。
8.1 Replay 并不会一次性把整棵树给 Policy 看
这是方法中一个重要细节。
虽然 simulator 内部保存着完整历史树,但 policy 只能看到:
当前按照自己的决策已经 reveal 出来的 prefix。
也就是说,它不能直接偷窥:
某个还没有访问过的节点未来得分是多少
否则 replay 会发生严重的信息泄漏。
假设历史树实际上是:
root
├── A(score=1)
│ └── A1(score=10)
└── B(score=5)
└── B1(score=6)
最开始 policy 只能看到:
root
如果它选择打开 A:
root
└── A(score=1)
此时它仍然不能看到 A1 的 score=10。
只有再次决定继续 A,simulator 才 reveal:
A1(score=10)
因此 replay 尽量模拟真实在线搜索中:
决策
→ 得到结果
→ 再决策
的因果顺序。
8.2 Replay 中的 transition 是确定性的
与 Online Exploration 不同:
Online:
选择节点
→ 真正调用 Agent
→ 生成新的结果
Replay 中:
Replay:
选择节点
→ 返回历史中已经保存的 child
所以 replay 不生成新的 discovery outcome。
如果一个 branch 历史上是:
A → A1 → A2
那么 replay policy 在 A 上继续探索时,只可能 reveal A1。
再继续则 reveal A2。
它无法生成:
A → A_new
因此 replay simulator 只覆盖:
已经实际探索过的 realized search space。
9. Replay 中到底评价 Exploration Policy 的什么?
论文希望一个好的 exploration policy 同时做到三件事:
找到更好的 solution
+
少做无效尝试
+
尽量利用并行计算
因此 replay objective 可以写成:
Replay Score
=
Best Discovery Quality
- beta1 * Number of Attempts
+ beta2 * Parallelism
第一项:
Best Discovery Quality
表示最终找到的最好节点有多好。
第二项:
Number of Attempts
惩罚探索成本。
如果一个 policy 为了找到同样的方案,需要:
100 次 generation
另一个只需要:
20 次 generation
显然后者更好。
第三项奖励并行性。
论文使用:
Number of Attempts / Number of Decision Rounds
衡量平均每一轮同时处理多少个 attempt。
例如:
Policy A:
100 个 attempt
100 个 sequential rounds
Policy B:
100 个 attempt
10 个 parallel rounds
如果最终效果相同,那么系统更偏好 Policy B。
因此 Dream-RSI 学到的不只是:
探索哪个 branch
还包括:
什么时候 batch 多个任务并行执行
10. Policy 是如何被真正修改的?
Dream-RSI 中存在一个固定的 LLM-based policy-development agent。
它负责修改 exploration policy 的可执行代码。
论文附录给出的 prompt 明确要求它只修改:
OptimalPolicy.solve(...)
而不能直接解决科学任务本身。
也就是说它面对的问题不是:
怎样写一个更快的 Lasso solver?
而是:
根据当前已经观察到的搜索历史,
接下来应该:
- 新开哪些 branch?
- 哪些 branch 应继续?
- 哪些 branch 应停止?
- 一轮应该并行多少任务?
- 整体什么时候结束?
Policy 本身因此是一段真正可执行的 orchestration code,而不仅仅是一段自然语言提示。
10.1 Prefix-only 约束
Policy-development prompt 中反复强调:
Prefix-only
也就是 policy 只能依据已经 reveal 的 information 决策。
允许使用:
observed nodes
baseline score
legal actions
branch structure
当前已经发生的失败 / 成功
不允许使用:
unrevealed scores
future result
true optimum
预先写死 winning cell id
这样 replay evaluation 才能近似:
如果这个 policy 当时真的在线运行,它会做出什么选择。
10.2 Policy Revision
假设当前 policy 是:
pi_t
离线阶段首先让它在所有历史 world 上运行:
T1
T2
...
Tt
得到 replay trajectories 与 scores。
policy-development agent 阅读这些结果,分析:
哪些决策有效
哪些分支过早停止
哪些探索浪费预算
什么时候应该增加 width
什么时候应该 deeper
什么时候应该 batch
然后产生:
pi_t^1
再在完全相同的历史 worlds 上 evaluate。
得到结果后继续修改:
pi_t^2
pi_t^3
...
整个流程可以理解为:
Policy
↓
Replay
↓
Feedback
↓
LLM 修改 Policy Code
↓
Replay
↓
Feedback
↓
继续修改
论文把这个过程称为 dreaming-based policy improvement。
11. 为什么称为 Recursive Self-Improvement?
假设最初策略是:
pi_1
第一轮真实搜索:
pi_1
→ T1
然后 T1 被转换成 replay world:
T1
→ simulator
离线 dreaming 后得到:
pi_2
再真实运行:
pi_2
→ T2
此时 simulator pool 变成:
{T1, T2}
然后:
{T1, T2}
→ improve policy
→ pi_3
随后:
pi_3
→ T3
整个循环就是:
pi_1
↓
T1
↓
pi_2
↓
T2
↓
pi_3
↓
T3
↓
...
这里存在一个正反馈循环:
更好的 policy
→ 产生新的 discovery experience
→ simulator pool 变丰富
→ 提供更多 policy improvement feedback
→ 得到新的 policy
因此作者将它称为:
Recursive Self-Improvement at the meta-exploration layer。
这里被递归改进的是 exploration controller,而不是基础 LLM 权重。
12. Appendix 中的实际 Policy 设计
论文附录进一步给出了 replay-based policy improvement 使用的完整 prompt。
其中一个重要设计是单一的:
beta
参数。
beta 控制 policy 的探索激进程度。
高 beta 倾向于:
更大的 width
更深的探索
更有耐心
更弱的 pruning
低 beta 倾向于:
更少的 probe
更早停止 stagnation branch
更强 pruning
但 beta 在一次真实 episode 中保持固定。
也就是说:
episode 内
beta 不根据 observation 动态变化
离线 replay 时则会 sweep 多个 beta,观察:
quality
work
parallelism
之间的 trade-off。
然后在下一轮 online rollout 前,根据历史结果选择新的默认 beta。
因此系统的适应发生在:
不同 recursive cycles 之间
而不是在同一次 episode 中不断临时修改 beta。
13. Online Discovery Agent 的 Prompt
论文附录还给出了在线 discovery agent 的 prompt。
它要求 Agent 在提出新方案之前:
- 阅读完整历史;
- 同时分析成功和失败;
- 区分:
- idea 本身有问题;
- idea 是好的,但实现存在 bug;
- 避免反复围绕已经饱和的局部方向做微小修改;
- 当历史搜索过度集中时,主动寻找结构不同的新机制。
因此 discovery agent 本身也会读取历史。
但是这和 Dream-RSI 的 replay simulator 是两个不同层次的历史利用方式。
普通 history conditioning 是:
history
→ 放入 Agent context
→ 帮助 Agent 下一次生成
Dream-RSI 是:
history
→ 构造成可交互的 replay environment
→ 用来评价 exploration policy
也就是说,Dream-RSI 的核心并不是简单地:
“把历史喂给 Agent。”
而是:
“把历史变成一个可以反复运行不同 controller 的环境。”
这也是论文在 Related Work 中强调的区别。
14. 实验设置
作者在三个领域共测试了 8 个 discovery tasks:
| 领域 | 任务 |
|---|---|
| Algorithm Engineering | Lasso Regularization Path |
| Mathematical Optimization | Sum-Difference |
| Mathematical Optimization | Autocorrelation Inequalities |
| Mathematical Optimization | Circle Packing |
| GPU Kernel Engineering | VGG16 |
| GPU Kernel Engineering | LayerNorm |
| GPU Kernel Engineering | ConvDiv |
| GPU Kernel Engineering | ConvMax |
核心 controlled baseline 是:
Recursive Fixed Exploration
它和 Dream-RSI:
使用相同 discovery agent
使用相同 evaluator
使用相同 initialization
拥有相同 resource constraints
从完全相同的 exploration policy 开始
唯一关键区别是:
Recursive Fixed Exploration:
policy 永远不变
Dream-RSI:
每轮结束后利用 replay simulator 改进 policy
因此这个 baseline 主要用来隔离:
exploration-policy self-improvement 本身带来的影响。
15. 初始 Exploration Policy
两个方法第一轮使用完全相同的人工设计策略:
启动多个独立 workspace
+
每个 workspace 反复优化自己的候选方案
也就是一种简单的 parallel refining。
对于 Gemini-3.1 Pro:
10 个 parallel workspaces
最多 11 个 refinement steps
因此单轮上限:
10 * 11 = 110 calls
对于 Gemini-3.7-Flash:
32 个 workspaces
最多 20 个 refinement steps
对应:
32 * 20 = 640 calls
Dream-RSI 在第一轮和 baseline 完全一样。
真正的差异从第二轮开始出现。
16. 实验一:Lasso Regularization Path
第一个任务是算法工程中的 Lasso Regularization Path。
目标不是简单求一次 Lasso,而是实现一个:
正确
+
尽可能快速
的完整 regularization-path solver。
Discovery 阶段采用 SimpleTES 相同的 17 个 synthetic instances。
最终泛化能力则在 6 个 held-out dataset 上测试:
Gisette
RCV1
DNA
Leukemia
Colon
Duke Breast
论文首先检查数值正确性。
如果 solver 无法满足 correctness requirement:
score = 0
只有正确的程序才比较运行效率。
16.1 主要结果
平均运行时间越低越好。
| 方法 | Model | Discovery Calls | 六个 Held-out 数据集平均 Runtime |
|---|---|---|---|
| sklearn | - | - | 44180.3 ms |
| glmnet | - | - | 13767.5 ms |
| SimpleTES | GPT-OSS-120B | 51,200 | 3804.8 ms |
| Recursive Fixed Exploration | Gemini-3.1-Pro | 550 | 3587.1 ms |
| Dream-RSI | Gemini-3.1-Pro | 317 | 2931.0 ms |
| Recursive Fixed Exploration | Gemini-3.7-Flash | 3200 | 2516.7 ms |
| Dream-RSI | Gemini-3.7-Flash | 1879 | 2350.6 ms |
对于 Gemini-3.1-Pro:
Fixed:
550 calls
3587.1 ms
Dream-RSI:
317 calls
2931.0 ms
也就是说,Dream-RSI 同时:
减少 discovery compute
+
得到运行更快的最终 solver
对于 Gemini-3.7-Flash 也观察到类似趋势:
3200 → 1879 calls
2516.7 → 2350.6 ms
与 SimpleTES 相比,SimpleTES 使用:
51,200 generations
而 Gemini-3.1-Pro Dream-RSI 只使用:
317 calls
二者相差约 162 倍。
16.2 Recursive Discovery Dynamics
论文进一步比较每一轮 recursive discovery 后的性能。
由于 Round 1 使用完全相同的 exploration policy:
Dream-RSI
=
Recursive Fixed Exploration
两者起点相同。
之后 Fixed Exploration 继续重复旧策略。
Dream-RSI 则执行:
online discovery
→ replay
→ policy improvement
→ online discovery
因此从第二轮开始,两条搜索轨迹逐渐分离。
论文报告,在两个 backbone 上,Dream-RSI 都使用更少累计 discovery compute 得到更好的 downstream runtime。
16.3 最终发现的 Lasso Solver
作者还分析了 Dream-RSI 最终发现的程序。
与 SimpleTES 根据问题尺寸在:
LARS
和
Coordinate Descent
之间切换不同,Dream-RSI 找到的 solver 将 adaptivity 放在 active-set optimization 内部。
其中组合了:
strong-rule screening
+
Cauchy-Schwarz-based KKT pruning
+
selective exact-gradient recomputation
+
full refresh fallback
其核心逻辑是:
如果一个 feature 可以通过便宜的 bound 判断没有必要重新计算 exact gradient,就直接跳过。
只有 bound 无法确定时才进行精确计算。
而当 pruning 效率下降时,再回退到完整 refresh。
此外还结合:
active-set bookkeeping
lazy Gram-matrix construction
hardware-aware implementation
完整代码被作者放在论文 Appendix C 中。
17. 实验二:Mathematical Optimization
作者随后测试三个数学发现任务。
17.1 Sum-Difference
目标是构造一个有限整数集合:
A subset of Z
使某个关于:
sumset A+A
difference set A-A
的比例指标尽可能大。
17.2 Circle Packing
目标是在 unit square 中放置:
26 或 32 个 circle
满足:
圆全部位于正方形内部
圆之间不重叠
并最大化圆半径总和。
17.3 Autocorrelation Inequalities
该任务需要寻找满足一定 support 和 integral constraints 的函数,使 autocorrelation 相关目标达到最优。
论文把三个任务分别作为:
离散组合优化
几何优化
函数优化
的代表。
Discovery agent 使用:
Gemini-3.1 Pro
Dream-RSI 和 Fixed Exploration 均运行 10 个 recursive rounds。
18. 数学任务结果
论文报告结果如下:
| 方法 | Sum Diff ↑ | Auto Correlation ↓ | Circle Packing ↑ |
|---|---|---|---|
| AlphaEvolve | - | 1.455700 | 2.635862 |
| AlphaEvolveV2 | 1.121936 | - | 2.635983 |
| OpenEvolve | - | 1.460000 | - |
| CodeEvolve | - | - | 2.635980 |
| ShinkaEvolve | - | 1.457800 | 2.635982 |
| TTS-Discovery | - | - | 2.635983 |
| ThetaEvolve | - | 1.493000 | 2.635983 |
| EvoX | - | 1.458900 | 2.635900 |
| SimpleTES | 1.143975 | 1.453675 | 2.635983 |
| Recursive Fixed Exploration | 1.144047 | 1.456001 | 2.635983 |
| Dream-RSI | 1.145427 | 1.456375 | 2.635983 |
在 Sum-Difference 上:
Dream-RSI = 1.145427
高于:
SimpleTES = 1.143975
Fixed = 1.144047
Circle Packing 上:
2.635983
与表中最好的已有结果持平。
Autocorrelation 上:
Dream-RSI = 1.456375
没有超过 SimpleTES 的:
1.453675
但论文指出,SimpleTES 在这一任务使用:
51,200 generations
而 Dream-RSI 使用不到:
1,000 generations
因此作者主要强调的是 discovery quality 与 compute efficiency 的综合表现,而不是所有任务上的绝对最好分数。
19. 实验三:GPU Kernel Engineering
第三类实验来自 KernelBench。
目标是让 Agent 自动生成:
数值正确
+
执行尽可能快
的 GPU kernel。
作者选择四个任务:
VGG16
LayerNorm
ConvDiv
ConvMax
性能使用:
1 / runtime
衡量,因此数值越高越好。
使用的 coding agent 是:
Gemini-3.1 Pro
仍然与 Recursive Fixed Exploration 进行 controlled comparison。
19.1 KernelBench 结果
| Task | Dream-RSI 相对于 Fixed Exploration 的结果 |
|---|---|
| VGG16 | 相近性能下使用 2.43× 更少 generations |
| LayerNorm | 相近性能下使用 1.79× 更少 generations |
| ConvDiv | 相近 budget 下性能 2.09× 更高 |
| ConvMax | 相近 budget 下性能 1.44× 更高 |
可以看到两种不同情况。
对于 VGG16 与 LayerNorm:
最终性能差不多
主要收益体现在:
更快找到这个水平的方案
对于 ConvDiv 与 ConvMax:
给定相似 discovery budget
Dream-RSI 最终找到的 kernel 性能更高。
20. Further Analysis:历史应该怎么利用?
论文随后专门研究:
历史到底应该作为“提示信息”,还是应该作为 replay simulator?
这也是 Dream-RSI 很关键的一组分析。
一种自然的 history reuse 方法是:
过去 trajectory
↓
LLM 总结
↓
得到 high-level guidance
↓
放进下一轮 prompt
例如从历史中总结:
某类优化似乎比较有效
某类方向经常失败
以后应该重点搜索 X
然后把这些指导直接提供给 discovery agent。
作者分别测试:
Fixed Exploration
Fixed + Guidance
Dream-RSI
Dream-RSI + Guidance
在 ConvDiv 实验中,加入 explicit directional guidance 后,两个方法的效果反而都下降。
论文对此的解释是:
在 long-horizon discovery 中存在大量并行探索线程,如果把历史压缩成强方向性的 semantic guidance,可能会过早限制未来搜索空间。
因此论文强调的 history reuse 与:
history → summary → prompt
不同。
Dream-RSI 采用:
history
→ interactive replay environment
→ 让 controller 自己在其中尝试不同策略
也就是说,历史主要用来提供:
经验反馈
而不是强制告诉未来搜索:
应该往哪个科学方向走
21. Exploration Policy 的行为真的发生变化了吗?
论文还在 ConvDiv 上观察了每一轮 policy 的搜索行为。
Round-best performance 为:
| Recursive Round | Best Performance |
|---|---|
| E0 | 0.427 |
| E1 | 0.625 |
| E2 | 0.855 |
| E3 | 1.403 |
| E4 | 1.488 |
| E5 | 1.499 |
| E6 | 1.770 |
| E7 | 1.880 |
| E8 | 1.898 |
与此同时,每轮实际 evaluation attempt 数量为:
| Recursive Round | Evaluated Attempts |
|---|---|
| E0 | 110 |
| E1 | 110 |
| E2 | 87 |
| E3 | 80 |
| E4 | 50 |
| E5 | 92 |
| E6 | 80 |
| E7 | 91 |
| E8 | 86 |
可以看到,policy 并没有简单地:
越来越省计算
而是先从:
110
逐渐下降到:
50
当性能增长开始趋于平台期后,又重新增加到:
92
随后伴随新的性能提升。
论文将其解释为一种 adaptive exploration pattern:
已有搜索效果不错
→ 减少 exploration effort
进展开始停滞
→ 再增加 exploration effort
这说明 policy improvement 最终改变的不只是某一个固定参数,而是整个搜索预算分配行为。
22. 与已有 Self-Evolving Agent 方法的区别
论文将相关工作分为几个方向。
22.1 Scientific / Algorithmic Discovery
包括:
AlphaEvolve
OpenEvolve
CodeEvolve
ShinkaEvolve
PACEvolve
DeltaEvolve
MLEvolve
SimpleTES
这些系统主要研究:
如何不断生成、评估、修改 candidate solution
近期一些工作开始进一步研究:
如何控制整个搜索过程
例如:
SkyDiscover
SwarmResearch
EvoX
Dream-RSI 也属于这个更高层次的问题。
区别在于:
Dream-RSI 重点解决 exploration policy 的评价反馈昂贵且延迟的问题。
22.2 Self-Evolving Agent
已有工作会改进:
model weights
agent harness
context
skills
test-time behavior
rubrics
environment
Dream-RSI 的更新对象则是:
exploration policy
也就是:
“Agent 应该怎么搜索”
这一 meta-level mechanism。
22.3 Memory / History / Experience Reuse
很多 Agent 工作会把过去 experience 变成:
Memory
Context
Skill
Training Data
Library
Search History
然后帮助下一次 task execution。
Dream-RSI 的区别在于:
History
不是只给 Agent 阅读
而是变成一个 Environment
更具体地说:
普通 Memory:
history
→ retrieval
→ context
→ action
Dream-RSI:
history
→ replay simulator
→ policy evaluation
→ exploration-policy update
它利用历史的对象发生了变化:
普通方法主要帮助:
object-level task solving
Dream-RSI 则主要帮助:
meta-level exploration optimization
23. Dream-RSI 中的“World Model”应该如何理解?
论文受到 model-based RL 与 Dreamer 系列工作的启发。
在 model-based RL 中:
真实环境 interaction
↓
学习 dynamics model
↓
Agent 在 model 里 imagination
↓
改进 policy
Dream-RSI 对应的是:
真实 discovery
↓
记录 discovery tree
↓
把 tree 当 replay world
↓
exploration policy 在其中 dreaming
↓
改进 exploration policy
但两者仍有明显区别。
Dream-RSI 并没有训练一个能够预测:
如果执行一个从未尝试过的 action
未来会发生什么
的神经 world model。
它只重放:
已经真实发生过的 trajectory
因此这里的 world 更接近:
empirical replay world
而不是 learned generative dynamics model。
其优势是:
不存在模型预测误差
因为每一个 replay outcome 都来自真实执行记录。
相应地,它只能覆盖:
历史已经探索到的 search space
论文的方法设计始终围绕这一 replay setting 展开。
24. 方法的信息流总结
整个 Dream-RSI 可以整理成如下信息流。
┌─────────────────────┐
│ Exploration Policy │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Online Discovery │
│ Coding Agent │
│ + Evaluator │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Discovery Tree │
│ code / score / │
│ diagnostics / state │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Replay Simulator │
│ Pool │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Alternative Policy │
│ Replay Evaluation │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Policy-development │
│ Agent edits code │
└──────────┬──────────┘
│
▼
Improved Exploration Policy
│
└────→ 下一轮 Online Discovery
其中真正更新的是:
Exploration Policy
不会更新:
Coding Agent weights
Evaluator
Task environment
25. 论文的核心贡献
按照作者的总结,Dream-RSI 的贡献主要有三点。
第一,提出:
History as Replay Simulator
以往 discovery history 更多被当成:
文本上下文
Memory
Training Data
Dream-RSI 将已经完成的 structured discovery tree 当成:
可交互的 replay environment
从而重新利用已经支付过成本的 evaluation outcomes。
第二,提出:
Meta-Layer Recursive Self-Improvement
整个循环为:
online exploration
→ history
→ replay
→ exploration-policy improvement
→ online exploration
使 exploration controller 本身可以持续改进。
第三,通过算法工程、数学优化和 GPU kernel engineering 共 8 个任务展示:
更好的 discovery quality
和 / 或
更低的 discovery cost
并且这些结果不需要对底层 coding agent 进行梯度更新。
26. 论文没有单独给出 Limitations / Future Work 章节
当前 arXiv v1 没有单独设置 Limitations 或 Future Work 章节。
论文的 Conclusion 主要再次总结:
Discovery History
↓
Replay Simulator
↓
Low-cost Off-policy Feedback
↓
Exploration Policy Improvement
↓
Online Redeployment
因此这里不额外添加论文没有明确提出的局限性或未来研究方向。
需要注意的是,论文方法本身明确规定 replay 只能 reveal 已经记录在 historical discovery tree 中的 outcome;它不会在 replay 阶段生成历史之外的新 discovery result。这属于方法定义的一部分,而不是作者额外给出的 limitation 分析。
27. 总结
Dream-RSI 研究的不是:
如何让 LLM 自己变得更聪明
也不是:
如何训练一个更好的 coding model
而是 long-horizon agentic discovery 中更高一层的问题:
如何让 Agent 学会“怎样搜索”
传统 discovery pipeline 通常将 exploration strategy 作为一个固定的 harness:
固定 branch 数
固定 refinement depth
固定 parallelism
固定 stopping rule
Dream-RSI 则把这一层显式表示为:
Executable Exploration Policy
并让它本身进入 self-improvement loop。
论文最核心的机制可以浓缩成:
第一次真实探索很贵,
但它留下了一棵包含真实结果的 Discovery Tree。
既然这些结果已经付过一次计算成本,
那么以后就不必为了测试另一套搜索策略,
重新执行所有 Coding Agent 和 Evaluator。
让新的 Exploration Policy
在已经发生过的历史里重新走一遍即可。
因此:
Discovery History
从过去通常意义上的:
Memory / Context
进一步变成了:
Replay Simulator
随后系统利用这个 simulator 对大量 alternative exploration policies 进行低成本 off-policy evaluation,由固定的 LLM-based policy-development agent 根据 replay feedback 修改 exploration-policy code,再将改进后的 policy 部署到下一轮真实 discovery 中。
最终形成:
Explore
↓
Record
↓
Replay
↓
Improve Policy
↓
Explore Again
↓
...
这就是论文所谓的:
Recursive Self-Improvement through Evolving Worlds。
这里不断“演化”的 world,是随着真实 discovery 不断扩充的 historical replay simulator;不断自我改进的对象,则是控制长时间搜索过程的 exploration policy。
参考
-
Tong Zheng et al. Dream-RSI: Recursive Self-Improvement through Evolving Worlds. arXiv:2609.14858, 2026.
https://arxiv.org/abs/2609.14858 -
Dream-RSI Official Repository.
https://github.com/zhengkid/Dream-RSI -
Dream-RSI Project Page.
https://dream-rsi.com -
Alexey Novikov et al. AlphaEvolve: A Coding Agent for Scientific and Algorithmic Discovery. arXiv:2506.13131, 2025.
-
Shunyu Ouyang et al. KernelBench: Can LLMs Write Efficient GPU Kernels? arXiv:2502.10517, 2025.
-
H. Ye et al. Evaluation-Driven Scaling for Scientific Discovery. arXiv:2604.19341, 2026.

浙公网安备 33010602011771号