🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

演化世界自进化 patrykorwat/open-dream-rsi

MCPv0.3.15
patrykorwat7 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

每个 AI 智能体都在反复交同一笔学费:任务失败,想明白哪里出了问题,然后会话一结束,这份理解就丢了。Open…

39.9/100
综合分
14
GitHub 星标
1,127
npm 周下载
—/5
用户评分

数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/patrykorwat/open-dream-rsi.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过

安装清单取自 plugins/deepseek_harness/package.json

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-open-dream-rsi @ 0.3.15
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 20:23:45

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 回放中验证经验
  • 递归自我改进

面向 LLM 智能体的演化世界递归自我改进(Dream-RSI)

README

由 DeepSeek 最新模型翻译生成
Open Dream-RSI 这是什么? 每个 AI 智能体都在反复交同一笔学费:任务失败,想明白哪里出了问题,然后会话一结束,这份理解就丢了。Open Dream-RSI 把学到的东西留下来——完全不碰模型。 LLM 始终冻结。变好的是它周围的一切: - 探索策略(甚至可以由 LLM 自己改写成 Python 代码,但必须先通过回放验证才可信), - 一个已验证解法库(recipe),拿来当热启动复用, - 从失败中提炼的精选经验——每一条都要在回放中可量化地帮上忙,才会被采纳, - 还有给策略打分的世界模型:一棵记录每次尝试的 Discovery Tree,由 Sentinel 引擎补上回放安全的错误类别事实。 两次运行之间,系统会「做梦」:在进程内对历史记录回放上千种策略,零 API 成本,只留下打赢现任者的那些。这是 Recursive Self-Improvement through Evolving Worlds(Dream-RSI,Zheng 等,arXiv:2609.14858)的开源实现。 零运行时依赖——只用 Python 3.10+ 标准库,约 11.2k 行库代码,约 5.4k 行测试,无需构建步骤。 不是又一个记忆插件。 经验记忆系统把智能体学到的东西记下来,原样复用。
展开完整文档(README 剩余 1 节)
Open Dream-RSI

这是什么?

每个 AI 智能体都在反复交同一笔学费:任务失败,想明白哪里出了问题,然后会话一结束,这份理解就丢了。Open Dream-RSI 把学到的东西留下来——完全不碰模型。

LLM 始终冻结。变好的是它周围的一切:

- 探索策略(甚至可以由 LLM 自己改写成 Python 代码,但必须先通过回放验证才可信),
- 一个已验证解法库(recipe),拿来当热启动复用,
- 从失败中提炼的精选经验——每一条都要在回放中可量化地帮上忙,才会被采纳,
- 还有给策略打分的世界模型:一棵记录每次尝试的 Discovery Tree,由 Sentinel 引擎补上回放安全的错误类别事实。

两次运行之间,系统会「做梦」:在进程内对历史记录回放上千种策略,零 API 成本,只留下打赢现任者的那些。这是 Recursive Self-Improvement through Evolving Worlds(Dream-RSI,Zheng 等,arXiv:2609.14858)的开源实现。

零运行时依赖——只用 Python 3.10+ 标准库,约 11.2k 行库代码,约 5.4k 行测试,无需构建步骤。

不是又一个记忆插件。 经验记忆系统把智能体学到的东西记下来,原样复用。ODR 是一个演化世界循环:每次尝试都记进 Discovery Tree,两次运行之间系统做梦——对着记录下来的世界回放上千种策略变体。光凭模型自己说好不算数:候选策略、recipe 或经验,只有扛过反事实回放,才能取代现任者。

对比——存储状态、条目如何赢得信任、运行时开销,对照 Mem0、Letta、Reflexion 式反思、DSPy 优化器和技能库:docs/comparison.md。

📄 预印本: Open Dream-RSI: An Open-Source Library for Recursive Self-Improvement Around a Frozen LLM, with Replay-Gated Learned Policies and a Curated Knowledge Base — P. Orwat, 2026。
PDF · LaTeX 源码

快速开始

