前言¶
在 DeepSeek Harness(DSH)裏跑 Agent 時,不少工具調用會先停在「等你審批」這一步。若你同時啓用了實驗性的 Auto 審查(@deepseek-ai/dsh-experimental-auto-review),審查 AI 可能在卡片裏給出拒絕或風險提示,但執行任務的 AI 並不會自動知道你的疑問,也不會知道審查側提醒了什麼。常見做法是:先拒絕,再把理由複製回對話——慢,且容易丟上下文。
下面介紹的 dsh-approval-consult(審批諮詢臺)把「問清楚再點允許/拒絕」接到審批卡片旁邊:兩條獨立問答通道、常用問題可編輯、有用的記錄會留在會話裏。維護者爲社區目錄中的 0tests,分類爲工作流;當前 npm 版本爲 v1.1.3,許可證 MIT。
這是什麼¶
dsh-approval-consult 是一個本地 DSH Web 插件:宿主側爲 Cordis 插件,瀏覽器端通過 dsh.client 模塊注入 UI。按 README 說明,無構建步驟、無第三方運行時依賴;Node 引擎要求 >=20.0.0。
它解決的核心問題是:在同一次待審批期間,你可以分別向「執行 AI」和「自動審查 AI」提問,流式看回答,再在同一面板裏做「允許一次 / 拒絕」——與官方審批卡片是同一動作,而不是另起一套審批流程。
核心功能¶
雙通道與降級¶
- 桌面端爲右側抽屜,手機端爲底部彈層;審批卡片出現時在右上角(手機略偏下)有「⚠ 審批有疑問?」膠囊。
- Tab 分爲「執行 AI」「審查 AI」「雙問」。未安裝或未啓用官方自動審查插件時,宿主檢測後自動降級:只保留執行 AI 通道,不顯示審查相關入口(
reviewerMode可設爲auto/on/off強制行爲)。 - 執行 AI 的問答完成後會通過
agent.inject()以「審批諮詢記錄」寫入會話,下一輪 Agent 可見;官方 Chat 默認隱藏普通 context 行,回看可依賴面板線程或對話流末尾的「審批諮詢記錄」入口。 - 審查 AI 的回答默認不進主對話;僅在審批仍未結束時可點「轉達給執行 AI」注入。審批結束後面板只讀,不能再轉達。
審查上下文兩種來源¶
- 官方審查已捕獲:面板展示當次審查的 risk / decision / reason 等,追問時使用官方審查請求的原始前綴(
REVIEW_POLICY+ 四段材料 + 結論),不塞進主對話。 - 未捕獲到官方審查(例如 sandbox 提權等非 auto-review 審批):可點「讓審查 AI 重新評估」,按官方
REVIEW_POLICY與會話日誌重建的四段材料給出 advisory 參考意見——README 明確說明這不是官方審批結論。
常用問題與數據目錄¶
- 預設問題以 chips 一鍵發送;面板內可編輯(新增、刪除、排序、恢復默認),保存後寫入用戶數據目錄的
presets.json。 - 默認目錄爲
~/.dsh-approval-consult;DSH 以--profile啓動時落在該 profile 的data/approval-consult;可用配置項dataDir或環境變量DSH_APPROVAL_CONSULT_DATA覆蓋。
與審批倒計時插件的可選集成¶
若安裝了 dsh-approval-timeout,面板可顯示自動拒絕倒計時;默認策略 timeoutAutoPause: on-send 表示只有真正開始提問時才暫停倒計時(也可配置 on-open / off)。未裝該插件時宿主不探測、界面不出現任何倒計時相關文案。
設計約束(旁路、不接管)¶
README 強調:監聽 llm/stream 時透傳 chunk,僅記錄請求;在 approval/request 上登記 pending 後仍返回官方 next() 結果;不改 req.signal、不替換官方審批卡片。雙通道問答帶哨兵與重入保護,避免被本插件自己的監聽器遞歸捕獲;並複用與主對話/審查請求一致的前綴以利於 provider prompt cache 命中。
安裝與啓用¶
當前版本 v1.1.3 已發佈到 npm(包名 dsh-approval-consult)與 GitHub Release。任選一種方式安裝後,在 DSH Web「插件」裏啓用,並重啓一次 dsh web 更穩妥。
方式 A:npm¶
npm install dsh-approval-consult
也可讓 Agent 通過 plugin_manager 的 install_bundle 安裝該 npm 包名(需相應審批權限)。
方式 B:Release tarball¶
在 DSH Web →「插件」→「添加插件」→「安裝第三方插件」中填寫 tarball 絕對路徑,或直接使用 Release 鏈接:
https://github.com/0tests/dsh-approval-consult/releases/download/v1.1.3/dsh-approval-consult-1.1.3.tgz
安裝後點「立即啓用」。
方式 C:本地目錄¶
在「安裝第三方插件」中填寫插件目錄的絕對路徑(開發或 link 安裝)。本地開發可在 profile 的 cordis.patch.yml 中對 id: approval-consult 設置 devWatch: true 等;修改 package.json / cordis.patch.yml 後建議重啓 DSH。
DSH Desktop 使用同一套 Web 應用,需裝進桌面端使用的 desktop profile;細節見倉庫內 docs/DESKTOP.md。
典型用法¶
- 觸發需要審批的工具調用(例如 Auto 審查拒絕一次中風險操作,或 sandbox 臨時提權)。
- 審批卡片出現後,點「⚠ 審批有疑問?」打開面板;查看上下文卡片中的風險等級、審查結論、工具參數與執行 AI 上一步說明。
- 選擇「執行 AI」「審查 AI」或「雙問」,點預設問題或自由輸入;閱讀流式回答及 token / 緩存命中提示。
- 需要時把審查側回答「轉達給執行 AI」(僅審批等待期間);執行側記錄會自動注入會話。
- 在面板底部選擇「拒絕」或「允許一次」。審批結束後 banner 提示已結束,問答仍可只讀瀏覽。
配置要點¶
在 profile 的 cordis.patch.yml 中覆蓋本插件 config(或修改 bundle 內 cordis.patch.yml 後重啓)。常用項包括:
| 鍵 | 默認 | 說明 |
|---|---|---|
maxQuestionChars |
2000 |
單條提問長度上限 |
maxConcurrentJobs |
3 |
同一審批下併發回答數上限 |
timeoutAutoPause |
on-send |
與 dsh-approval-timeout 的自動暫停策略 |
reviewerMode |
auto |
審查 AI 能力開關 |
dataDir |
自動 | 用戶數據目錄 |
devTools |
false |
生產環境務必保持關閉 |
完整表格與 presets、executorMaxTokens 等字段見 GitHub README。
適用場景與注意¶
適合誰:經常在 DSH Web 里人工審批工具調用、且已或計劃配合 Auto 審查插件的開發者;希望在點「允許一次」之前用自然語言問清風險與參數含義,並保留諮詢記錄供後續 step 使用。
權限與安全:插件與當前 DSH 進程同權運行;安裝前應閱讀源碼與 MIT 許可證,確認 devWatch / devTools 等開發向配置在生產 profile 中保持關閉。社區插件目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態本身是「一切皆插件」的擴展方式。
結尾¶
dsh-approval-consult 把「審批卡片旁的諮詢臺」做成一等公民:雙通道、不污染主對話的默認策略、會話內可回放記錄,以及與官方審批動作對齊的底部按鈕。需要詳情、配置與 Release 時,以倉庫爲準。
- 目錄頁:https://www.skillhub.cn/plugins/0tests/dsh-approval-consult
- GitHub:https://github.com/0tests/dsh-approval-consult