前言¶
DSH 走“一切皆插件”的路線。對智能體工作流來說,插件擴展能力,也擴大了工具調用面:bash、文件編輯、網絡請求都可能直接執行。只靠事後日誌不夠,需要在調用執行前做策略判斷,並留下允許、阻止和原因的記錄。
下面介紹 @agenticcontrolplane/dsh。它是面向 DeepSeek Harness 的 native Cordis plugin,接在 dsh 的 typed interception points 上,不是 shell-hook shim。
這是什麼¶
@agenticcontrolplane/dsh 的定位很直接:在每個工具調用運行前檢查策略,並記錄哪些調用被允許、哪些被阻止,以及原因。
倉庫爲 agentic-control-plane/dsh-acp-plugin,npm 包名爲 @agenticcontrolplane/dsh,許可證爲 MIT。它支持一個 workspace 覆蓋 dsh、Claude Code、Codex、Cursor 和 OpenClaw。
注意區分:dsh 核心中的 packages/acp 是 Zed’s Agent Client Protocol,與這裏的 Agentic Control Plane 插件無關。
核心功能¶
調用前策略決策¶
插件註冊在 tools/pre-execute,支持三種決策:
allow:放行調用。deny:阻止調用,並記錄原因。ask:交給 dsh 的 approval flow。
調用後輸出掃描¶
插件註冊在 tools/post-execute:
- 服務端阻斷時,將結果轉成 corrective feedback。
- shadow mode 下會給出通知。
決策記錄¶
決策發送到控制檯,包含 tool、input preview、decision、reason、latency、cost。
失敗姿態¶
- 交互式會話在控制面不可達時 fail open loudly。
- 無人值守 agent 在控制面不可達時 fail closed。
- policy deny 不受 outage posture 影響。
- 在無 approval service 的 headless compositions 中,dsh 會把
ask解析爲 deny。
工程形態¶
- 零依賴。
- plain ESM。
- 無構建步驟。
- 支持
cordis.patch.yml或環境變量配置。
安裝與啓用¶
先確認 dsh 使用 Node 22。dsh 要求 Node 22;Node 20 可能啓動失敗,且報錯不一定直接說明版本問題。
使用安裝腳本:
curl -sf https://agenticcontrolplane.com/install.sh | bash
安裝後,用 profile 啓動 dsh:
dsh --profile <your-profile>
手動安裝命令如下:
dsh plugin --profile <your-profile> add @agenticcontrolplane/dsh
dsh --profile <your-profile>
安裝包和掛載到 profile 是兩件事。確認插件已掛載:
dsh --profile <your-profile> --dump-config | grep @agenticcontrolplane/dsh
如果沒有命中,把 @agenticcontrolplane/dsh 加入該 profile 的 package.json 的 "dsh.profile.bundles" 列表。
憑據可放在 ~/.acp/credentials,也可通過 ACP_BEARER_TOKEN 提供。沒有 key 時,插件會報告問題並保持不干預,不會讓會話不可用。
典型用法¶
啓動當前 profile:
dsh --profile <your-profile>
在會話中,工具調用會經過:
1、tools/pre-execute:返回 allow、deny 或 ask。
2、tools/post-execute:調用執行後進行輸出掃描。
配置可通過 profile 的 cordis.patch.yml 覆蓋。條目使用 id: acp、name: @agenticcontrolplane/dsh,配置項包括 governBase、agentTier、timeoutMs:
- id: acp
name: @agenticcontrolplane/dsh
config:
governBase: <your-govern-base>
agentTier: <your-agent-tier>
timeoutMs: <your-timeout-ms>
環境變量方式:
export ACP_GOVERN_BASE=<your-govern-base>
export ACP_BEARER_TOKEN=<your-bearer-token>
export ACP_AGENT_TIER=<your-agent-tier>
export ACP_SHADOW=off
運行測試:
npm test
適用場景與注意¶
適合:
- 對 dsh 的工具調用做執行前策略檢查。
- 保留 allow、deny、ask 的決策記錄。
- 在 dsh、Claude Code、Codex、Cursor、OpenClaw 中複用同一 workspace。
- 給無人值守 agent 設置更保守的失敗策略。
注意:
- 插件以當前 dsh 進程權限運行。安裝前應檢查源碼與 MIT 許可證。
- dsh 要求 Node 22;Node 20 可能啓動失敗,且錯誤不一定直接說明原因。
- 控制面不可達時,交互式會話 fail open loudly,無人值守 agent fail closed;policy deny 不受影響。
- 無 approval service 的 headless compositions 中,dsh 會把
ask解析爲 deny。 - Claude Code bridge 可以使用未修改的
hooks.json,但 input rewriting 不被 honor;推薦 native plugin。 - 包名曾爲
dsh-plugin-acp;舊名仍可安裝,但已 deprecated。 - 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不應理解爲官方應用商店。
結尾¶
@agenticcontrolplane/dsh 把工具調用策略移到執行前,並保留允許、阻止和原因的記錄。GitHub:https://github.com/agentic-control-plane/dsh-acp-plugin。目錄頁鏈接未在已覈實事實中確認,本文不直接給出 URL。