| 智能体 | 安装 |
| Hermes | pip install open-dream-rsi · hermes plugins install "https://github.com/patrykorwat/open-dream-rsi#odr-trigger" · hermes plugins enable odr-trigger——或在桌面应用里:Capabilities → Plugins → Install from Git |
| DeepSeek Harness | dsh plugin --profile <name> add dsh-open-dream-rsi(npm bundle,不用 pip) |
| Claude Code | 从本仓库装插件:claude plugin marketplace add patrykorwat/open-dream-rsi + claude plugin install open-dream-rsi@open-dream-rsi(会提示你填 task/memory 路径,不用 pip)——或者 pip install open-dream-rsi · claude mcp add open-dream-rsi -- odr mcp --tasks /ABS/PATH/tasks.json --memory /ABS/PATH/.dream_rsi |
| Codex CLI | pip install open-dream-rsi · codex mcp add open-dream-rsi -- odr mcp --tasks /ABS/PATH/tasks.json --memory /ABS/PATH/.dream_rsi |
| OpenCode | pip install open-dream-rsi,然后写 docs/integrations.md#opencode 里的 mcp 配置块 |
| Goose | git clone https://github.com/patrykorwat/open-dream-rsi && cd open-dream-rsi && ./scripts/odr_goose_setup.sh——自动识别你的服务商、启动代理、自己写好配置 |
| Claude Cowork / claude.ai | 只支持远程:odr mcp --http --port 8800 挂到你的隧道后面——见 docs/integrations.md |

odr 命令行脚本随包一起装(0.3.9+);直接检出代码的话,用 python3 -m open_dream_rsi 或 pip install -e .。

把 dreamer 指向任意 OpenAI 兼容端点——或者干脆不指:模型会从 /v1/models 自动识别,所以本地 vLLM/Ollama 只要填 base URL。

export OPENAI_BASE_URL=http://127.0.0.1:8000/v1 # vLLM / Ollama / any gateway
export OPENAI_API_KEY=*** # any token for local servers

手边没有智能体?裸命令行跑的是同一套循环:odr --memory .dream_rsi loop --tasks tasks.json --once(去掉 --once 就是常驻守护进程)。没有 key?
python examples/live_loop_demo.py 用进程内 mock 服务器跑完整个周期。(PyPI 上的 dreamrsi 是另一个无关项目——这个库叫 open-dream-rsi。)各宿主机的细节、MCP 配置块、故障排查:docs/integrations.md。免 key 上手教程和 Docker 镜像:docs/try-it.md。

工作原理

┌───────────────┐
│ Frozen LLM │
└──────┬────────┘
│ proposals
online loop ▼ offline dream
┌──────────── DiscoveryTree ──────────── ReplaySimulator ──────────┐
│ │ │ │
│ node.sentinel counterfactual │
│ (Sentinel facts, rollout scoring │
│ replay-safe) │ │
│ │ ▼ │
│ └────→ Policy improvement ────→ next cycle │
│ │
SENTINEL MODE (tool-execution layer) │
│ │ │ │
error-class nudge permute-gate ──→ block tool calls │
ledger (once/session) past 80% of budget ───────────┘

1. 在线执行 —— 智能体用真实 LLM 和沙箱化验证器尝试每个任务,每次尝试都追加到该任务专属的 Discovery Tree(代码、测试反馈、得分、一行计划;接入 Sentinel 引擎时,还会记录结构化的错误类别事实和明确的终止原因)。
2. 离线 dreaming —— 不再为真实环境中的 rollout 付费,智能体改为在记录下来的历史之上「做梦」:数千个策略变体在进程内回放模拟器中打分,外部调用成本为零。最优参数、程序和配方会被持久化,并指导下一轮循环。

除了参数层面的 dreaming,循环还闭合了论文第 3 节(「用代码做梦」):每轮循环中,LLM 可以把探索策略本身重写成一个小型 Python 程序 choose_action(frontier, step)。候选策略先做静态校验(AST 门禁),只在加固的子进程沙箱中执行,再用记录树上的反事实回放 rollout 打分。候选策略只有在有证据时才替换现任策略——而且现任策略要在当前树上重新打分,不能信任它存储的分数。崩溃或作弊的策略永远不会弄坏循环:扩展会回退到贪心基线。

