前言¶
在多模型協作場景下,模型傾向於直接執行任務而非將任務委派給更合適的模型。僅靠提示詞約束往往失效。派發閘門(Dispatch Gate)是 DSH 插件,在工具調用層實現物理約束,強制 AI 先派發任務再執行。
簡介¶
派發閘門是一個 DSH 插件,由 AlanKhronos 維護。它攔截工具調用,強制要求會話先有派發記錄。未派發時,無法執行 pwsh、write、edit 等工具。插件支持舉證式放行、行爲賬本記錄與回滾開關。
前置要求¶
- DSH:DeepSeek Harness,版本需 >= 0.1.7。
- Node.js:版本需 >= 20。
本插件依賴 DSH 的 Cordis 插件體系與tools注入環境。
核心功能¶
- 攔截工具調用:攔截
pwsh、write、edit、ego_*執行族及查資料工具(如web_search)。 - 強制先委派:本會話無派發記錄時,上述工具無法執行。
- 舉證式放行 (v10):v10 版本要求提供證據,而非僅聲明。必須包含關鍵參數(如
command、file_path)。 - 行爲賬本:記錄放行與攔截詳情,便於審計。
- 回滾開關:允許通過配置退回 v9 的聲明式語義。
安裝與啓用¶
本插件通過 plugin_manager install_bundle 安裝。在 cordis.patch.yml 的 bundle.patch 中掛載:
- insert:
- id: dispatch-gate
name: '@alankhronos/dsh-dispatch-gate'
config:
# 配置項見下文
配置項¶
在 cordis.patch.yml 的 config: 段修改:
| 配置鍵 | 默認值 | 說明 |
|---|---|---|
workTools |
['pwsh','write','edit'] |
自己動手類工具 |
workToolPrefixes |
['ego_'] |
前綴匹配的工具族 |
researchTools |
['web_search', ...] |
查資料類工具 |
requireDispatchEvidence |
true |
v10 舉證開關,設爲 false 可退回聲明式 |
permKeywords |
['perm','privilege','high-risk'] |
權限型通道關鍵詞 |
subagentGraceMs |
10000 |
兜底時間窗(毫秒) |
guardFailClosed |
true |
guard 異常時是否拒絕 |
典型用法 (SELF-DO)¶
v10 要求提供證據,三種有效寫法:
- 權限型自辦:
SELF-DO: perm=<pwsh|high-risk|privilege>; reason=<爲何權限只在你手裏>
- 結構化證據:
SELF-DO: tried=<zhipu,modelscope>; reason=<對方爲何干不了/爲何必須你來>
- 本會話已派發:
SELF-DO: <一句話理由>
前提:本會話 dispatch > 0 或 dispatchFailed > 0
行爲賬本¶
插件會在 logDir/dispatch-stats.jsonl 記錄行爲。主要事件類型包括:
- dispatch:成功派發
- selfdo:自辦放行
- selfdo-permit:帶證據放行
- blocked:被攔截
- dispatch-failed:派發失敗(失敗也算證據)
結尾¶
派發閘門通過物理約束替代了提示詞紀律,確保模型先委派後執行。其行爲賬本功能便於審計。更多細節請參考 GitHub 或 DSH 目錄。