dsh-harness-dispatcher:固定任务下对照评测 DSH Agent Harness

前言

在 DeepSeek Harness(DSH)里搭智能体,常见做法是换模型、调 system prompt、增删工具,再看最终回答是否满意。这类比较很容易把「模型强弱」和「管线组装方式」混在一起:同一模型配上不同工具集、人设或路由,行为可以完全不同。若要把变量拆开做实验,还需要每次运行留下可复算、可对齐的记录,而不是散落在会话日志里随手翻。

dsh-harness-dispatcher 由社区维护者 dsh-plugin-lab 发布,分类为工作流。它的定位是:评 harness,不评模型——用一句 README 里的关系式概括,即「Model + Harness = Agent」。插件对同一固定任务,在受控的 harness 变体上重复试跑,把每次试验落成确定性的 JSONL 事实;均值、置信区间和显著性留给 R 或 Python 在外部完成,避免分析口径变化后记录无法重算。

这是什么

dsh-harness-dispatcher(npm 包名同名,当前资料中的版本为 0.1.0)是 DSH 插件:在工具、人设、注入的工具故障、模型路由等管线维度上做对照,输出按 trial 划分的 JSONL 轨迹。仓库许可证为 MIT;package.json 要求 Node.js >=20,对等依赖 DSH ^0.2.2-rc.1。README 标明当前状态为 Unpublished(private: true),单元测试覆盖纯逻辑层,真机挂载与试跑需按仓库文档手写验证。

生态上,DSH 奉行「一切皆插件」;SkillHub 目录页 是社区插件索引,与 DeepSeek / 幻方无官方从属关系。GitHub:dsh-plugin-lab/dsh-harness-dispatcher。

核心能力

三个工具组成零成本闭环

插件注册三个工具,对应「导出 → 审计 → 试跑」:

  1. harness_export:把 preset 里的行导出为可运行的 harness 文件(可从已有可用配置做减法)。
  2. harness_inspect:挂载、审计并探测 harness,报告被试智能体实际能调用什么;不启动 agent、不消耗 token。也可传 { preset: "standard" } 审计主机已有 preset,无需新建文件。
  3. harness_run:给定任务、harness 与 trial 次数,返回 run 句柄与各 trial 结果;记录文件本身即交付物。

故障注入(fault gate)

可对被试在指定工具上注入 deny、fail、latency,其它 agent 不受影响。三者是三种实验,不是同一开关的三档:

  • deny:移除工具(测绕行)
  • fail:返回错误(测恢复)
  • latency:延迟返回应答(测耐心)

两类 fold(纯事实、不做评判)

每次 trial 折叠两类确定性事实:

  • trace:被试做了什么(轮次、步骤、工具调用、按工具的错误、token 统计、最终文本等)。
  • modelInput:被试收到了什么(system prompt 摘要、工具名与 schema 摘要、实际路由等)。

Skill:dsh-harness-bench

插件注册 skill dsh-harness-bench,封装上述闭环以及文档中强调的「坑点」,便于 agent 在不读源码的情况下找到正确用法。

单次 run 的输出目录

记录在 outputRoot 下为每次 run 建自包含目录(运行时会复制当时使用的 harness,便于事后对齐):

<outputRoot>/<runId>/
  run.json          # run 身份、任务、刺激物身份、探测到的能力面
  harness.<ext>     # 被测 harness 原文(快捷方式为 harness.json)
  trials.jsonl      # 每个 trial 一行:刺激物、结果、两类 fold
  README.txt        # 供读数据者对照应比哪些字段

插件不算统计量;分析留在仓库外。

设计要点(用之前建议先读)

  • Harness 是插件行列表,可放在任意路径;以 run 目录里的副本 + stimulus.fingerprint 保证「同一份 harness」,而非依赖源文件位置。
  • 先 inspect 再 run:inspect 免费,且与 harness_run 使用同一套解析分辨率。
  • 默认 harness 是 delta:作为 preset 挂载时,被试默认继承主机为自身挂载的全部工具(README 称常达四十余个),对照实验时会把无关工具一起带进每个变体。比较工具集这一变量时,应使用 sealed: true 遮住主机工具,只保留 harness 声明的行;若问题是「这份 harness 在当前部署里能否工作」,则可不 seal。
  • Skill 的开关靠是否提供 skill 工具,而非 mask。密封(去掉主机的 skill 工具)在多数场景足够;若 harness 自行挂载 tool-skill,继承目录仍可能到达被试——harness_inspect 会报告被试实际能加载什么。
  • 快捷写法是语法糖:harness.tools 引用固定目录里的 key,harness.persona 为枚举,会编译成同类行列表;无法表达 groups、isolate、skills、!!js 条件等时需用文件。主机用 cordis:include 解析,本插件不实现第二套方言。
  • 主机侧同步读已结束会话日志的路径已废弃(snapshotEvents、eventAt、ownEvents 禁止新调用);本插件改为折叠 session/event。