接入你常用的智能体

循环使用 MCP(Model Context Protocol)通信。加一段配置,你日常用的智能体就能给 dreamer 排队任务、取回已验证的配方、查阅精选经验——无需额外配置 LLM:dreamer 自己解析大脑(env → 本地 goose 配置 → localhost vLLM),并向端点本身询问该用哪个模型。

| 工具 | 作用 |
| odr_status | 循环学到了什么(策略、配方、事件) |
| odr_recipes | 某个类别下最优的已验证方案——可用作热启动 |
| odr_lessons | 某个类别 / 搜索查询的精选失败经验 |
| odr_add_task | 排队任务(prompt + tests,或 prompt + criteria)——无测试的任务按完成度判定 |
| odr_run_once | 立即运行一轮改进循环(有 API 预算上限) |
| odr_dream | 自动化循环:导入宿主会话证据、提炼精选经验、运行晋升门禁、发布技能 |

工具按客户端加前缀注册(例如 Hermes 的 mcp_open_dream_rsi_odr_run_once)。没有模型会主动调用工具——要通过配方的 instructions:、钩子或明确要求(「再试之前先查 odr_recipes」)来触发。让循环主动起来的 AGENTS.md 提示词块在 docs/integrations.md。

各宿主配置——OpenCode、Goose(自动安装脚本)、Hermes(含 Docker)、Codex CLI、Claude Code、Cowork/claude.ai 连接器、DeepSeek Harness——以及零配置大脑链路与故障排查: docs/integrations.md。

服务商

| 服务商 | 预设 | Base URL | 密钥环境变量 |
| OpenAI | openai | https://api.openai.com/v1 | OPENAI_API_KEY |
| Cursor(经本地代理) | cursor | http://127.0.0.1:3000/v1 | CURSOR_API_KEY(可选) |
| Cursor Agent CLI(无头模式,用你的登录) | cursor-agent | —(不走 HTTP) | — |
| 本地(vLLM / Ollama / LM Studio) | local | http://127.0.0.1:8000/v1 | OPENAI_API_KEY |
| 借用 goose 配置 | goose | 从 ~/.config/goose 解析 | — |

优先级始终是:显式覆盖 → 环境变量 → 端点模型发现(取 GET /v1/models 返回的第一个 id)→ 预设默认值;如果钉住的模型端点已不再提供,会自动重新发现一次,完成自愈。
Cursor 没有公开的 OpenAI 兼容对话端点——cursor 预设指向本地代理,走 Cursor 登录;从 0.3.0 起,默认的零代理大脑是 cursor-agent 命令行。完整说明与命令行安装: docs/integrations.md。

库级用法(不走命令行):

from open_dream_rsi import (DiscoveryTree, DreamEngine, ReplaySimulator,
DreamAgent, LLMConfig, OpenAICompatibleClient)

client = OpenAICompatibleClient(LLMConfig.from_preset("local"))
tree = DiscoveryTree()
dreamer = DreamEngine(simulator=ReplaySimulator(tree))
dreamer.run_offline_optimization(iterations=100)
agent = DreamAgent(dreamer=dreamer, client=client)

两次运行之间保留什么(--memory 目录)

| 产物 | 文件 | 作用 |
| 梦境策略参数 | policies.json | 下一轮从上一轮的最优点起步 |
| 晋升的策略程序 | policy_codes.json | LLM 写的 choose_action 引导扩展 |
| 配方库 | recipes.json | 已验证的解法作为热启动回放 |
| 知识库 | lessons.json | 经筛选、回放把关的经验(声明式文本) |
| 发现树 | trees/ | 离线做梦始终有历史;节点可选携带回放安全的 Sentinel 事实 |
| 审计日志 | events.jsonl | 只追加,记录每次决策 |
| 留出预留 | holdout_reservations.json | 预注册的评测任务 ID,只能消费一次(odr holdout claim/split) |

