DeepSeek Harness 红队评审台插件

前言

DeepSeek Harness(DSH)把所有能力都做成插件,开发者可以按需组合。但即便有工具链,项目交付前的「对抗式挑刺」仍是一块没人愿意填的坑:要么靠人工review,要么让建设者自己找茬,容易漏掉关键问题。

下面介绍一个持久插件,把「红队挑刺 → 独立打分 → 修复 → 复评」做成可复用的闭环。

是什么

红队评审台(Red-Team Review Console)是 DeepSeek Harness 的一个持久插件,用于自动化的对抗式评审。

  • 维护者:zhoulianghao000-web
  • 分类:工作流
  • GitHub:https://github.com/zhoulianghao000-web/-1-
  • 交付物包括 Host 插件、Web GUI 原生面板、文档与测试。

它为任意工作区提供一套评审工作流:在 Host 侧渲染 4 张被评审 UI 的证据截图,分别启动「红队」子智能体(只读、只证伪)与「判官」子智能体(只拿红队报告)进行独立打分,最后按门控规则决定是否放行。

核心能力

评审流程

一轮评审包含以下步骤:

  1. Host 用无头 Chrome 渲染恰好 4 张被评审 UI 的证据截图。
  2. 启动「红队」子智能体(fresh 会话、只读、只证伪)挑刺。
  3. 启动「判官」子智能体(另一个 fresh 会话,只拿红队报告)打分 0–100。
  4. 返回门控:总分 ≥95 且有效发现 ≥3 且截图 =4 且 mustFix 为空 时才 passed。

证据与交互

每轮证据支持以下类型:

  • screenshot:代表图
  • interaction:可指定 path/url/width/height/steps(最多 20 步,支持 goto/wait/click/key/screenshot)与 collect(console/network/perf),Host 用零依赖 CDP runner 真实操作页面。
  • image:把项目内 PNG 图表拷入证据目录并校验尺寸/sha256。
  • pdf-text:零依赖抽取 PDF 指定页文本,渲染成证据页并附 .txt 全文。

shots 与 evidence 二选一,但每轮必须恰好 4 张证据卡(或代表图)。

独立判官与评分

默认使用 2 个独立判官:

  • 红队看不到判官、判官看不到红队推理,判官之间互不可见。
  • 聚合规则取中位数(偶数取较低值),mustFix 取并集,有效发现数取交集/阻断并集口径。
  • 分差 >5 或 mustFix/verdict 不一致时记入 disagreement,不改变门控。
  • 所有模型调用在 Host 侧完成,前端不接触任何 API key。

每轮记录审计字段:rubricVersion、攻击者/判官 prompt 的 sha256、模型路由、判官原始分、原始输出摘要、每个判官的独立结果与会话 ID。

门控规则

gate.passed === true 当且仅当:

  1. 评分 ≥ requiredScore(默认 95,满分 100,只向下取整到 0.5 档)。
  2. 有效发现(判官 supported)≥ requiredFindings(默认 3)。例外:每个判官样本都报告 0 条 supported、无阻断项、mustFix 为空且评分 ≥ requiredScore 时视为干净,可通过。
  3. 本轮截图数 = requiredShots(默认 4,且是真实可解析 PNG)。
  4. 判官 mustFix 为空(只包含 BLOCKER/MAJOR 级阻断项)。
  5. 判官没有任何 supported 的 BLOCKER 或 MAJOR 阻断项。

另有 tools.guard:评审中的项目,未达标时 update_goal(action: complete) 与 present 提交文件会被拒绝(可配置关闭)。

安装与启用

在 Harness 会话中由具备权限的 Agent 执行:

plugin_manager install_bundle, target = C:\Users\zl\Documents\deepseek-harness\default-workspace\redteam-console

安装后:

  • 侧栏出现「红队评审台」入口,点开是整页看板。
  • 新会话的 Agent 预设选择器出现「对抗审查(红队)」「独立评分(判官)」两个独立预设。
  • 所有 Agent 的工具列表出现 adversarial_review_round / adversarial_review_status;评审子智能体另有专属只读工具 review_probe(其他 Agent 调用会被拒绝)。