更完整的架构与 file:line 依据见仓库 docs/ARCHITECTURE.md 与 .agents/notes/2026-11-11-harness-shape.md。

配置项

插件可在 DSH 中配置下列字段(资料原文默认值如下):

字段 默认值 含义
outputRoot ~/.dsh/harness-dispatcher/runs 每次 run 一个子目录
harnessDir ~/.dsh/harness-dispatcher/harness 裸 harness 名解析路径;harness_export 写入位置
defaultTools fs, fs-search, pwsh 快捷写法未指定工具时使用的目录 key
defaultMaxDepth 1 授予被试的委托深度预算
maxTrials 10 单次调用 trial 数上限
trialTimeoutMs 0 单 trial 墙钟预算;0 表示不限制

安装与启用

已抓取资料中未给出形如 dsh plugin add … 的固定安装命令,本文不凭仓库名拼接命令。可按下面步骤自行核对来源:

  1. 打开 SkillHub 目录页 与 GitHub README(含 README_zh.md),确认当前推荐的安装与启用方式。
  2. 确认本机满足 Node.js >=20 与 DSH ^0.2.2-rc.1(见 package.json 的 engines)。
  3. 插件以后台方式随 DSH 进程加载,具备与 DSH 相当的权限。安装或启用前请阅读源码与 MIT 许可证,评估是否适合你的环境;README 亦说明「安装插件并不等于证明它已在真机跑通」。

典型用法(工作流)

下面介绍与 README 一致的使用顺序,可在已启用插件的 DSH 会话中由 agent 调用对应工具完成。

1. 导出或准备 harness

若要从已有 preset 减出一份可编辑文件,使用 harness_export,输出通常落在 harnessDir。若你已有完整 harness 文件,可跳过导出。

2. 免费审计(强烈建议)

在消耗 token 试跑前,调用 harness_inspect:

  • 对文件路径对应的 harness 做挂载探测;
  • 或对主机已有 preset 传参,例如概念上等价于 { preset: "standard" },无需新建文件。

inspect 报告与后续 harness_run 一致,便于确认被试可见工具集、skill 是否可达、密封是否按预期遮住主机工具。

3. 配置试验变量并试跑

在 harness 中按需设置工具列表、人设、模型路由;若要测工具故障,在 fault gate 上为被试配置 deny / fail / latency。确定固定任务文案与 trial 次数(不超过 maxTrials),调用 harness_run。

4. 读取交付物

到 outputRoot 下对应 <runId>/ 目录:

  • 用 run.json 对齐 run 身份与能力面;
  • 用目录内复制的 harness.* 核对当时配置;
  • 用 trials.jsonl 做逐 trial 对比(配合 README.txt 字段说明);
  • 统计与绘图在外部工具中基于 JSONL 重算。

也可让 agent 加载 skill dsh-harness-bench,按 skill 内指引走完整闭环。

适用场景与注意

更适合谁

  • 需要在 DSH 内系统比较 harness 组装(工具集、密封策略、人设、路由、故障注入)而非单次问答爽感的开发者。
  • 希望每次 trial 留下 确定性、可重放对齐 记录,并在外部用统一口径做分析的团队。

使用时注意

  • 对照实验若工具集是变量,记得 sealed: true,避免主机默认工具污染变体。
  • deny、fail、latency 对应不同实验目的,勿混为一谈。
  • 仓库状态为未公开发布(private: true),真机路径以 docs/ARCHITECTURE.md 中手写验证步骤为准。
  • 插件不替代外部统计分析;变更分析口径时,应仍能基于 JSONL 重算。

结尾

dsh-harness-dispatcher 把「Agent 行为很大程度取决于 harness 组装」这件事做成了可重复的试验流水线:inspect 不烧钱、run 落盘自包含目录、fold 只记事实。若你在 DSH 里做工作流级评测与对照,可从目录页与仓库 README 核对安装方式后,以「先 inspect、再 run、再读 JSONL」起手。

  • 目录页:https://www.skillhub.cn/plugins/dsh-plugin-lab/dsh-harness-dispatcher
  • GitHub:https://github.com/dsh-plugin-lab/dsh-harness-dispatcher
羽毛球分组比赛记分
小程序二维码

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

Xiaoye