值得了解的开关:--no-policy-code、--no-knowledge、--no-thoughts、--no-judge 分别消融四个可选机制层;--evolution-stop(需主动开启)在任意时刻有效的投注鞅告警后冻结策略再生——某个类别里没有晋升证据就停止投入,最后晋升的策略保持生效;--budget N 限制每轮 API 调用次数(做梦不花钱)。

自动做梦:循环到底什么时候跑?

接缝是 dream_once()(命令行 odr dream、MCP odr_dream,或宿主钩子)。你不设时间表——模块每次调用自行决定档位,所以每个任务结束后触发它都是安全的,没有新东西可学时不产生额外开销:

| 层级 | 触发条件 | 运行内容 |
| maintenance | 静默调用(没有新证据,最近刚做过 dream) | ingest 扫描(开销低)、ALM 的 stale/supersede/archive/GC、技能重新发布 —— 零 LLM |
| full | 出现 min_new_evidence(默认 3)个新的失败形态会话,或距上次 full dream 已过 max_age_seconds(默认 6 h) | 加上在线尝试、dreaming、配对重放晋升门(budget,默认 100 次 API 调用) |

忙碌的一天会 dream 几次,安静的一天一次,空闲的一天一次也不做;并发调用会被单实例锁合并。探针会自动排队:每个失败形态会话都会把自己的请求作为 probe:<session> 任务追加到 tasks.json(max_attempts=1,排在手动任务之后),所以晋升门从不依赖手写的任务文件 —— 你已经产出的证据就是对手方。

空闲的机群从不会完全空闲(唤醒自检)。 默认情况下(ODR_WAKE=1,或 --wake),FULL dream 发现 tasks.json 为空时会种下一个自检探针 ——「写 add(a, b)」,由测试验证,一次 API 调用 —— 这样即使没有真实工作排队,配置的端点也会被实际调用。随后 odr metrics 会显示实时的 api_calls 和解决率(类别 wake),而不是零调用的心跳;用 ODR_WAKE=0 或 --no-wake 可关闭。

批量安装整个过程只需两条命令,无需宿主侧胶水:

pip install open-dream-rsi # library + CLI + MCP server
hermes plugins install "https://github.com/patrykorwat/open-dream-rsi#odr-trigger"
hermes plugins enable odr-trigger # restart to load the hook
optional overrides:
hermes config set plugins.entries.odr-trigger.settings.provider local
hermes config set plugins.entries.odr-trigger.settings.base_url http://.../v1

机群部署:多个工作区,一个定时器

基于定时器的机群就是一个服务调用的一个 runner。随附的 runner 会遍历一组按工作区划分的记忆目录,并为每个目录触发一次 dream 周期:

scripts/odr_fleet_dream.sh # env-configured; see the header for ODR_* knobs

systemd oneshot 单元 + 定时器(或你已经在跑的按主机服务)会调用它;dream 模块自己按工作区决定走 maintenance 还是 full:

/etc/systemd/system/odr-dream.service (Type=oneshot)
[Service]
Type=oneshot
Environment=ODR_PKG=/opt/odr/share/open-dream-rsi
Environment=ODR_WS_GLOB=/opt/odr/workspaces//odr-mem
Environment=ODR_SOURCE=cursor
Environment=ODR_PROVIDER=cursor-agent
ExecStart=/opt/odr/share/open-dream-rsi/scripts/odr_fleet_dream.sh

odr-dream.timer — fires the unit on your cadence (here: every 2 h) [Timer]
OnCalendar=-- 0/2:17:00
[Install]
WantedBy=timers.target

区分一个会学习的机群和一个只有心跳的机群,靠的是 runner 的环境变量 —— 三个要素:

