前言¶
在 DeepSeek Harness(DSH)裏做 coding agent 時,常見做法是固定一套探索順序或手工調參,很難系統化地比較「這一輪該先擴哪條分支、下一輪策略該怎麼改」。Dream-RSI 一類思路強調從已生成的發現樹出發,用 replay 評估策略、再修訂參數形成閉環;若要在 Harness 裏試這類流程,需要插件把 agent、工具和狀態目錄接好。
下面介紹社區插件 dsh-dream-rsi(維護者 CharlesXu-HQ,SkillHub 分類爲工作流):在 DSH 中註冊 coding agent 與策略修訂 agent,並通過工具 dream_rsi_cycle 執行一輪「複製候選 → 探索與評測 → 凍結樹 → prefix-only replay → 修訂策略 → 晉級策略」的實驗循環。它是獨立 TypeScript / Cordis 插件,不依賴 Pi、也不要求 DGX Spark,仍依賴已安裝的 DeepSeek Harness。
這是什麼¶
- 倉庫: CharlesXu-HQ/dsh-dream-rsi
- 目錄頁: SkillHub 插件頁
- 版本(package.json):0.1.0,MIT 許可證;README 標明爲非官方社區實現,不代表 DeepSeek 或 Dream-RSI 論文作者。
- 定位:Experimental replay-based exploration-policy plugin for DeepSeek Harness——用 replay 在歷史發現樹上比較策略,並受限地修訂線性排序類策略參數,而非完整復現論文中任意可執行策略代碼。
每次調用 dream_rsi_cycle 執行一個循環:從種子工作區複製候選 → agent 探索並由固定 evaluator 評分 → 凍結 discovery tree → 對歷史全部樹做 prefix-only replay → agent 修訂策略參數 → 將 replay 平均分最高的策略用於下一輪;當前策略也參與比較,因此在已記錄歷史樹上的 replay 分數不會下降——這不是新任務上的性能保證。
核心功能¶
插件通過 ctx.agents 創建固定的 coding agent 和策略修訂 agent,通過 ctx.tools 暴露 dream_rsi_cycle。
- 在線探索:策略 agent 只看到已生成節點;合法父節點爲根或當前葉子,每輪最多
maxWidth個候選。工作區從父節點快照複製,同一輪候選可並行運行。 - Prefix-only replay:從僅含根的前綴開始;葉子打開其唯一歷史子節點,根打開最早尚未揭示的歷史子節點。此階段不調用 coding agent 或 evaluator。得分爲
bestScore - beta1 × N + beta2 × N / max(1, rounds)。 - 策略修訂:目前是受限的線性排序程序參數(根/分數/深度/年齡權重、batch 大小、停滯輪數等),用於檢驗「改進探索策略」的閉環,不能表達複雜策略結構。
- 狀態持久化:
stateDir/state.json保存 world pool 與當前策略;每個cycle-*目錄保存根與子節點工作區。stateDir必須與seedDir分離且互不包含。
安裝與啓用¶
需要 Node.js 22.19+ 和已安裝的 DeepSeek Harness CLI。倉庫聲明瞭 dsh.bundle 與 cordis.patch.yml,可作爲插件包裝入 Web profile。在插件源碼根目錄執行構建、測試並加入 Web profile:
npm install
npm test
dsh plugin --profile web add .
dsh --profile web --dump-config
獨立安裝包發佈後可用 dsh plugin --profile web add dsh-dream-rsi;目前尚未發佈到 npm。
安裝後,在任務 patch 中配置目標工作區與固定評測器,將 /ABS/PATH 換爲真實絕對路徑:
- id: dream-rsi
config:
seedDir: '/ABS/PATH/dsh-dream-rsi/examples/toy/seed'
stateDir: '/ABS/PATH/dsh-dream-rsi/.dream-rsi-state'
taskPrompt: 'Edit candidate.json so value approaches 42.'
evaluatorCommand:
- node
- '/ABS/PATH/dsh-dream-rsi/examples/toy/evaluate.mjs'
provider: deepseek
model: deepseek-chat
maxRounds: 5
replayRounds: 10
maxWidth: 2
revisions: 2
beta1: 0.01
beta2: 0.01
運行:
dsh web --patch /ABS/PATH/my-task.patch.yml
在會話中要求 agent 調用 dream_rsi_cycle。未配置任務時插件可加載,但調用工具會報缺少配置。所選 profile 還須具備 coding agent 所需的文件編輯工具與模型憑據。
Evaluator 約定:命令在候選工作區下運行,最後一個參數爲該工作區絕對路徑;須從 stdout 輸出 JSON,例如 {"score": 0.8, "feedback": "tests passed"}。評測器固定,不能被策略 agent 改寫。
質量檢查:npm test 覆蓋在線樹、prefix-only replay、非法動作與策略晉級語義;npm run check 做類型檢查。示例可單獨運行 node examples/toy/evaluate.mjs examples/toy/seed 驗證。
典型用法¶
經過上面的配置,一次 Web 會話中的典型路徑是:啓動帶 patch 的 dsh web → 在對話裏讓 agent 調用 dream_rsi_cycle → 插件按輪次寫入 stateDir 與 cycle-* 工作區 → 根據 replay 結果晉級策略,進入下一輪循環(受 maxRounds、replayRounds 等配置約束)。
Toy 示例的 seedDir 與 evaluate.mjs 在倉庫 examples/toy 下,適合先驗證 evaluator 與路徑是否正確,再換成自己的種子目錄與評測命令。
適用場景與注意¶
適合:已在 DSH Web profile 下跑 coding agent、希望實驗「發現樹 + replay 評分 + 策略參數修訂」工作流的研究或集成開發者;需要可重複的 stateDir 與固定 evaluator 的場景。
邊界與風險(來自 README):
- 尚無論文領域適配、原始超參數/提示詞、外部 holdout 評測和大規模實驗結果;未宣稱復現論文收益。
evaluatorCommand在宿主機運行,插件不提供安全沙箱。只應在可信工作區、可信評測命令和已隔離的 Harness 環境中使用;不要將模型生成的策略代碼直接eval或加載到宿主進程。- 安裝插件前建議閱讀源碼與 MIT 許可證;插件以當前
dsh進程權限運行。SkillHub 爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-dream-rsi 把 Dream-RSI 思路里「探索—凍結—replay—改策略」的一輪循環接到 DSH 的 agent 與工具面上,適合在可控 toy 或自有任務上驗證閉環,再決定是否擴展 evaluator 與策略參數空間。進一步發佈與會話驗證步驟見倉庫 docs/release.md。
- 目錄頁:https://www.skillhub.cn/plugins/CharlesXu-HQ/dsh-dream-rsi
- GitHub:https://github.com/CharlesXu-HQ/dsh-dream-rsi