dsh-host-compliance-check:DSH 輪末需求合規提醒宿主插件

前言

在 DeepSeek Harness(DSH)裏跑長會話時,主模型往往在「改完文件、準備結束本輪」時缺少一道固定閘門:本輪動過哪些路徑、是否和用戶原始需求一致,容易依賴人工回憶或事後 diff。常見做法是手動加 stop-hook、或在對話裏反覆叮囑「改完自查」——前者要維護鉤子邏輯,後者不穩定。

下面介紹社區工作流類宿主插件 dsh-host-compliance-check(維護者 liuyun847):在主會話輪次正常結束時,若本輪確實寫過文件,向主會話注入 notice 形態的合規提醒(含文件清單與自查引導),由主模型當場決定直接收尾、簡要自查,或阻塞並調用 subagent 深入檢查。DSH 生態主張「一切皆插件」;插件索引來自獨立社區目錄 SkillHub,與 DeepSeek / 幻方無官方從屬關係。

這是什麼

dsh-host-compliance-check 是 DSH 宿主插件,通過 cordis.patch.yml 掛入 Cordis 運行時。SkillHub 上的簡介爲:「DSH 宿主插件:輪末自動派發需求合規檢查子智能體 (DeepSeek Harness)」;倉庫 README(v0.4.x)進一步說明:行爲上模仿 Trae 的 stop-hook(PostToolUse + Stop → decision 移交),當前版本不自動派發檢查子智能體,而是在輪末注入 notice,由主模型自行判斷後續動作。

  • 倉庫:liuyun847/dsh-host-compliance-check
  • 分類:工作流(SkillHub categoryKey: agent-workflow)
  • 許可證:MIT(SkillHub 元數據)
  • 當前 manifest 版本:0.4.2(目錄頁標註 v0.4.2)

核心功能

以下能力均來自倉庫 README 與 SkillHub 同步的 manifest 描述,安裝前可在目錄頁查看完整 README。

輪末 notice 提醒

主會話輪次正常結束(監聽 agent/turn-stopping,近似 Trae 的 Stop)時,若滿足:本輪修改過文件、且本用戶輸入尚未提醒過,則通過 agent.inject 注入 notice(source.form='notice',summary 一句話 ≤120 字)。消息進入 next-step 隊列,本 turn 繼續,主模型當場看到並響應後再真正結束——效果上類似 Trae 的 block,而非靜默結束。

基於 tools/result 的文件收集

v0.4.0 起,寫入路徑的收集信源改爲 tools/result 實時精確記錄:

  • 頂層 write / edit 成功 → 提取真實 file_path;
  • run_code 內通過 tools.write / tools.edit 子派發同樣經工具管道產生 tools/result;
  • 會話事件日誌中的頂層 tool/call 僅作兜底。

每輪用戶新消息經 agent/pre-step 復位「已提醒」標記與本輪寫入表。可對路徑配置 skipPaths 過濾。

會話範圍與提示內容

  • 僅對主會話觸發;子代理會話(header origin: 'subagent')排除,避免嵌套提醒。GUI 恢復/續寫的 fork 會話(有 parentSession、無 origin)仍視爲主會話。
  • 提示詞攜帶按時間順序拼接的全部用戶輸入歷史(跳過插件注入,過長時截斷保留最新),並內置自查清單與處理方式引導(可直接結束 / 阻塞調 subagent 或 subagent_fork 深查)。

已知限制

  • 只覆蓋經 標準 tools.write / tools.edit 的寫入;PTC 裸寫(如 await import('node:fs') 直接寫盤、繞過 tools 綁定)不產生 tools/result,插件檢測不到。
  • 無子代理自動派發,不依賴 ctx.get('subagents')。

配置項

在 cordis.patch.yml 對應 entry 的 config 中(README 表格):

字段 默認值 說明
skipPaths [] 跳過匹配的路徑(RegExp/字符串數組),命中則不記錄
diag false 寫診斷日誌到 ~/.dsh/compliance-diag.log(優先 DSH_HOME;排查用)

0.2.x 的 providerName、promptTemplate、diffMaxChars 等字段與 0.3.x 源碼解析邏輯已移除。

安裝與啓用

插件以當前 dsh 進程權限運行;安裝前應閱讀 GitHub 源碼與 MIT 許可證,確認 cordis.patch.yml 中的 bundle patch(./cordis.patch.yml)符合預期。

方式一:SkillHub 安裝計劃(推薦覈對 commit)

SkillHub 對 liuyun847/dsh-host-compliance-check 標註爲可安裝(installability: verified),並給出帶精確 commit 的命令(profile 示例爲 web,請按自己的 profile 替換):

dsh plugin --profile web add github:liuyun847/dsh-host-compliance-check#0a02278cef3a966dd7435cf00430c68a8e484453

執行後按安裝計劃重啓,例如:

dsh --profile web

並確認插件行已掛載且無啓動錯誤。

方式二:README 中的 profile 本地依賴

在 DSH profile 目錄(例如 ~/.dsh/profiles/web/)下:

  1. 在 package.json 增加 file 依賴並安裝:
{
  "dependencies": {
    "dsh-host-compliance-check": "file:./plugins/dsh-host-compliance-check"
  }
}

然後在該目錄執行 pnpm install(或 npm install)。

  1. 在 cordis.patch.yml 註冊:
- insert:
    - id: compliance-check
      name: 'dsh-host-compliance-check'
  1. 重啓 dsh web 生效。

README 註明:倉庫以 plugins/dsh-host-compliance-check/ 爲活源,運行時加載 node_modules 下的 file 拷貝;改活源後需把 lib/index.js、package.json 等同步到 node_modules/dsh-host-compliance-check/ 再重啓。

典型用法

啓用後無需單獨 CLI:在主會話中正常讓模型使用 write / edit(或 run_code 內的 tools 寫入)改文件。當本輪 turn 即將結束時,若本輪有記錄到的寫入且尚未對本條用戶輸入提醒過,會自動注入 notice,主模型應閱讀文件清單與用戶訴求對照,再選擇收尾或調用 subagent。

排查時可臨時設置 diag: true,查看 ~/.dsh/compliance-diag.log(或 DSH_HOME 下對應路徑)。

開發側單測(README):

pnpm install
node plugins/dsh-host-compliance-check/tests/diff.test.mjs

適用場景與注意

適合:希望在 DSH 主會話裏固定一道「輪末合規閘門」的團隊或個人;已使用 subagent 做深查、但希望默認由主模型決定是否派發,而不是插件硬編碼自動 fork。

注意:

  • 插件邏輯與宿主 Cordis 事件強相關,peer 依賴包括 @deepseek-ai/cordis、@deepseek-ai/dsh-llm、@deepseek-ai/dsh-subagent 等(見 SkillHub manifest);升級 DSH 時需關注兼容性。
  • 依賴 tools 管道的寫入檢測,PTC 裸寫不在覆蓋範圍內。
  • GitHub 倉庫星標爲 0(SkillHub 同步數據);以目錄頁與 README 爲準理解行爲,勿將目錄頁一句「自動派發子智能體」與 v0.4.x「notice + 主模型判斷」混爲一談。

鏈接

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/liuyun847/dsh-host-compliance-check
  • GitHub:https://github.com/liuyun847/dsh-host-compliance-check

經過上面的步驟,你可以在 DSH 工作流裏把「輪末是否對照需求與改動文件」從口頭習慣變成宿主插件驅動的 notice 提醒,並在需要時再交給 subagent 做深入合規檢查。

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

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

小夜