| 要素 | 开关 | 缺少它时 |
| 证据接入 | ODR_SOURCE=cursor(或 hermes + ODR_SESSIONS_DB) | 会话永远读不到,知识库一直空着 |
| 真正的做梦器 | ODR_PROVIDER=cursor-agent(命令行),或 openai/local + ODR_ENV_FILE | 完整梦境什么都不尝试;0.3.11 之前完全看不见 |
| 工作区 glob | ODR_WS_GLOB(每个工作区一个记忆目录) | — |

从 0.3.11 起,唤醒自检补上了可见性缺口:每次队列为空的 FULL 梦境都会调用一次配置好的端点,所以配置正确的集群在 odr metrics 里读到 wake: n/n,每个工作区约每 6 小时产生约 1 次 API 调用。如果集群连续多轮都卡在 api_calls: 0,说明定时器在跑裸梦境调用——先修上表,再用 odr --memory <dir> metrics 诊断单个工作区(llm errors 分类会指出缺失的环境变量)。ODR_INGEST=0 显式保留仅心跳行为。

结果(评测已移至 docs/benchmarks.md)

评测策略: 性能声明只落在一个基准上——goose × TravelPlanner,公开,由基准自带的评测器打分;脚本化套件(bench、bench-policy)是确定性的机制自检,不承载任何模型质量声明。

在预注册的评测划分上(79 个任务,单模型):计划交付率冷启动 18/79(23%)→ 加上调用截断门后 74/79(94%)(McNemar 56↔0,p=1.4e-17)。每个未交付的冷启动回合都死在调用上限上,数据其实已经到手——真正的失败点是终止;门控组是固定的选项移除,这些回合里没有任何学到的内容。

goose × TravelPlanner:交付与失败解剖

学到的机制在脚本化套件上验证通过;实时回放还显示,新教训默认是有害的(问题在语气而非内容:18/20 → 6/20,改成陈述式复述后回到 18/20)——所以知识库默认走暂存,挡在配对回放门之后。完整表格、Wilson 区间、协议、自检契约与记忆发现:docs/benchmarks.md。

学习 vs 生命周期 vs 历史

仓库严格区分四个层面:

| 层面 | 归属 | 它回答的问题 |
| 学习 | Dream-RSI 流水线(做梦器、回放门、教训门) | 这个产物配不配处于激活状态? |
| 当前产物状态 | ArtifactLifecycleManager(lifecycle.py) | 这个产物现在是什么状态? |
| 迁移历史 | 只追加的 artifacts/events.jsonl | 它是怎么走到这一步的? |
| 不可变证据 | Discovery Trees + 事件日志 | 这些产物为什么存在,是哪个世界产生了它们? |

ALM 通过显式状态机管理四种产物类型(policy_parameters、policy_program、recipe、lesson)(CANDIDATE → VALIDATED → ACTIVE → STALE/SUPERSEDED/QUARANTINED → ARCHIVED,终态 REJECTED),并有硬性规则:激活只能是显式的晋升调用负责携带证据;每次状态变更都会在暴露新状态之前追加恰好一个不可变事件;物化视图必须始终等于 rebuild_artifact_state(events)(手工改过的视图会从日志重建,绝不采信);合并会创建带血缘的新产物,绝不改动来源;删除绝不裁剪事件日志。Discovery Trees 和审计事件是证据,不是产物——ALM 拒绝注册它们。查看存储: odr artifacts [--type lesson --state ACTIVE --history]。

导入真实会话(策展人的第二扇门)

循环从自身失败中提炼经验;它也能导入你已经付过费的对话记录。Hermes、Cursor 和 Claude Code 是一等证据来源,用户纠正则是第二类证据。导入的一切都不可信:只读、脱敏、暂存在同一道晋升门之后——激活要靠挣。

| 来源 | 一条命令 |
| Hermes state.db | odr --memory .dream_rsi dream --source hermes --sessions ~/.hermes/state.db |
| Cursor state.vscdb | odr --memory .dream_rsi dream --source cursor |
| Claude Code ~/.claude/projects | odr --memory .dream_rsi dream --source claude |

