@lytharalab/dsh-cons-auto-review:程序先放行、疑難再交給 LLM 的 CAutoR 審查

前言

在 DeepSeek Harness(DSH)裏做智能體開發,權限模式往往要在「全人工確認」和「交給模型自動審查」之間取捨。官方 Auto Review 會把更多操作送進 LLM,響應和成本都上去;純只讀或沙箱模式又容易在寫文件、跑 Shell 時頻繁打斷。若希望安全且可預期的操作由程序直接放行,只有規則覆蓋不了的動作才升級審查,就需要一層「確定性優先」的審查策略。下面介紹社區插件 DCAR(@lytharalab/dsh-cons-auto-review)如何在 DSH 權限菜單裏提供 CAutoR 模式,以及安裝與日常用法。

這是什麼

@lytharalab/dsh-cons-auto-review(README 中稱 Con’s 自動審查 · DCAR 1.2.1)由 LytharaLab 維護,npm 包名與 GitHub 倉庫 LytharaLab/DSH-Cons-Auto-Review 對應。插件爲 DSH 的「權限」菜單增加 CAutoR 預設:複用 DSH「工作區內修改」的確定性路徑規則,對可判定的安全操作返回 allow,其餘返回 escalate 交給 LLM Auto Review——第一層不會靜默拒絕,只會放行或升級。

CAutoR 的執行策略是 danger-full-access:放寬的是「哪些操作還需要人工確認」,不是進程隔離邊界;被批准的操作仍以宿主進程權限執行。

核心功能

程序優先審查

  • 路徑與文件:工作區讀寫、DSH 平臺臨時目錄、可選額外根目錄;含真實路徑與符號鏈接檢查;受保護路徑與未知操作升級 LLM。
  • Shell 快速檢查:一組明確的只讀命令及 mkdir / touch 可走程序層;未知命令、腳本、管道、重定向、變量展開、通配符和複合命令會升級。npm run、Python、Node、Git 默認升級,因脫離沙箱後可能產生工作區外效果。
  • 可配置項:工具分類、強制審查工具、顯式信任工具、自定義路徑字段,以及嚴格匹配完整 argv 的信任命令(詳見倉庫 docs/CONFIGURATION.md 與 examples/defaults.json)。

LLM 審查層

  • 默認使用當前 Agent 的 provider / model;可單獨指定審查模型、推理檔位、輸出額度、溫度、策略補充、併發、超時與重試。
  • 決策爲 allow / ask / deny;模型失敗不會自動放行;默認把拒絕或失敗交給用戶,亦可配置爲最終拒絕。
  • 審批問題始終使用中文(含模型確認問題與本次操作);界面爲英文時同樣中文詢問。
  • 修復「reviewer ended with max-tokens」:默認輸出預算 8192,截斷後最多擴容兩次至 32768;只接受完整 JSON 與正常結束。
  • 優先嚐試模型支持的 low 推理檔位;全部嘗試共用總超時,默認 120 秒。

長會話與上下文(1.2.0+)

會話變長後,1.1.0 及更早若整體超過 maxInputChars(默認 180000)會直接放棄審查並退回人工——每個需審查的操作都要手點。1.2.0 起對歷史與項目指令分段預算,從最舊條目省略並插入 omitted-context 說明;待執行動作永不裁剪。省略只會更保守,不會憑空產生授權。

review:
  maxInputChars: 180000
  maxHistoryChars: 60000
  maxProjectInstructionChars: 30000

其它行爲

  • 與普通工具、PTC 內部工具統一審查;外層 run_code 由各內部調用分別審查。
  • 子 Agent 默認繼承 DCAR;父 Agent 後續切換模式不會解除已委派子 Agent 的審查。
  • 會話統計、規則命中率、程序避免的審查請求數、可選 JSONL 日誌;可選審查緩存(默認關閉,僅緩存批准結果)。
  • 動態權限策略:審查入口激活後才提供 CAutoR;停用時取消等待中的審查。直接複用 Desktop 已有權限服務,無需替換 profile 裏的 permission 配置行。
  • 1.2.1:適配 DSH 0.2.1-rc.2 會話工作目錄切換;自動放行的工作區邊界仍是會話初始工作區,切換目錄不會擴大邊界。

