前言¶
在智能体开发里,改提示、改技能、改任务边界,往往比换模型权重更常见,却更难做可重复的对比:试跑散落在本地脚本里,证据和反思很难和会话、模型路由对齐。Google Research 的 Harness² 面向「任务周围的配置与策略」做候选生成、试跑与筛选;要在 DeepSeek Harness(DSH)里用同一套流程,需要把优化器、执行回调和界面接到宿主,而不是再配一份 API Key 或单独起一个 iframe 实验室。
下面介绍社区插件 jcs130/dsh-harness2(npm:@jcs130/dsh-harness2):把 Harness² 接到 DSH,提供原生「实验室」会话视图、隔离适配器与证据链,模型与凭据沿用 DSH 已注册的服务。
这是什么¶
dsh-harness2 由维护者 jcs130 发布,分类为模型推理。一句话定位:在 DSH 内做 有界 Harness² 实验——模型权重不变,比较的是任务周围的配置、提示、技能或受限参数;插件与 Minecraft 解耦(游戏侧仍用 agent-mc-world 的独立练习与记忆)。
当前内置适配器是声明式账本演示,用于验证通用链路,不是任意办公/代码任务的完整执行器;其他任务需按契约注册自己的隔离执行适配器。演示通过不代表线上 Agent 更聪明,实验结果也不会自动改写在线配置或采用技能。
核心功能¶
依据仓库 README,本版本提供的能力包括:
- Harness² 流程:候选生成、试跑、组合、筛选、反思(接上游实际优化器)。
- DSH 原生实验室 UI:注册
conversation.view,Desktop 与 web 共用同一客户端,无需 iframe、额外端口或跨域豁免。 - 对比与预算:原版与留出场景对比;记录调用、试跑与时间预算。
- 会话与进程:独立持久会话标识、取消、进程恢复防重放;关闭/取消会关闭上游流和子进程。
- 模型与记忆:使用 DSH 已注册的模型服务和凭据;宿主可提供
memory.recall/remember,反思带试跑证据与适用限制;无记忆端口时证据仍在任务目录,页面会标明「未配置宿主记忆」。 - Agent 工具(本会话范围内):
-harness2_status {}:只读实验状态,不触发推理。
-harness2_run {"jobId":"ledger-demo"}:只执行本会话已配置的任务。 - 证据与恢复:
dataDir/<session-hash>/<job-id>/下journal.json、context.json、candidate.json等分层保存;同配置完整任务可只读返回既有结果,中断或失败的原任务不重放,改配置需新jobId。
一个宿主实验室同时只运行一个实验;任务内部执行回调串行处理。
环境与安装¶
兼容基线:DSH 0.2.1-rc.2,Node.js 24+。安装插件本身不启动实验、模型、游戏或 Python。
公开预览版 0.1.0-rc.1 已发布到 npm。在 DSH 插件管理器填写包名,或使用固定版本安装:
dsh plugin --profile <你的profile> add @jcs130/dsh-harness2@0.1.0-rc.1
也可从 GitHub Release 安装同标签:
dsh plugin --profile <你的profile> add github:jcs130/dsh-harness2#v0.1.0-rc.1
自定义市场入口(需在 DSH 启用「自定义插件市场」后添加):
https://raw.githubusercontent.com/jcs130/dsh-harness2/main/market/index.json
可搜索 Harness² / Harness2 / 实验室。社区目录站点 SkillHub 插件页 与 GitHub 市场索引分别记录,不要把向社区主索引提交 PR 等同于已上架。
本地开发打包后,可用绝对路径安装 .tgz(示例 profile 名仅作参考):
dsh plugin --profile harness2-test add /absolute/path/jcs130-dsh-harness2-0.1.0-rc.1.tgz
Python 执行器¶
Linux / WSL、Python 3.12+。上游 Harness² 固定 commit 1cfe254e8d25b15f37048c3730134686abe60335。先做虚拟环境与依赖,再自检 worker:
uv venv --python 3.12 .venv
uv pip install --python .venv/bin/python -r bridges/requirements.txt
.venv/bin/python bridges/worker.py --check
Python 只跑优化流程;模型与任务执行通过有界回调交给宿主,不会调用上游无限制的 OpenCode/Codex 执行器。私有 worker.json 需写明解释器、bridges/worker.py 绝对路径与独立 workspace(Windows 可通过 WSL 传参,见 README 示例)。
典型用法¶
无付费调用的账本演示¶
不经过 DSH 模型,用脚本化夹具跑通 Google Harness² 与固定整数账本解释器:
node scripts/demo.mjs /absolute/private/worker.json unique-ledger-job /absolute/private/evidence
候选仅改声明式参数与技能说明,不执行生成的程序;示例在漏掉负数项的账本上优化,并在另一份账本上复测。
接上 DSH 模型¶
生成实验室配置(默认 enabled:false,需人工检查任务、预算、模型路由与路径后启用):
node examples/create-ledger-config.mjs <真实DSH会话ID> /absolute/private/lab.json /absolute/private/worker.json
将插件的 configFile 指向 lab.json 后,在会话中通过工具启动已配置的 jobId(如 ledger-demo)。
扩展与适配器¶
领域插件通过 ctx.harness2.registerAdapter(adapter) 注册隔离执行适配器;已有独立优化器可注册只读 registerSource。细节见仓库 适配器契约。候选文件不能改变模型凭据、DSH 启动配置、插件列表或在线身体。
适用场景与注意¶
适合谁:需要在 DSH 会话内对「提示 / 技能 / 任务边界」做可度量对比、并保留证据与反思链路的开发者;愿意自备 Python 执行器与任务适配器的人。
务必注意:
- 插件以当前 DSH 进程权限运行,安装前应阅读源码与许可证(插件 MIT;上游 Harness² Apache-2.0,见仓库 NOTICE)。
0.1.0-rc.1为预览版;验证范围以 验证记录 为准,本地安装成功不等于 npm 或社区市场状态已变更。- 保留中的
run.lock需人工核实原进程与副作用,插件不会自动删锁或重置历史。 - 回退时可在插件管理器移除
@jcs130/dsh-harness2,私有dataDir与 Python 临时工作区中的证据可保留。
结尾¶
dsh-harness2 把 Harness² 的有界实验接到 DSH:同一套凭据与模型路由、原生实验室视图、隔离适配器与证据目录,便于在不动权重的前提下对比任务周围的策略改动。