本地目录安装是 link 方式:改完代码需要重新 install_bundle 才会加载新的 Host 代码;Client 代码刷新页面生效。已有会话保持旧组合。

典型用法

对一个项目执行一轮评审,示例:

{
  "target": "C:\\path\\to\\your\\project",
  "title": "项目名(可选)",
  "claims": ["README 里宣称做到的事 1", "宣称 2"],
  "focus": ["正确性", "前端密钥", "可访问性"],
  "environment": "可运行已有测试,无需联网",
  "timeBudget": "20 分钟或 40 次工具调用",
  "shots": [
    { "path": "index.html", "width": 1440, "height": 900, "name": "home-desktop" },
    { "path": "shop.html", "width": 1440, "height": 900, "name": "shop" },
    { "path": "reading.html", "width": 1440, "height": 900, "name": "reading" },
    { "path": "index.html", "width": 390, "height": 844, "name": "home-mobile" }
  ]
}
  • shots 必须恰好 4 条(每轮固定 4 张证据截图);留空则自动探测 index.html 等入口并用 4 个视口渲染。
  • 完全找不到 Web UI 时,先渲染 4 张中性占位报告页供评审引用,评分结束后用完整本轮结果重新渲染同一批 4 张。

交互证据示例:

{
  "target": "...",
  "profile": "code",
  "evidence": [
    {
      "kind": "interaction",
      "path": "index.html",
      "steps": [
        { "action": "goto" },
        { "action": "click", "selector": "#start" },
        { "action": "screenshot", "name": "playing" }
      ],
      "collect": { "console": true, "perf": true }
    },
    { "kind": "screenshot", "path": "index.html", "name": "desktop" },
    { "kind": "screenshot", "path": "index.html", "name": "mobile" },
    { "kind": "screenshot", "path": "index.html", "name": "tablet" }
  ]
}

工具返回 gate:passed=false 时按 score.mustFix / score.deductions[].fix 修复后再次调用;passed=true 才能停止。

配置

配置在 cordis.patch.yml 的 adversarial-review-console.config 下:

  • requiredScore:默认 95。
  • requiredFindings:默认 3。
  • requiredShots:默认 4。
  • profile:默认 code,可选 code/web/game/modeling;game 注入游戏 rubric。
  • interactionTimeoutSeconds:默认 60。
  • modelingTimeoutSeconds:默认 120。
  • maxRounds:默认 12(本 bundle 覆盖为 40)。
  • roundTimeoutSeconds:默认 900(本 bundle 覆盖为 1800)。
  • childProvider:默认 spawn。
  • attackerPreset / judgePreset:默认 redteam-console。
  • judgeSamples:默认 2(1–3)。
  • readOnlyReviewers:默认 true。
  • probeTimeoutSeconds:默认 120。
  • probeMaxCopyBytes / probeMaxCopyFiles:默认 104857600 / 20000。
  • attackerProvider / attackerModel / attackerReasoningEffort:留空继承父会话。
  • judgeProvider / judgeModel / judgeReasoningEffort:留空继承父会话。
  • chromePath:留空自动找 Chrome/Edge/ms-playwright Chromium。
  • stateDir:留空用 $DSH_HOME/adversarial-review。
  • announceToAgent:默认 true。
  • enforceGoalGate / enforceGateOnPresent:默认 true。
  • goalGateRoots:默认 []。

适用场景与注意

适合有自动化评审需求的场景,如持续交付、项目验收、代码/Web/Game/建模项目的一致性检查。

插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

结尾

红队评审台把对抗式评审变成可复用、可配置的闭环工作流,用门控与独立判官减少漏检与误判。安装与配置见 README,文档与测试位于仓库。

目录页与 GitHub

  • 目录页:https://www.skillhub.cn/plugins/zhoulianghao000-web/-1-
  • GitHub:https://github.com/zhoulianghao000-web/-1/
羽毛球分组比赛记分
小程序二维码

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

小夜