與官方 Auto Review 同時安裝時,Auto review 與 CAutoR 是兩個獨立選項;只有選中 CAutoR 才走 DCAR 流程。

安裝與啓用

要求 Node.js 22.19+ 或 24+。插件在 README 中聲明兼容並測試 DSH 0.1.7-rc.2、0.2.0-rc.2、0.2.1-rc.2;DSH 插件 API 仍在變化,其他版本不作 1.2.1 的兼容承諾。

Desktop 安裝:

dsh plugin --profile desktop add @lytharalab/dsh-cons-auto-review

Web 端將 --profile desktop 改爲 --profile web。也可離線添加解壓目錄或隨包的 .tgz(無需編譯)。

從舊包名 dsh-cons-auto-review 升級時,先關閉 Desktop,移除舊包再安裝 scoped 包,並檢查 profile 中插件名是否已改爲 @lytharalab/dsh-cons-auto-review(示例見倉庫 examples/)。

重新啓動 DSH 後,在聊天輸入區「權限」欄選擇 CAutoR,或執行:

/permission CAutoR
/dcar on

若希望新會話默認使用 CAutoR:在 DSH 設置中將「新會話的默認權限模式」選爲 CAutoR 並保存。停用插件而默認值仍爲 CAutoR 時,新會話會回退只讀並顯示「CAutoR(DCAR 未啓用)」。

卸載前建議在各會話執行 /dcar off,再運行:

dsh plugin --profile desktop remove @lytharalab/dsh-cons-auto-review

典型用法

會話內命令

命令 作用
/dcar 或 /dcar status 版本、當前權限和啓用狀態
/dcar on / /dcar off 啓用 CAutoR / 切回回退模式
/dcar stats 本會話計數和程序命中率
/dcar history 20 最近 20 條審查記錄
/dcar config 查看生效配置
/dcar config {"review":{"timeoutMs":30000}} 修改本會話審查設置
/dcar check write {"file_path":"src/a.js","content":"x"} 僅跑程序規則,不執行工具、不調用模型
/dcar clear-cache 清空審查緩存
/dcar reset 重置本會話配置、統計及緩存

會話級配置覆蓋隻影響當前進程中的該會話;命令名、子 Agent 繼承等加載時設置需在 profile 中修改並重啓。

升級後建議的 review 片段

從舊版升級且 profile 裏仍保留較小 maxTokens 或較短 timeoutMs 時,README 建議對齊包內示例:

review:
  maxTokens: 8192
  maxTokensLimit: 32768
  tokenLimitRetries: 2
  preferLowReasoning: true
  timeoutMs: 120000

可疊加示例見倉庫 examples/desktop-config.patch.yml。

適用場景與注意

適合誰:已在 DSH Desktop 或 Web 上使用智能體、希望減少「明顯安全」寫文件與只讀 Shell 的重複確認,同時保留 LLM 對邊界外操作的審查;分類上屬於 DSH 社區目錄中的工作流類插件。

安裝前建議:插件以當前 dsh 進程權限運行,路徑檢查與執行之間、以及程序無法識別的命令語義仍存在時間窗口與判斷盲區,完整說明見倉庫 docs/COMPATIBILITY.md。安裝前應自行查看源碼、MIT 許可證 與 SECURITY.md 中的報告渠道。DSH 生態強調「一切皆插件」;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

DCAR 把 CAutoR 做成「確定性 allow / escalate + LLM 按需審查」的組合:程序層處理可規則化的工作區與 Shell 場景,長會話通過分段預算避免審查整體失敗,模型層負責疑難決策且默認不 silent allow。需要細節時以 npm 包 1.2.1 與倉庫 README、docs/CONFIGURATION.md 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/LytharaLab/DSH-Cons-Auto-Review
  • GitHub:https://github.com/LytharaLab/DSH-Cons-Auto-Review
  • npm:https://www.npmjs.com/package/@lytharalab/dsh-cons-auto-review
羽毛球分组比赛记分
小程序二维码

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

小夜