dsh-dream-rsi:在 DeepSeek Harness 中做 replay 驅動的探索策略實驗

前言

在 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。

  1. 在線探索:策略 agent 只看到已生成節點;合法父節點爲根或當前葉子,每輪最多 maxWidth 個候選。工作區從父節點快照複製,同一輪候選可並行運行。
  2. Prefix-only replay:從僅含根的前綴開始;葉子打開其唯一歷史子節點,根打開最早尚未揭示的歷史子節點。此階段不調用 coding agent 或 evaluator。得分爲 bestScore - beta1 × N + beta2 × N / max(1, rounds)。
  3. 策略修訂:目前是受限的線性排序程序參數(根/分數/深度/年齡權重、batch 大小、停滯輪數等),用於檢驗「改進探索策略」的閉環,不能表達複雜策略結構。
  4. 狀態持久化: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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