dsh-host-ops:把 DSH 工作區、會話與配置治理暴露給智能體

前言

在 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 原文要點):

  1. Preview token:寫操作須攜帶 preview 返回的 token;token 由當前狀態重算,中間狀態變化會導致拒絕(防 TOCTOU)。
  2. Approval:須通過 approval.request 得到 allowed-once;無審批通道則失敗關閉。
  3. Audit:每次生效的寫入記入內存審計(最近 100 條),含前後 override;工具結果帶 receipt 與恢復步驟。
  4. Revert:按 auditId 做衝突檢查後回滾;當前值不一致則拒絕並列出衝突。
  5. Masking:含 key/token/secret 等敏感字段在 preview、receipt、approval、history 中脫敏(含嵌套如 providers[].apiKey)。
  6. 對 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 倉庫。

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

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

小夜