← 返回列表
未验证
面向 DSH 的 Dream-RSI
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/19 · 已提供中文文档
Dream-RSI 递归自我改进作为 DeepSeek Harness 插件:发现历史变为回放模拟器;候选探索策略在离策略下进行梦境评估,并在无回归保证下重新部署。
综合分
30.6
GitHub 分
30.6
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add wsbagnsv1/dream-rsi-dsh该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
面向 DSH 的 Dream-RSI
一个 DeepSeek Harness (DSH) 插件,实现了 Dream-RSI 递归自我改进循环——源自论文 “Dream-RSI: Recursive Self-Improvement through Evolving Worlds”(Tong Zheng 等人,UMD College Park 与 Google DeepMind——github.com/zhengkid/Dream-RSI,dream-rsi.com)——以预设门控、面向模型的工具界面形式呈现。
给一个 DSH 会话一个发现任务(算法工程、优化、内核……),该插件就会将其累积的发现历史转化为回放模拟器:候选探索策略会针对已记录的发现树进行回放,以获得廉价的离策略反馈,最佳策略会被重新部署,循环由此不断累积。
基准结果(n=26 圆填充,AlphaEvolve/OpenEvolve 示例): 在 11 轮 campaign 和约 250 万次诚实搜索评估中,该循环将一个朴素构造器从 0.9598 → 2.6359830849——与已发表的世界纪录(Packomania csqv N=26,Haowei Lin / HELIX,ICLR 2026)匹配到 10 位有效数字,超过了 AlphaEvolve 的 2.635 和 OpenEvolve 的 2.635977。该结果被三个方法族(minimax LP 证书、幂图不动点分析、单调归约问题)独立确认为严格局部最优,最终排列与纪录仅相差 1e-12 的浮点噪声修复裕度。这一历程:先验舰队结构种子 → 重力/压实盆地变换(同一算子在所有调度下都将旧冠军带回其自身盆地)→ 校正梯度深度精修 → 在过约束相切图上的接触添加阶梯——而主动探索策略则通过十一个版本化修订不断演进,完全由回放证据选择。完整 campaign 报告:docs/CAMPAIGN-5-CIRCLE-PACKING.md、circle-packing/CAMPAIGN_REPORT_{6..11}.md。
┌──────────────────────────────────────────────────────────┐
│ (outer iteration t) │
│ │
│ ① ONLINE EXPLORE current policy guides the │
│ discovery agent → discovery tree gets logged │
│ │ │
│ ② BUILD SIMULATOR finished tree joins the pool │
│ │ of replay worlds │
│ ③ DREAM M candidate policies replayed │
│ against every world (read-only, ~zero cost); │
│ best challenger wins only if it beats the │
│ incumbent (no-regression guarantee) │
│ │ │
│ ④ REDEPLOY ─────────────┘ t ← t+1, goto ① │
└──────────────────────────────────────────────────────────┘
此实现的关键特性:
- 插件内部没有 LLM。 插件是一个确定性的编排层(存储 + 模拟器 + 评分器 + 策略注册表);调用它的智能体才是策略的开发者。探索策略是模型编写、插件解释的小型 JSON DSL(PolicyDsl)。
- 无 LLM 的离策略估计(RCO)。 新动作(从未在历史中记录过)的结果由确定性相似度启发式方法估计——上下文相似度 → 加权记录结果混合 → 新颖性惩罚 → 悲观弃权先验——低置信度的估计被排除在质量项之外。
- 预设门控。 七个 dreamrsi_ 工具仅对在 Dream-RSI 智能体预设上启动的会话存在。基线组合保持干净。
- 按工作区隔离状态。 每个工作区都有自己的 .dreamrsi/ 存储;绝对路径的 dataDir 则固定为单个共享存储。
- 一切都有版本记录且可审计——发现树、不可变的策略版本、梦境报告,以及 .dreamrsi/ 下的全局事件日志。
你能得到什么
| 工具 | 循环阶段 | 作用 |
|---|---|---|
| dreamrsi_begin_round | ① 在线 | 开启一轮;返回当前活动策略(要遵循的 JSON DSL)、限制、历史摘要,以及解析后的存储位置 |
| dreamrsi_log_decision | ① 在线 | 记录一次决策轮:一批尝试 + 实测结果 |
| dreamrsi_end_round | ② 模拟器 | 结束该轮;其树成为一个回放世界 |
| dreamrsi_history | — | 查询树:最佳路径、失败、子树、轮次、摘要 |
| dreamrsi_dream | ③ 梦境 | 针对每个世界对 K 个候选策略进行回放评分;生成带各世界诊断信息的排名报告 |
| dreamrsi_policy_get | — | 查看活动策略或任意版本的完整记录 |
| dreamrsi_policy_set | ④ 重新部署 | 激活某个版本,或注册 + 激活一个新的 DSL(除非使用 force,否则有防退化保护) |
使用该预设的会话还会获得一段人格后缀来教授工作流,因此模型无需额外提示即可了解整个循环。
要求
- 一个带有 Web 配置的 DSH 安装(从源码运行的检出或已安装的 CLI)
- Node.js ≥ 22,pnpm ≥ 10(已测试 pnpm 11)
- 不需要 Python(该插件是纯 TypeScript;运行时无网络)
安装
方案 A —— 安装脚本(推荐)
sh
git clone dream-rsi-dsh
cd dream-rsi-dsh
pnpm install
pnpm build
Windows:
powershell -File install.ps1
Linux/macOS:
./install.sh
安装脚本会将 preset/dream-rsi/ 复制到 /.agent-presets/,并将插件条目重写为绝对路径(包括服务器插件和 Web UI 包)。然后:启动 DSH Web,打开新会话预设选择器,选择 Dream-RSI。
- install.ps1 -PrintOverlay / ./install.sh --print-overlay 则会打印一个根目录发现覆盖层(参见方案 B)。
- install.ps1 -WithWebUI 还会将 侧边栏仪表盘 挂载到 Web 配置中(参见下方 Web UI 面板)。
选项 B — roots 覆盖(不复制)
将 agent-preset 名册指向本仓库的 preset/ 目录:
sh
pnpm dsh web --patch ./examples/cordis.presets-overlay.yml # 先编辑里面的仓库路径
不会向基线挂载任何内容;preset 行会相对于本仓库解析 ../dist/index.js,因此请保持 dist/ 已构建。preset 发现根目录 是一项信任决策(trust: system)——只将根目录指向你信任的目录。
选项 C — 旧版宿主挂载(高级用户)
通过 cordis.host-mount.yml.example 将插件直接挂载到宿主组合中。这会将这七个工具放入 每一个 会话——这不是推荐模式,仅为完整性而保留。
升级: preset 副本是快照。拉取代码变更后,请重新运行安装程序(或重新复制 preset/dream-rsi/);重启服务器即可获取插件代码变更(preset 配置编辑无需重启即可到达新会话)。
用法
在 Dream-RSI preset 上启动一个会话,并交给 agent 一个发现任务:
text
Use the Dream-RSI loop on this task: .
Run one online round with the active policy (dreamrsi_begin_round, batched
attempts via dreamrsi_log_decision, dreamrsi_end_round), then dream up 3
improved policies (dreamrsi_dream) and commit the winner with
dreamrsi_policy_set if it beats the incumbent on replay.
任何会话(即使没有该 preset)也可以 直接委托到该 preset——本仓库的配套 harness 变更使 agent_preset 成为 DSH 的 subagent 工具上的可选参数:
json
{ "description": "discovery run", "prompt": "...", "agent_preset": "dream-rsi", "run_in_background": true }
对于长时间运行的活动,建议使用后台委托。
Web UI 面板
一个客户端插件(packages/client/ui-dream-rsi/)向 DSH 右侧边栏添加了一个 Dream-RSI 活动仪表盘——与工作区文件树和文档预览属于同一类界面。它通过 workspace-files 管道 只读 读取会话工作区的 .dreamrsi/ 存储,并渲染:
- 冠军卡片 — 跨轮次的最佳分数(以及产生它的轮次 + 策略)、当前活动策略的版本/名称/类型、轮次/节点/dream 总数;
- 进展图表 — 默认使用比率尺度时代(可比较的攀升):将比率轮次的每次已记录尝试绘制为散点(x = 全局迭代索引),将有效比率尝试上的 帕累托前沿 绘制为头条阶梯线,并标出策略标记;一个 绘制范围控件(起始/结束迭代,默认全范围,可重置)用于限定图表窗口——窗口内的前沿会从窗口起点重新开始;旧版原始探测轮次可通过“包含旧版探测”切换加入(它们的加入会拉伸 y 轴范围——默认关闭);悬停查看每个子点(轮次、节点、机制、分数、有效/失败类别);
- 发现森林 — 将整个累积的发现历史呈现在一个分带 SVG 视图中:来自所有轮次的每一次尝试(每一轮的树位于各自的分带中,按时间从左到右排列,带有细微的分隔符和轮次标签),节点按相同的分数渐变着色,失败的尝试变暗,全局最佳路径(每一轮的最佳链,拼接而成——即冠军谱系)从头到尾高亮显示,并在其冠军节点上带有 ★,支持悬停提示,以及轮次筛选器(全部 = 默认森林;选中的轮次会聚焦其单棵树,并带有最佳路径开关和相同的 ★);
- 策略谱系 — 完整的 v0001 → vNNNN 时间线,包含状态、类型和派生关系;
- 轮次表 — 每一轮的状态、策略、节点、尝试次数、最佳分数,涵盖每一棵有树的轮次(最新在前,可滚动),每个最佳分数单元格都标注其目标纪元(ratio = sum_radii / 2.635 对比 raw·probe = 旧版标度,阈值 10),并附有图例说明——原始值仍然可见,但显然不可比较;
- 梦境报告 — 选中的候选、平均重放分数、有效世界计数、被下限截断/无效的诊断信息(最近 8 条);
- 事件尾部 — events.jsonl 的最后几行;
- 一个 刷新 控件(当活动运行时存储会更新),以及当工作区尚无 .dreamrsi/ 时的优雅空状态。
使用安装器挂载它:
sh
powershell -File install.ps1 -WithWebUI # preset copy + link the package into the web profile + patch insert
或手动操作:将 packages/client/ui-dream-rsi 链接到 web profile 的 node_modules 中(在 profile 的 package.json 中写入 "@dreamrsi/dsh-client-ui-dream-rsi": "link:/packages/client/ui-dream-rsi",然后在 profile 内运行 pnpm install),并将该行插入到 profile 的 cordis.patch.yml 中:
yaml
- insert:
- id: ui-dream-rsi
name: '@dreamrsi/dsh-client-ui-dream-rsi'
然后重启 dsh web,并从右侧边栏的指南页面中选择 Dream-RSI campaign dashboard。
为什么有两个平面: 浏览器启动图是由宿主组合的加载器条目构成的——预设子树对该扫描是刻意不可见的。预设的 ui-dream-rsi 行挂载该包的宿主半部分(保持预设自描述);浏览器半部分由上面的宿主平面行提供。该面板是只读的:它从不写入存储。
配置
在预设行(preset/dream-rsi/agent.cordis.yml)中内联设置——每个键都是可选的:
| 键 | 默认值 | 含义 |
|---|---|---|
| dataDir | .dreamrsi | 存储目录。相对路径每次调用时相对于调用代理的会话工作区解析;绝对路径则固定为一个共享存储 |
| candidateCount | 3 | K——代理每次梦境应提出多少个挑战者策略 |
| maxOnlineRounds | 16 | K₁——每个在线轮次的决策轮次上限 |
| maxReplayRounds | 64 | K₂——重放期间每个回合的决策轮次上限 |
| beta1 / beta2 | 0.01 / 0.05 | 重放目标(公式 1)的成本/并行度系数 |
| normalizeScores | true | 在每个 world 内进行最小–最大分数归一化 |
| policyEngine | 'code' | v0.2 — 代码策略(solve(view) Python 模块)为主;'legacy' 保持 v0.1 JSON DSL 解释器为主。任一引擎都会回放两种类型的记录 |
| autoDream | 'every-cycle' | v0.2 F4 — 做梦是每个循环的强制阶段:dreamrsi_end_round 自动运行改进阶段。'on-stagnation' 仅在某一轮未能提升最佳分数时做梦;'off' 保持 v0.1 行为 |
| trajectoryCap | 20 | 每个候选 × world 轨迹摘要记录在 dream 报告中的最大步数(F2 的 Listing 2 载荷) |
| policyEpisodeTimeoutMs | 30000 | 针对代码策略的每次回放 episode 的墙钟时间预算;超时 → 终止 + episode 无效 |
| devLoop | 'agent-relay' | v0.2 F2 — 策略开发循环。'agent-relay':dream 报告携带轨迹摘要,由 HOST AGENT 编写并提交候选(dreamrsi_policy_set { code })。'host-llm':框架使用逐字 Listing 2 提示 + 轨迹载荷调用配置的 LLM,并回放解析出的候选(论文形态;需要组合好的 ctx.llm 路由,没有则 fail-soft 到 agent-relay) |
| poolSize | 32 | host-llm 循环每轮生成的候选池大小 |
| maxLlmCallsPerCycle | 3 | 每个做梦循环的 LLM 调用预算(host-llm 循环) |
| llmRoute | — | 显式 { provider, model } 覆盖;未设置 → 部署的默认路由(第一个注册的 provider + 第一个列出的 model) |
| similarityThreshold, similarityTemperature, similarityGamma | 0.35 / 0.25 / 2 | RCO 估计器相似度塑形 |
| estimatorMaxAnalogues / estimatorMinAnalogues | 5 / 3 | 用于新动作估计的 top-k 已记录类比混合 |
| similarityFloor, hallucinationTau, noveltyLambda, confidenceMediumTau | 0.1 / 0.18 / 0.25 / 0.45 | 新颖性惩罚、弃权先验、置信度阈值 |
代码策略(v0.2)
策略是Python 模块,暴露论文中的共享决策接口:
python
def solve(view: dict) -> dict:
"""
view: { roundId, decisionRound, limits: {maxRounds K1, maxParallelism W},
selectable: [node summaries — root + current leaves, with state,
action history, scores, deltas, sibling counts],
history: { rounds, totalNodes, bestScoreOverall, bestMechanisms,
knownDeadEnds, score scale } }
returns: { batch: [nodeId, ...] ( --target-processes all ,解析 CSV 报告,并返回每个内核的聚合(启动次数、持续时间 µs 平均值/最小值/最大值、DRAM 字节平均值、SM 吞吐量 % 平均值、占用率限制平均值、网格/块大小)以及总持续时间和启动次数。
默认指标集:gpu__time_duration.sum、dram__bytes.sum、sm__throughput.avg.pct_of_peak_sustained_elapsed、launch__occupancy_limit_blocks、launch__grid_size、launch__block_size。使用 metrics 参数覆盖。
要求:系统 PATH 上有 ncu(Nsight Compute)或显式的 nsightNcuPath 插件配置固定(工具参数 ncu_path 也会按调用覆盖)+ 支持 CUDA 的 GPU。子进程接缝的已清理 PATH 不包含 Nsight Compute 目录,因此该工具在执行时解析可执行文件:首先在完整系统 PATH 上运行 where ncu(优先选择 ncu.exe 而不是 ncu.bat 包装器 — argv 从不经过 shell 解释),然后是常见安装位置(C:\Program Files\NVIDIA Corporation\Nsight Compute \…,包括 2025.x 嵌套的 target\windows-desktop-win7-x64\ncu.exe 布局),生成解析后的绝对路径。该工具从不会使循环崩溃 — 每种失败模式(缺少 ncu → 列出搜索位置的指导、目标非零退出、未启动内核、超时)都会以干净的
错误或诊断。当 ncu 可用时,会运行系统级集成测试。
数据模型
.dreamrsi/
config.json # 生效的插件配置
trees//nodes.jsonl # 发现树:每次尝试一条不可变记录
trees//round.json # 轮次元数据(策略版本、状态、统计)
policies/policy-index.json # 版本索引(kind: dsl|code)+ 活动指针
policies/vNNNN.json # 不可变策略记录(谱系 + 评估)
policies/vNNNN.py # v0.2 代码策略:Python solve(view) 源码
policies/.runner.py # 随附的用于代码策略的 JSON-lines 运行器
dreams/dNNNN.json # 梦境运行:候选、各世界评分、轨迹、选择
events.jsonl # 每次变更的仅追加审计日志
节点记录是带有谱系的完整 (state, action, outcome) 元组。树是一个根带多个分支;每个分支是一条一元精化链——这正是使论文中的重放转换廉价且确定性的原因。
架构
src/
index.ts Cordis 插件:name/inject(['tools','subprocess'])/apply、Schemastery 配置、接线
types.ts 领域类型(NodeRecord、RoundRecord、PolicyView、PolicyRecord{kind}、...)
store.ts .dreamrsi/ 持久化、树不变量、策略注册表(dsl + code)
replay.ts ReplayWorld:Child() 揭示规则、RCO 离策略估计器
dreaming.ts DSL 校验 + 旧版解释器、代码策略驱动器、Eq. 1 梦境循环、选择
policy-runtime.ts v0.2 F1:python -I JSON-lines 策略子进程(spawn/超时/格式错误处理)
bootstrap-policy.ts 内置引导代码策略(v0001.py 源码)+ 运行器源码
engine.ts 门面:begin/log/end (autoDream)/history/dream/policy 操作
tools.ts 七个面向模型的工具定义
dsh-ambient.d.ts DSH 运行时表面的仅类型镜像(独立类型检查)
bench/perf-gate.ts v0.2 F4 规模门禁(poolSize × worlds 墙钟时间)
preset/dream-rsi/ 智能体预设(完整标准装配 + 插件行 + 工作流人设)
packages/client/ui-dream-rsi/ 网页 UI 面板插件(浏览器端:侧边栏活动仪表盘)
tests/ Vitest 测试套件(引擎、工具、预设形态、按工作区隔离、
代码策略协议、真实校验器回归防护栏)
docs/DREAM-RSI-SPEC.md 从论文提炼的实现级规范
docs/ROADMAP-v0.2.md v0.2 忠实于论文的升级提案(F1–F4)
该包可独立进行类型检查(环境类型镜像代替 @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/schemastery);在 DSH 内部,由真实模块提供运行时。
开发
pnpm install
pnpm typecheck # strict tsc --noEmit
pnpm test # vitest
pnpm build # dist/(ESM,相对导入扩展名已重写)
tests/dsh-schema.spec.ts 通过真实的 DSH schema 验证器验证全部七个工具——它所防范的那类 bug(未声明的输出属性)对独立的类型检查是不可见的。它需要链接 harness 包,当这些包缺失时会自动跳过;参见测试文件头部。
与论文的偏离是刻意为之并有文档记录的:策略是 JSON DSL 而非任意 Python;新颖动作的结果来自确定性的 RCO 估计器而非 LLM 评判器。两者都使循环完全确定且可测试。参见 docs/DREAM-RSI-SPEC.md(§10 简化)和 docs/TESTING.md。
致谢与许可
- Dream-RSI — 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 DeepMind、弗吉尼亚大学)。
- 本仓库是该论文方法作为 DSH 插件的一个独立、社区实现;它与论文作者无隶属关系。
- MIT — 参见 LICENSE。扫码进群