前言¶
在 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。
核心能力¶
三个工具组成零成本闭环¶
插件注册三个工具,对应「导出 → 审计 → 试跑」:
harness_export:把 preset 里的行导出为可运行的 harness 文件(可从已有可用配置做减法)。harness_inspect:挂载、审计并探测 harness,报告被试智能体实际能调用什么;不启动 agent、不消耗 token。也可传{ preset: "standard" }审计主机已有 preset,无需新建文件。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 … 的固定安装命令,本文不凭仓库名拼接命令。可按下面步骤自行核对来源:
- 打开 SkillHub 目录页 与 GitHub README(含
README_zh.md),确认当前推荐的安装与启用方式。 - 确认本机满足 Node.js
>=20与 DSH^0.2.2-rc.1(见package.json的engines)。 - 插件以后台方式随 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