dsh-plugin-autoreview:按风险自动审查 Agent 工具调用

前言

在 DeepSeek Harness(DSH)里让 Agent 跑工具时,常见做法是「每次都要你点确认」或「完全放开」。前者打断节奏,后者一旦 Agent 误删目录、读 .env、执行 sudo 或 curl | sh,代价很高。下面介绍社区插件 dsh-plugin-autoreview(维护者 Fleey,分类 admin-security):在权限选择器里提供 「自动审查」 模式,普通读写与构建类操作直接执行,只有被判为高风险或涉及敏感信息的工具调用才弹出审批卡片;审查用的模型与思考程度可在插件设置里单独配置。

这是什么

dsh-plugin-autoreview 是面向 DeepSeek Harness 的纯 JavaScript 插件,适用于 DSH Desktop 与普通 dsh web。它在 tools/pre-execute 流水线最前面拦截每次工具调用,结合本地规则与可选的审查模型输出 {risk, sensitive, reason},再决定放行还是请你确认。

仓库:https://github.com/Fleey/dsh-plugin-autoreview
社区目录页:https://www.skillhub.cn/plugins/Fleey/dsh-plugin-autoreview

要求 DSH 0.2.1-rc.2 或更新;许可证 MIT(package.json 版本 0.1.0)。

审查结果怎么处理

README 中的对照表可作为预期行为参考:

结果 典型操作 处理
低风险 读写项目文件、构建、测试、git status、git commit 直接执行
中风险 删除项目中已有目录、git reset --hard、修改项目外的配置 默认直接执行(可改为需要确认)
高风险 删除主目录、sudo、curl … \| sh、格式化磁盘、强制推送、删除生产资源 请你确认
敏感信息 读取 .env、~/.ssh、云凭据、钥匙串、浏览器 Cookie,导出环境变量,把密钥发往外部 请你确认
审查失败 模型报错、超时、输出无法解析 默认请你确认(可改为直接拒绝)

明显危险的命令(例如 sudo rm -rf ~)可由本地规则直接拦下,不必等待模型。

安装与启用

插件无需构建。安装前请自行查看仓库源码与许可证;插件在 DSH 进程权限下运行。

方式一:插件页(推荐)

  1. 在 DSH Desktop 侧栏打开 插件,点击 添加插件。
  2. 输入 Git 地址并 安装:
https://github.com/Fleey/dsh-plugin-autoreview.git
  1. 安装后点击 立即启用;若提示重启,则重启 DSH Desktop。

也可在第 2 步填写本地克隆目录的绝对路径(链接安装,改代码后重启 DSH 生效,适合二次开发)。

方式二:Desktop 终端

从托盘或 Desktop 设置打开 Open DSH Terminal,执行:

dsh plugin --profile desktop add https://github.com/Fleey/dsh-plugin-autoreview.git

然后重启 DSH Desktop。使用 dsh web 时,将 desktop 换成 web。

卸载:在插件详情点 卸载,或运行:

dsh plugin --profile desktop remove dsh-plugin-autoreview

典型用法

  1. 在对话输入框下方的权限选择器中选择 自动审查(带 EXP 标记),勾选风险提示并确认。
  2. 该会话内后续工具调用按上表审查;放行无额外提示,仅略增延迟;需确认时弹出标准审批卡片并附理由。
  3. 切回其他权限模式后,审查立即停止。

注意:「自动审查」模式下 Agent 不使用沙箱(与「完全权限」相同),安全性依赖审查结果与本地规则,启用前需理解这一点。

设置项

侧栏 插件 → 智能命令审查 详情页可改设置,保存后对下一次工具调用生效,无需重启。

设置 默认值 说明
模型 跟随当前会话模型 判断风险的模型
思考程度 模型默认 审查请求的推理强度
需要确认的风险 仅高风险 可改为「中风险及以上」;敏感信息始终需确认
审查范围 均衡 均衡:只读工具与项目内编辑在未命中本地规则时跳过模型;全部:每次调用都送审
审查失败时 请我确认 可改为「直接拒绝」
超时(秒) 90 5–600
信任的工具 空 列出的工具名不再审查,如 todo_write, web_search
自定义规则 空 追加给审查模型的自然语言规则

也可在当前 profile 的 cordis.patch.yml 中手动编辑,例如:

- id: dsh-autoreview
  config:
    provider: deepseek
    model: deepseek-chat
    reasoningEffort: ''
    threshold: high
    scope: balanced
    onError: ask
    timeoutSeconds: 90
    trustedTools: []
    customRules: ''

审查模型只收到单次调用信息(工具名、参数、工作目录、系统等),不含对话历史;审查请求不写入会话。相同调用在 15 分钟内可复用上次结果。

工作原理(简图)

Agent 发起工具调用
  │
  ├─ 非「自动审查」/ run_code 外层 / 内部工具 / 信任工具 ─▶ 交给后续流程
  ├─ 本地规则:危险命令或只读敏感路径 ─▶ 请你确认
  ├─ 「均衡」下普通只读、项目内编辑 ─▶ 直接执行
  └─ 其他 ─▶ 审查模型 ─▶ 达阈值或 sensitive ─▶ 确认;否则执行

若与其他插件在 pre-execute 上冲突,后加载方的拒绝/确认优先。

适用场景与限制

适合: 希望 Agent 日常改代码、跑测试少被打断,又要在删库、sudo、读密钥等操作前保留人工闸门的团队或个人。

务必知晓:

  • 不要与官方实验插件 @deepseek-ai/dsh-experimental-auto-review 同时启用;两者都注册「自动审查」模式,后加载一方会启动失败。
  • 模型可能误判;本地规则不是完整沙箱;run_code 进程内直接执行的代码不审查,仅其调用的工具会审查。
  • 每次送审额外消耗 token 并增加延迟,可用「均衡」、更快审查模型或「信任的工具」减负。
  • 进程内子 Agent 审批策略为 never,需确认的调用会被直接拒绝。
  • 禁用或卸载插件时,进行中的「自动审查」会话会切到「完全权限」。

结尾

dsh-plugin-autoreview 在 DSH 的「一切皆插件」思路下,用本地规则加可选审查模型,把确认集中在高风险与敏感操作上,并允许单独指定审查模型与阈值。安装与行为以仓库 README 为准:

社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

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

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

Xiaoye