先导出再提炼、纠正分类、回填已烧掉的会话、git 支撑的经验存储、留出集卫生以及完整的 Hermes 接线: docs/sessions.md。

安全模型

候选代码——任务解法和策略程序都算——跑在加固的子进程里(open_dream_rsi/sandbox.py):python -I、清洗过的环境(只留 PATH——API key 绝不越墙)、超时会杀掉整个进程组,还有 POSIX 地址空间 / CPU / 线程数限制。策略代码在启动之前还要过一道 AST 门:必须有入口点、禁止 import、禁止 dunder 访问、禁止引用 __builtins__(名字本身加上构造键索引就是一条逃逸路径)。

这是纵深防御,不是容器。 子进程不限制文件系统或网络访问,AST 门也无法证明对未经静态门控的代码完备。面对敌意任务来源,把 ODR_SANDBOX_CMD 设成 bubblewrap/nsjail 包装器(例如 bwrap --unshare-all --die-with-parent --ro-bind / /),或者把循环放进容器里跑。

在非 POSIX 主机(Windows)上,同样的 python -I 子进程会跑,但没有 rlimit,超时也只杀直接子进程——敌意任务来源请把 Windows 视为不在范围内。ODR_SANDBOX_CMD 未设置时,每个新进程都会记一条一次性警告,点明的正是这个缺口。

实时仪表盘

一条命令,零依赖,stdlib http 服务器:

python -m open_dream_rsi dashboard # mock LLM, port 8765
python -m open_dream_rsi dashboard --provider cursor # real model
python -m open_dream_rsi dashboard --host 0.0.0.0 # LAN access
深色单页 UI:KPI(周期数 / 已解决数 / API 预算 / 做梦迭代数)、实时事件流、按任务展示的尝试面板(带分数条和代码 diff 下拉)、按类别展示的做梦策略仪表,以及学到的配方库。

仪表盘是纯标准库 HTTP 服务器,不做身份验证,其控制路由(/api/pause、/api/reset)会改动正在运行的循环——除非局域网可信,否则把 --host 保持在回环地址上。

定位

- 本库实现的论文: Dream-RSI (arXiv:2609.14858);官方仓库 zhengkid/Dream-RSI,解读站 dream-rsi.com。
- 本库所处的更大研究脉络: Self-Refine (arXiv:2303.17651)在测试时对输出反复迭代;Reflexion 跨多次尝试存储语言化的自我反馈;ExpeL (arXiv:2308.10144)提炼跨任务洞见与范例;Agent Workflow Memory (arXiv:2409.07429)归纳出可复用的工作流;ACE(arXiv:2510.04618)把智能体的上下文当作不断累积的剧本来演化——这是已发表工作中与我们配方库最接近的对应物;Early Experience (arXiv:2510.08558)把智能体自身的 rollout 当作无奖励的训练信号(做梦的权重更新版邻居);该领域全景见自演化智能体综述(arXiv:2507.21046,TMLR 01/2026)。这些工作都没有在持续演化的记录世界上做反事实重放来晋升候选——那道晋升关卡才是本库的结构性差异。
- 同类实现(本仓库是独立的开源实现,并非首个):TheAstrayDev/dream-rsi-sdk (适配器 SDK,严格重放;LLM 编写的策略在他们的路线图上), robinber/dream-rsi-spark (本地 Qwen + CUDA 内核探索),另有技能变体(hermes-dream-rsi、 dream-rsi-skill、 Pi-RSI)。
本仓库的差异点:常开自主监督器,带预算护栏;LLM 编写的探索策略,由反事实重放把关(第 3 节闭环);公开基准测量(goose × TravelPlanner),而非自评式声明;确定性的诱饵陷阱自检套件;跨运行持久记忆;以及循环自身强制执行的记忆负面结果一节。
- OpenRSI / Frontis-MA1(FrontisAI/OpenRSI)是另一层:他们后训练权重;本库优化冻结模型周围的探索策略——不训练、不用 GPU、不权重访问。补充:他们训练出的改进器,可以是我们客户端背后那个冻结的 LLM。

