@agenticcontrolplane/dsh:在 DeepSeek Harness 中檢查工具調用並記錄決策

前言

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:返回 allowdenyask
2、tools/post-execute:調用執行後進行輸出掃描。

配置可通過 profile 的 cordis.patch.yml 覆蓋。條目使用 id: acpname: @agenticcontrolplane/dsh,配置項包括 governBaseagentTiertimeoutMs

- 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。

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

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

小夜