DeepSeek Harness (DSH) 提供了一套自引用工具集(如 cordis_run),允許智能體編寫並熱加載插件,但動態包僅存在於進程內存中,重啓即消失。dsh-genie 是這個常規開發工作流的壓縮版本,它將智能體在運行時驗證的代碼轉化爲永久安裝的插件。
核心功能¶
dsh-genie 提供了一組工具來管理這些“願望”:
genie_keep:將智能體剛剛驗證過的動態包設爲永久。genie_wish:將智能體直接編寫的代碼設爲永久(無需原型步驟)。genie_list:列出機器上的所有願望及其運行狀態。genie_revoke:取消願望列表並解綁,除非另有要求,否則保留源碼。/wish:人類視圖,展示已授予的願望、活躍狀態及代碼位置。Mounts @deepseek-ai/dsh-tool-cordis:掛載 DeepSeek Harness 的自修改工具集。
安裝與啓用¶
使用以下命令安裝插件:
dsh plugin --profile web add github:swaylq/dsh-genie
安裝後重啓 dsh。該插件本身不依賴 pnpm、網絡或構建授權,且授予的願望僅是文件。
典型用法¶
在智能體開發流程中,可以按以下步驟操作:
- 智能體編寫插件並通過
cordis_run掛載測試。 - 驗證功能正常後,下達“keep it”指令。
- 執行
genie_keep dyn-1將動態包轉爲正式願望,生成dsh-wish-ship-it。 - 重啓
dsh後,該插件將在每次啓動時加載。
配置衝突處理¶
如果個人配置中已掛載 @deepseek-ai/dsh-tool-cordis,安裝 dsh-genie 會因爲工具名衝突導致加載失敗。需要在配置文件中禁用 dsh-genie 自帶的行:
- id: genie-tool-cordis
disabled: true
配置選項¶
在 cordis.patch.yml 中對 genie 行進行配置:
allowUpdate(默認true):控制是否允許mode: "update"覆蓋已存在的願望。
工作原理與注意事項¶
- 願望即文件:每個願望是一個包含
package.json、cordis.patch.yml和index.js的目錄。授予後,代碼不會再次被修改,可以像普通代碼一樣讀取、編輯或發佈。 - 運行時域:被保留的動態包會改變其運行領域。原本在
cordis_defineVM 沙箱中運行的代碼(無 Node 全局對象),在永久化後將運行在普通 Node 環境中。如果代碼依賴了沙箱中的 Facade,可能需要調整。 - 加載時機:代碼不會在寫入會話中執行,而是僅在下次重啓時加載。
- 驗證方式:生成模塊在安裝前僅通過
node --check進行解析檢查,不執行代碼。 - 層順序:願望的補丁層按追加順序生效,位於
dsh-base和其他已安裝插件之後。 - 命名規則:願望名稱必須是單個驗證過的路徑段。
信任立場¶
授予的願望是擁有 Harness 完整上下文的普通代碼。dsh-genie 不會在寫入會話中執行代碼,且利用 node --check 進行靜態驗證。但它不會對代碼進行沙箱隔離或審查。如果智能體擁有足夠的權限,其行爲與直接寫入文件一致。建議在重啓前檢查願望源碼,並確保你信任該代碼。