模块架构

| 模块 | 职责 |
| core.tree | DiscoveryTree——假设、结果、动作、思考、Sentinel 事实、终止原因 |
| core.simulator | 不接触环境的回放模拟 |
| core.dreamer | 基于已记录历史的离线优化 |
| core.agent | 由奖励策略驱动的 LLM 智能体 |
| core.policygen | 策略生成、AST 门禁、rollout 打分、晋升 |
| core.curator | 经验蒸馏、余量判定、门禁判定 |
| core.judge | 无测试(criteria)任务的完成判定器 |
| loop | AutoRSIRuntime——自主监督器(可选启用 sentinel_engine) |
| dream | dream_once——自动化节奏接缝:证据摄入、层级决策、门禁 + ALM、技能发布;带锁保护 |
| lifecycle | ArtifactLifecycleManager——状态机、事件溯源历史、血缘、GC |
| sessions | Hermes state.db / Cursor state.vscdb 读取器、脱敏、经验→技能桥接 |
| share | git 支撑的存储:经验 + 世界 + 策略程序(带校验和的清单,仅暂存导入) |
| memory | DreamMemory——策略、配方、经验、树、事件 |
| sandbox | run_isolated——唯一的不可信代码执行边界(可选启用内容寻址结果缓存:SandboxCache/content_key) |
| holdout | 一次性评测任务预留(claim / release / show / split) |
| tools | CodeVerifier——候选解的沙箱验证 |
| llm | OpenAI 兼容客户端(stdlib urllib 传输;模型发现 + 404 自愈) |
| cli | loop / status / dashboard / bench / bench-policy / gate-replay / mcp / proxy / sentinel / holdout |
| mcp, mcp_server | 面向 loop 工具与 sentinel 检查的 MCP stdio 服务器 |
| proxy | 借用 goose 上游的环回 OpenAI 兼容代理 |
| dashboard | 零依赖实时 Web UI |
| gate_replay | 经验晋升规则的离线验证 |
| evolution | 策略演化的随时有效停止器(对晋升结果下注鞅;冻结再生成,保留最后晋升的策略) |
| sentinel | 与宿主无关的错误类引擎 + SentinelObservation 世界契约 |
| utils.goose | goose 配置解析器(CLI + 桌面方言,钥匙串) |
| plugins/* | Hermes / Claude Code / goose / DeepSeek Harness / Cursor 适配器 |
| benchmarks/travelplanner | 基准测试:沙箱 MCP 服务器、episode 运行器、官方评测器封装、划分 CSV、已发布的原始 episode 记录 |

测试

python -m unittest discover -s tests # full suite, ~2 min
python scripts/fast_tests.py # fast subset (slow bench/sandbox modules excluded), ~15 s

仅用标准库:基准测试的行为契约(贪心必须什么都解不出;门禁臂必须压过 ε;rollout 必须(仅前缀)、沙箱逃逸回归、沙箱结果缓存身份契约、预留语义(先到先得、跨用途拒绝)、门控语义、MCP 协议、goose 配置方言、哨兵通道语义(提醒在每个预算内只触发一次,与重复记录合并,干净的调用计入预算;置换门控服务到 ceil(0.8·budget) 后永久拒绝,按会话计;30 天生产回放必须精确复现其记录的提醒次数)、模型发现与陈旧固定自愈契约,以及结构化接缝(跨会话计数永远不会进入 to_world_dict();前沿特征归因模式——带元数据时胜过贪心,不带时打平;内置 Hermes 引擎由 test_vendored_engine_matches_upstream 逐字节固定到上游)。

License

MIT — 见 LICENSE。
预览分享卡片长什么样 ↓patrykorwat/open-dream-rsi
分享 · DeepSeek Harness Hub
patrykorwat/open-dream-rsi

每个 AI 智能体都在反复交同一笔学费:任务失败,想明白哪里出了问题,然后会话一结束,这份理解就丢了。Open…

这是你的仓库?认领条目

回到顶部