dsh-auto-check:为 DeepSeek Harness 自动审查单独指定审查模型

前言

DeepSeek Harness(DSH)在工具执行前可以走「自动审查」(Auto review)流程,用另一轮 LLM 判断本次调用是否安全、是否符合策略。默认行为是让审查请求跟随当前会话的主模型。主模型若是单价较高的商用模型,那么每一次工具调用前的审查都会按同样单价消耗 Token,长会话、频繁调用时成本会叠加上去。

社区插件 dsh-auto-check(维护者 ltzXiaoYanMo,分类:模型推理)在 llm/stream 层拦截自动审查请求,改写到你单独配置的 provider / model,其余对话与子代理请求保持原样。插件还支持 Qwen3Guard-Gen 系列的安全分级输出适配,并在审查拒绝、超时或失败时把「维持拒绝 / 放行一次」的选择权交还给你(默认 onBlock: ask)。

下面介绍它是什么、如何安装配置,以及使用 Qwen3Guard 或兼容网关时需要注意的事项。事实依据为插件 GitHub README 与 package.json(版本 0.2.1,MIT 许可证)。

这是什么

dsh-auto-check 不替换、不修改 DSH 自带的 auto-review 插件;审查策略本身不变。它在外层监听 tools/pre-execute,识别以 REVIEW_POLICY\n 开头的审查 system 提示,命中后用配置的审查模型重新发起 LLM 请求。未配置或只配置了一半时,行为与安装前一致。

改写后的请求会打标,避免再次进入本插件造成递归。模型列表来自当前会话可路由的模型目录;只影响自动审查,不影响主对话或子代理。

核心功能

审查模型路由

  1. 在 设置 → 插件 中找到官方插件列表里的 自动审查模型。
  2. 选择一个审查模型并保存;选 跟随主模型 可恢复默认。
  3. 插件在 llm/stream 拦截审查流,未命中标记的普通请求直接放行。

审查协议

按需选择 审查协议:

  • 自动识别(默认):目标模型名包含 Qwen3Guard 时使用 Qwen3Guard 适配,否则使用标准 JSON 协议。
  • 标准 JSON:要求审查模型严格输出 {risk, decision, reason?},适用于通用模型。
  • Qwen3Guard 安全分级:适用于 Qwen3Guard-Gen 系列(0.6B / 4B / 8B)。

Qwen3Guard 原生输出为两行文本(Safety: / Categories:),本插件映射 Safe 为低风险放行,Controversial 为中风险拒绝,Unsafe 为高风险拒绝;无 Safety: 标签时按高风险拒绝(fail-closed)。Qwen3Guard 只判断内容安全,不判断工具调用的业务正确性;Stream 系列逐 token 审核不适用本适配。

审查拒绝与超时

自动审查在模型拒绝、出错、无响应或超时时可能阻止工具调用。默认 onBlock: ask 会弹出问题卡片,显示工具名和审查原因,选项为 维持拒绝(默认预选)或 仍要执行(放行一次)。只有明确点选「放行一次」才会执行;跳过、取消、无界面运行等情形一律维持拒绝。

  • onBlock:ask(默认)或 deny(恢复原有静默拒绝策略)。
  • reviewTimeoutMs:单独配置的审查模型在此时长(毫秒)内无结果时,以 REVIEWER_TIMEOUT 结束审查流;默认 60000,0 表示不限时。仅对经本插件改写过路由的审查请求生效。

长会话与字符预算

自动审查会把过滤后的会话历史与待审工具调用一并发给审查模型。Qwen3Guard-Gen 本地常见 32k 上下文下,输入过长会导致审查失败。

最大审查字符数 在 Qwen3Guard 协议下生效:超预算时保留开头与结尾,截断中间。默认 64000 字符(约 16k Token);设为 0 可关闭截断。

兼容模式(compatMode)

部分 OpenAI 兼容网关会拒绝请求里的 store 字段。可在 provider 的 pi-ai 配置中设置 compat.supportsStore: false,或在插件设置里勾选 兼容模式,由插件维护该字段。开启后会影响同一 provider 下主对话的请求(pi-ai 从 provider 配置读取 compat)。

安装与启用

插件以本地 bundle 方式安装。在 DSH 中通过插件管理器执行(将 target 换成本插件目录的绝对路径):

# 在 DSH 中通过插件管理器安装本目录:
plugin_manager install_bundle target=<本目录绝对路径>

安装后包会以 link: 方式加入 profile。修改 lib/ 后需重启 DSH Desktop(Electron)才能重新加载 Host 插件;client.js 改动刷新页面即可。

社区目录页:https://www.skillhub.cn/plugins/ltzXiaoYanMo/dsh-auto-check。源码与说明:https://github.com/ltzXiaoYanMo/dsh-auto-check。

典型用法

  1. 安装并启用插件后,打开 设置 → 插件 → 自动审查模型,选一个成本更低或专用的审查模型(例如 Qwen3Guard-Gen-4B),保存。
  2. 若使用 Qwen3Guard,确认 审查协议 为自动识别或显式选 Qwen3Guard 安全分级。
  3. 经 Superlinked 等网关访问 Qwen3Guard 且出现 store 不支持错误时,勾选 兼容模式,或按 README 在 provider 中手写 compat.supportsStore: false。
  4. 长会话审查失败时,调低 最大审查字符数 或换用更大上下文的远程审查模型。
  5. 希望审查被拒时仍可人工放行单次调用时,保持默认 onBlock: ask;无人值守流水线可设为 onBlock: deny。

适用场景与注意

适合谁: 已开启 DSH 自动审查、主模型较贵或希望用 Qwen3Guard 做内容安全分级的开发者;需要在审查失败时保留人工决策的场景。

权限与安全: 插件在 DSH 宿主进程内运行,可改写字段、写 provider 兼容配置并拦截 LLM 流。安装前应阅读仓库源码与 MIT 许可证,确认与你的工作区信任边界一致。SkillHub 等为社区目录站点,与 DeepSeek / 幻方无官方从属关系。

局限: Qwen3Guard 不提供工具业务正确性判断;审查模型长期不可用时应换回「跟随主模型」或更换可用模型。

结尾

dsh-auto-check 把自动审查从主模型上拆出来,在策略不变的前提下控制 Token 成本,并补齐 Qwen3Guard 与网关兼容、拒绝/超时时的可选放行。需要功能细节、测试说明与开发验证命令时,以 GitHub 仓库 README 为准。

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

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

小夜