dsh-approval-consult:工具審批等待時分別諮詢執行 AI 與審查 AI

前言

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

典型用法

  1. 觸發需要審批的工具調用(例如 Auto 審查拒絕一次中風險操作,或 sandbox 臨時提權)。
  2. 審批卡片出現後,點「⚠ 審批有疑問?」打開面板;查看上下文卡片中的風險等級、審查結論、工具參數與執行 AI 上一步說明。
  3. 選擇「執行 AI」「審查 AI」或「雙問」,點預設問題或自由輸入;閱讀流式回答及 token / 緩存命中提示。
  4. 需要時把審查側回答「轉達給執行 AI」(僅審批等待期間);執行側記錄會自動注入會話。
  5. 在面板底部選擇「拒絕」或「允許一次」。審批結束後 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
羽毛球分组比赛记分
小程序二维码

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

小夜