前言¶
在 DeepSeek Harness(DSH)裏跑智能體時,工作區怎麼建、會話怎麼發消息與插隊、配置項怎麼改且不撞車——這些能力本來在桌面端或通過 DSH 內置服務完成。若希望智能體在工具鏈裏自助完成上述操作,又不能直接改 DSH 磁盤上的文件,就需要一層「走官方服務、帶預覽與審批」的主機側工具。
下面介紹的 dsh-host-ops(倉庫 laughinbytes/dsh-host-ops)是 laughinbytes 維護的社區插件(非官方),分類屬於 admin-security 方向:只提供工具、沒有 UI,通過 DSH 的 workspaceRegistry、sessionController、configEditor、approval 等服務暴露工作區、會話與可編輯配置行,並對寫操作做預覽、審批、審計與回滾。
這是什麼¶
- 定位:Host-side operations for DSH agents — workspaces, sessions, and governed configuration changes(tools only, no UI)。
- 維護者:laughinbytes(MIT 許可證,當前包版本 0.1.0)。
- 入口:插件目錄頁 skillhub.cn;源碼與說明以 GitHub README 爲準。
插件不直接編輯 DSH 文件;所有調用經由 DSH 自有服務完成。
核心功能:三個工具¶
dsh_workspace_manage¶
對工作區做註冊表級操作:list、get、create、rename、reorder、remove。其中 remove 僅註銷工作區,文件、會話與歷史仍保留。
dsh_session_manage¶
會話生命週期與消息投遞,包括:list、get、search、read、start、send、steer、queue、wait、notify、fork、attach、rename、reorder、sort、pin、unpin、archive、unarchive、cancel、model。
投遞語義(摘自 README):
send:下一輪送達;空閒目標立即開始,運行中目標在當前輪次結束後收到(不打斷)。steer:注入當前正在執行的輪次,下一步採納;若目標空閒則退化爲queue並說明。queue:只查看或編輯待發送消息,不發送新文本。send、steer、start、read、wait返回cursor;作爲after傳給read/wait可只取該點之後的變化。wait支持until: done | reply | step,超時時返回部分內容及idleForMs。
dsh_config_manage¶
對當前 profile 中任意可編輯配置行(DSH 核心行與已安裝插件行均可)執行:list、get、set、reset、revert、history。
寫操作治理¶
對配置的寫入並非裸寫,而是一套約束(README 原文要點):
- Preview token:寫操作須攜帶 preview 返回的 token;token 由當前狀態重算,中間狀態變化會導致拒絕(防 TOCTOU)。
- Approval:須通過
approval.request得到allowed-once;無審批通道則失敗關閉。 - Audit:每次生效的寫入記入內存審計(最近 100 條),含前後 override;工具結果帶 receipt 與恢復步驟。
- Revert:按
auditId做衝突檢查後回滾;當前值不一致則拒絕並列出衝突。 - Masking:含 key/token/secret 等敏感字段在 preview、receipt、approval、history 中脫敏(含嵌套如
providers[].apiKey)。 - 對
agent-loop、webserver、connection、modules等啓動必需行,會附帶警告與應急恢復說明。
安裝與啓用¶
在 Desktop profile 下從官方索引安裝:
dsh plugin --profile desktop add dsh-host-ops
從 GitHub 安裝:
dsh plugin --profile desktop add "github:laughinbytes/dsh-host-ops#main"
desktop 對應桌面應用 profile;Web UI 使用 web。也可在 Plugins → Add plugin 添加。無需自行聲明或安裝 @deepseek-ai/* 包,它們作爲 peerDependencies 由 DSH 安裝解析。
插件配置項¶
主機側插件在 Plugins 頁沒有可編輯表單,僅組件開關鍵。下列選項寫在插件行上(默認值如下),宜通過智能體調用 dsh_config_manage(含 preview/approval/audit)修改:
| 選項 | 默認值 | 含義 |
|---|---|---|
approval |
ask |
ask:每次配置寫均需審批;never:配置寫只讀 |
requirePreview |
true |
寫操作需要 preview token |
strictErrors |
false |
每條降級路徑均拋錯(開發/測試用) |
典型用法與驗證¶
安裝後,向智能體發起自然語言即可觸發工具,例如 README 建議的端到端冒煙:
- 讓智能體執行「list my workspaces」;工具正常返回且無報錯,即表示鏈路可用。
倉庫內還提供本地驗證腳本(開發者向):
node scripts/verify-dsh-host-ops.mjs
node scripts/verify-dsh-host-ops-schema.mjs
兼容性與限制¶
- DSH:
>=0.2.1-rc.2或>=0.2.2-rc.1(README 註明在0.2.2-rc.1上測試)。 - Node:
>=22.19.0。 - 平臺:macOS Desktop 已驗證,其他平臺未測試。
- 審計歷史僅在內存中保留最近 100 次寫入。
- 配置編輯僅覆蓋已有行的頂層字段;不能安裝/啓用插件 bundle、不能改 agent preset、不能直接寫 DSH storage 文件。
卸載與應急¶
在 Plugins 中禁用或移除 bundle,或執行:
dsh plugin --profile desktop remove dsh-host-ops
經工具寫入的配置 override 仍留在 profile 的 patch 層,可用 dsh_config_manage 的 revert/reset 收回。若改過啓動必需行導致 DSH 無法啓動:退出 DSH,將 ~/.dsh/profiles/<profile>/cordis.patch.yml 重命名爲 .bak-<timestamp> 後重啓;原始值可在工具 receipt 中查看。
適用場景與注意¶
適合誰:需要在 DSH 智能體側自動化管理工作區與會話、在審批與審計約束下改 profile 配置的開發者或運維向用戶;分類 admin-security 與「治理寫配置」的設計一致。
務必注意:
- 插件以當前 DSH 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認是否符合你的安全策略。
- 社區目錄 skillhub.cn 爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係;本插件爲 unofficial community plugin。
- GitHub 上星標數爲 0(截至目錄信息),使用前自行評估成熟度。
結尾¶
dsh-host-ops 把 DSH 自己的工作區、會話與配置編輯能力封裝成三組工具,並通過預覽、審批、審計與回滾約束寫路徑,適合「智能體自助運維 DSH 主機狀態、但不碰磁盤配置文件」的場景。進一步瞭解請查看 插件目錄頁 與 GitHub 倉庫。