dsh-agent-governor: DeepSeek Harness 的兩重攔截層

前言

DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。在實際開發和使用中,Agent 往往容易在輸出承諾上誇大其詞,或在工具調用時執行危險操作。dsh-agent-governor 是一個安裝在 DSH 上的自定義插件,它通過增加兩層可獨立開關的攔截層,降低 Agent 的錯誤率。

插件定位

  • 名稱:dsh-agent-governor
  • 倉庫:https://github.com/kxdyh/dsh-agent-governor
  • 作者:kxdyh
  • 類別:工作流
  • 許可證:MIT

核心功能

該插件包含兩個獨立的攔截層:

  1. DOL 層(通信語義治理):管理 Agent「說什麼」。將道義規則(許可/禁止/義務/豁免)注入系統提示,並審計可見輸出。對於沒有證據的完成性斷言、憑據外泄、絕對化承諾進行標記,並要求模型在下一步進行自我糾正。
  2. Sentinel 層(工具執行治理):管理 Agent「做什麼」。在工具調用執行前校驗參數。對於破壞性命令和無依據的數值參數進行攔截,並將結構化的重試反饋交還給模型。

安裝與啓用

插件是一個聲明瞭 bundle 的 npm 包,使用 DSH 自帶的安裝器即可安裝。

# 使用本地絕對路徑安裝
dsh plugin add /absolute/path/to/dsh-agent-governor

安裝後,插件會寫入當前 profile 的 bundle 列表並立即生效。客戶端部分需要刷新頁面(F5)以加載新的頭部控件。注意:改動宿主規則(index.js)後必須重啓應用才生效。

使用方式

插件的開關和統計信息位於會話標題欄右側。

控件說明

  • 盾牌圖標:收納兩個攔截層的開關。
  • 狀態指示:灰=全關,橙=只開一層,綠=兩層都開。攔截髮生時圖標會短暫脈衝。
  • 攔截總數:自本次啓動以來的攔截總數(Sentinel 攔截 + DOL 標記)。
  • 面板交互:點擊盾牌圖標展開面板(帶縮放、淡入、上浮動畫)。點擊面板外或按 Esc 收起。
  • 影子模式:該層只記錄、不攔截,用於在正式啓用前校準規則。
  • 統計行:顯示該層真實計數(如 Sentinel 的檢查/攔截/證據條數;DOL 的審計/標記/糾正)。
  • 清零統計:只清計數,不改變開關和證據緩存。

刪除防護

在 Sentinel 層的詳情中,刪除防護有三個強度檔位:
* 關注:只記錄,不攔截。命中的記錄帶影子標記。
* 攔截:攔截未被點名、也不是本會話自己創建的遞歸強制刪除(如 rm -rf)。單文件刪除不受限。
* 嚴格:連單文件刪除也要先有點名或屬於自己創建。保留對 tmp/cache 等臨時目錄的豁免。

日誌與狀態

  • 攔截記錄:點擊盾牌右側的賬本圖標查看。每行包含時間、層標籤、規則名、步驟。支持篩選(全部/工具攔截/輸出標記),最多保留 80 條。日誌文件位於 <dsh-home>/storages/agent-governor-log.json。
  • 狀態持久化:開關狀態保存在 <dsh-home>/storages/agent-governor.json。

規則詳解

Sentinel 層(工具調用執行前)

  • sentinel.destructive-delete(禁止):攔截 rm -rf /、mkfs、diskpart 等破壞性刪除。
  • sentinel.system-control(禁止):攔截關機、重啓、註銷本機等系統控制命令。
  • sentinel.history-rewrite(禁止):攔截 git push --force、git reset --hard 等歷史重寫操作。
  • sentinel.data-destroy(禁止):攔截 DROP TABLE、TRUNCATE TABLE 等數據銷燬操作。
  • sentinel.pipe-to-shell(禁止):攔截 curl ... | bash、iwr ... | iex 等管道到 Shell 的命令。
  • sentinel.unrequested-delete(義務):根據強度控制刪除操作的權限。
  • sentinel.evidence-gap(義務):攔截參數中未出現在本會話已驗證證據中的具體數值(≥100 且非整十)。
  • sentinel.repeat-loop(義務):同名同參數的成功調用超過閾值後拒絕(默認閾值 0 = 關閉)。

DOL 層(消息/輸出側)

  • dol.credential-leak(禁止):攔截輸出中的私鑰、sk- key、AWS/GitHub/Slack/Google 令牌、JWT。
  • dol.completion-claim(義務):攔截本回合沒有任何成功工具結果卻聲稱”已完成/已通過/已修復”的輸出。
  • dol.absolute-claim(禁止):攔截 “100%/絕對/保證” 等無法兌現的表述。
  • dol.number-grounding(義務):攔截輸出中缺乏證據來源的具體數值。

配置與豁免

可以在 profile 的補丁層中配置規則覆蓋和豁免:

- id: agent-governor
  name: '@kxdyh/dsh-agent-governor'
  config:
    dol: true
    sentinel: true
    repeatLimit: 5
    ruleOverrides:
      dol.absolute-claim: true
      sentinel.evidence-gap: false
    dispensations: ['sentinel.history-rewrite']

注意事項

  1. 攔截範圍:插件不攔截每一個 LLM 請求。請求側僅將治理規則追加進系統提示。真正能硬阻斷的是工具調用(tools/pre-execute)和Agent 步驟(agent/pre-step)。
  2. 輸出側機制:輸出側的治理主要依靠“下一步糾正”,而非硬阻斷。
  3. 依賴重啓:修改宿主規則(index.js)後必須重啓應用,否則配置不生效。
  4. 生態歸屬:該插件爲社區維護項目,與 DeepSeek / 幻方無官方從屬關係。
羽毛球分组比赛记分
小程序二维码

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

小夜