前言¶
DSH 生態強調“一切皆插件”。開發者在實際做插件時,通常要同時處理文檔、源碼符號、Service、事件、工具、Config、實驗配置和正式插件包。如果這些工作都發生在日常 ~/.dsh 裏,容易把開發狀態、Profile 配置和正式插件混在一起。
DSH Forge 針對這個問題:它建立獨立的 ~/.dsh-forge Home、forge Profile 和開發者 Agent Preset,把源碼索引、運行時檢查、實驗記錄、驗證和 Promotion scaffold 放進一個可復現環境。它默認不會寫入普通 ~/.dsh,也保留與主線 DSH 同時運行的空間。
下面介紹 DSH Forge 的能力、安裝步驟和常用命令。
這是什麼¶
DSH Forge 是一個可復現、運行時感知的 DeepSeek Harness 插件開發 Profile。
它由 zhn1100 維護,GitHub 倉庫地址爲 https://github.com/zhn1100/dsh-forge,許可證爲 MIT。當前資料版本針對 @deepseek-ai/dsh@0.1.0-rc.6,參考源碼固定到提交 47f943859bef60e4160492346772ded9b24f765a。本項目不是 DeepSeek 官方項目。
核心功能¶
獨立 Home 與開發者 Preset¶
- 建立獨立的
~/.dsh-forgeHome。 - 提供
forgeProfile 和開發者 Agent Preset。 - 默認監聽
127.0.0.1:3188,與主線 DSH 的3080錯開;需要其他端口時可用--port覆蓋。
本地索引¶
- 本地索引 Harness 文檔、源碼符號、Service、事件、工具、Config 和示例。
- 可用於在本地檢索符號或接口,例如
Service.init。
實驗、驗證與 Promotion scaffold¶
- 管理可恢復的插件實驗。
- 保留驗證狀態。
- 提供
quick、package、full受限驗證流程。 - 提供 Promotion scaffold,用於承接正式化流程。
同步與鏡像¶
- 每次啓動安全同步普通
~/.dsh中的用戶配置,同時保護 Forge 本地修改。 - 同步的是用戶態數據,不同步當前工作文件夾源碼。
- 鏡像普通
~/.dsh各 Profile 通過cordis.patch.yml的insert聲明的 out-of-tree 插件。 forge/、profiles/、.agent-presets/和cordis.patch.yml不參與 Home 同步;例外是主線 Profile 通過insert聲明的 out-of-tree 插件會被鏡像。- Forge 側已修改或刪除的文件不會被覆蓋;源端刪除也不會傳播。
安裝與依賴邊界¶
- 使用 SHA-256 內容尋址 tarball 安裝自身,避免複用舊包緩存。
- 將 Cordis、System Prompt 和 Tools 保持爲宿主提供的可選 peer。
- 升級時先由 DSH 正常移除舊 Forge 依賴,再安裝新工件。
安裝與啓用¶
先確認環境:Node.js ^22.19.0 或 >=24,以及 pnpm。
先克隆倉庫、安裝依賴、運行驗證,再執行安裝命令。安裝程序默認目標爲 ~/.dsh-forge,不會寫入普通 ~/.dsh。
git clone https://github.com/zhn1100/dsh-forge.git
cd dsh-forge
pnpm install
pnpm run verify
node lib/cli.js install
經過上面的步驟後,可以在需要開發插件的工作區啓動 Forge Profile:
DSH_HOME="$HOME/.dsh-forge" npx @deepseek-ai/dsh@0.1.0-rc.6 --profile forge
啓動後打開 Web UI,選擇 DSH Forge 開發者 Preset。默認監聽 127.0.0.1:3188;需要調整時可用 --port <端口> 覆蓋。
典型用法¶
環境檢查¶
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js doctor
重建指定 Harness revision 的知識索引¶
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js sync --revision <commit>
搜索本地索引¶
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js search "Service.init"
驗證當前插件項目¶
node lib/cli.js verify --root . --level full
適用場景與注意¶
適合以下場景:
- 長期開發 DSH 插件,希望隔離 Home、Profile 和開發者 Preset。
- 需要固定 Harness revision,並基於文檔、源碼符號、Service、事件、工具、Config 做本地索引。
- 希望保留可恢復實驗、驗證狀態和 Promotion scaffold。
- 需要同時運行主線 DSH 與 Forge Profile。
使用前注意:
- 本項目不是 DeepSeek 官方項目。DSH 社區目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係。
- 插件會在當前 DSH 進程權限下運行。安裝前先檢查源碼、依賴和 MIT 許可證。
- 動態 Cordis Package 屬於顯式信任邊界。Forge 提供隔離和恢復能力,但不是強安全沙箱。
- 同步不會複製工作區源碼;從工作區 A 切換到工作區 B,不會複製 A 的代碼到 B。
forge/、profiles/、.agent-presets/和cordis.patch.yml不參與 Home 同步;主線 Profile 通過insert聲明的 out-of-tree 插件是例外。
結尾¶
DSH Forge 把 DSH 插件開發拆成獨立 Home、本地索引、實驗記錄、受限驗證和 Promotion scaffold。它適合需要可復現、可恢復、可與主線 DSH 並行運行的插件開發流程。
GitHub 倉庫:https://github.com/zhn1100/dsh-forge。社區目錄爲獨立站點,具體目錄頁入口以站點實際展示爲準。