@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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye