dsh-second-angle:用工具输出复核 Harness 回合结论

前言

在 DeepSeek Harness(DSH)里跑带工具的 agent,常见问题是:模型在回合结束时给出的结论,和本回合实际读过的 tool 输出对不上——漏读、误引或过度概括都会发生。事后人工对日志很慢,单靠正则又抓不全语义层面的错误。

下面介绍的 dsh-second-angle 是社区维护的工作流类 DSH 插件:在一个 Harness 回合结束后,用该回合已读到的 tool 输出作为证据,审计回答里的主张;证据矛盾时可引导修正,证据不足则标记。0.2 起还增加不调用模型的 ACTIONS 确定性模式检查(可选在 RED 模式于 tool 调用前拦截)。插件以 Harness bundle 形式安装,需 DSH >=0.2.1-rc.2 <0.3.0。

这是什么

dsh-second-angle(GitHub:rootsbymenda/dsh-second-angle)由 rootsbymenda 维护,在 SkillHub 插件目录 归类为「工作流」。一句话定位:给「已结束的 Harness 回合」第二个视角——对照本回合读过的 tool 输出检查回答主张,并在配置允许时用矛盾证据 steer 修正或 flag 无依据主张。

当前发布版本 0.2.1(MIT)。DeepSeek Harness 生态强调「一切皆插件」;SkillHub 等为独立社区目录,与 DeepSeek / 幻方无官方从属关系。

核心功能

主张审计(Claims)

插件把审计器喂入本回合实际读过的 tool 输出,默认关闭 auditor 的 reasoning effort(auditorReasoningEffort: 'off'),并在调用模型前先做无模型的绝对词等扫描。若回合没有任何 tool read,则不会把该回合送去模型审计(memoryTurns 等门控);README 说明:仅看证据、不含 reads 的审计会把真主张也全部 flag,因此设计上避免这种路径。

审计结果可写入 Session 日志(plugin:second-angle/verdict)、stderr、Harness logger,并可注入 notice(flagNotice 等,见配置表)。

ACTIONS(0.2,默认不调用模型)

ACTIONS 用确定性模式观察已提交的 tool 请求、暴露的 reasoning 与可见文本;默认 report(actionsMode: flag)。设为 block 时,可在 tool 运行前拒绝 RED 类 action 模式(SAID-VS-DID 仍为仅报告)。设 claimsEnabled: false 可关闭主张审计,只保留免费的 ACTIONS 路径。

同步与 steer

  • mode: sync(默认):在回合关闭前等待裁决,矛盾时可在同一回合 steer 修正(steer,且 requireQuoteForSteer 默认要求引文能在 tool 输出中找到)。
  • mode: async:回合先结束,裁决稍后附上;矛盾可通过 asyncContradicted 配置为 notice、followup 或 flag。

README 中的私有 bench 描述(非用户案例):在 thinking off、短 facts-and-limits card 下,对含 3 个已知错误与 3 个真主张的答案,5/5 次 run 标出全部 3 个错误,单次约 16 秒;开短 thinking 约慢 9–11 倍且未更准确。这些数据来自维护者自述测试,非第三方统计。

安装与启用

插件是 harness bundle(package.json 中 "dsh": { "bundle": … })。示例使用随 Harness 提供的 headless profile;若用 npx @deepseek-ai/dsh 运行,将命令中的 dsh 替换为 npx @deepseek-ai/dsh。dsh plugin 使用 PATH 上的 pnpm。

要求:DeepSeek Harness >=0.2.1-rc.2 <0.3.0(engines.dsh);Node ^22.19.0 || >=24.0.0。旧版 0.1.x Harness 可能装包但不加载。安装前请将 Harness 升到兼容范围。

从 release tarball(预构建,无需 build)

curl -LO https://github.com/rootsbymenda/dsh-second-angle/releases/download/v0.2.1/dsh-second-angle-0.2.1.tgz
dsh plugin --profile headless add ./dsh-second-angle-0.2.1.tgz

从 GitHub 固定 commit

dsh plugin --profile headless add github:rootsbymenda/dsh-second-angle#<commit>

从 Git 安装会触发 prepare(tsc -p tsconfig.build.json)。首次 add 可能因 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 中止;按终端提示在 profile 的 pnpm-workspace.yaml 的 allowBuilds 中加入 pnpm 打印的 key(长行换行需无空格拼接),再执行同一 add。Git 安装会先拉取约 105 MB 构建工具;tarball 无需 build。

验证安装:

dsh --profile headless --dump-config

配置树中应出现 # == dsh-second-angle layer。运行任务:

dsh headless "<task>"

配置

在 profile 的 cordis.patch.yml(默认 $DSH_HOME/profiles/<profile>/ 或 ~/.dsh/profiles/<profile>/)中覆盖插件行;patch 会替换整行 config。新 profile 若文件为 [],需改为包含插件条目。

示例(字段均可选):

- id: second-angle
  config:
    mode: sync                 # sync | async
    maxLatencyMs: 45000
    auditorReasoningEffort: 'off'
    # cardFile: /path/to/house-facts.txt   # 每行一条事实,追加到 card
    flagNotice: true

常用项摘要:

字段 默认 含义
enabled true 总开关
claimsEnabled true 主张审计;false 仅 ACTIONS
actionsMode flag flag / block(RED 预拦截)/ off
mode sync 同步等裁决或异步附加
maxLatencyMs 45000 超时放弃审计
steer true 矛盾时引导修正
flagRecord true 写入 Session 记录
flagStderr true headless 下诊断走 stderr

完整字段见 GitHub README Configure 节。cardFile 指向的文件在加载时读取;缺失会导致插件无法激活(启动警告 1 entry did not activate)。

典型用法

  1. 升级 Harness 到 >=0.2.1-rc.2 <0.3.0,用 headless(或其它 profile)安装 0.2.1 tarball 或 pinned GitHub commit。
  2. 用 --dump-config 确认 dsh-second-angle layer 已加载。
  3. 对会调用 tool、且回答依赖 tool 输出的任务运行 dsh headless "<task>";在 stderr / Session log /(若开启)notice 中查看 plugin:second-angle/verdict 与 plugin:second-angle/actions。
  4. 若只需 ACTIONS、完全不走模型审计,在 patch 中设 claimsEnabled: false;若要在危险 action 模式执行前拦截,设 actionsMode: block 并配置 actionsAllowedHosts 等。

适用场景与注意

适合:你在 DSH 里开发或运行多步 tool agent,希望在回合结束(或 tool 调用前,block 模式)自动核对「说了什么」与「读到了什么」,并把结果进日志或 UI notice。

注意:

  • 插件与当前 dsh 进程同权限运行;安装前请阅读仓库源码与 MIT 许可证,确认审计模型路由、证据截断(maxEvidenceChars 默认 48000)与 host 策略符合你的部署安全要求。
  • 审计默认可能调用与主回合相同或单独配置的 LLM(auditorProvider / auditorModel);ACTIONS 路径本身不调用模型。
  • 社区目录页星标等元数据以站点为准;仓库 README 为安装与行为的主要依据。

结尾

dsh-second-angle 把「本回合读过的 tool 输出」当作 ground truth 来源,在 Harness 工作流里补一层主张与 action 的复核,减少 tool 已给出证据仍答错的情况。目录与源码:

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

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

Xiaoye