dsh-genie:讓 DeepSeek Harness 的願望長存

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、網絡或構建授權,且授予的願望僅是文件。

典型用法

在智能體開發流程中,可以按以下步驟操作:

  1. 智能體編寫插件並通過 cordis_run 掛載測試。
  2. 驗證功能正常後,下達“keep it”指令。
  3. 執行 genie_keep dyn-1 將動態包轉爲正式願望,生成 dsh-wish-ship-it。
  4. 重啓 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_define VM 沙箱中運行的代碼(無 Node 全局對象),在永久化後將運行在普通 Node 環境中。如果代碼依賴了沙箱中的 Facade,可能需要調整。
  • 加載時機:代碼不會在寫入會話中執行,而是僅在下次重啓時加載。
  • 驗證方式:生成模塊在安裝前僅通過 node --check 進行解析檢查,不執行代碼。
  • 層順序:願望的補丁層按追加順序生效,位於 dsh-base 和其他已安裝插件之後。
  • 命名規則:願望名稱必須是單個驗證過的路徑段。

信任立場

授予的願望是擁有 Harness 完整上下文的普通代碼。dsh-genie 不會在寫入會話中執行代碼,且利用 node --check 進行靜態驗證。但它不會對代碼進行沙箱隔離或審查。如果智能體擁有足夠的權限,其行爲與直接寫入文件一致。建議在重啓前檢查願望源碼,並確保你信任該代碼。

羽毛球分组比赛记分
小程序二维码

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

小夜