dsh-harness2:在 DSH 里跑 Harness² 有界实验

前言

在智能体开发里,改提示、改技能、改任务边界,往往比换模型权重更常见,却更难做可重复的对比:试跑散落在本地脚本里,证据和反思很难和会话、模型路由对齐。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,本版本提供的能力包括:

  1. Harness² 流程:候选生成、试跑、组合、筛选、反思(接上游实际优化器)。
  2. DSH 原生实验室 UI:注册 conversation.view,Desktop 与 web 共用同一客户端,无需 iframe、额外端口或跨域豁免。
  3. 对比与预算:原版与留出场景对比;记录调用、试跑与时间预算。
  4. 会话与进程:独立持久会话标识、取消、进程恢复防重放;关闭/取消会关闭上游流和子进程。
  5. 模型与记忆:使用 DSH 已注册的模型服务和凭据;宿主可提供 memory.recall/remember,反思带试跑证据与适用限制;无记忆端口时证据仍在任务目录,页面会标明「未配置宿主记忆」。
  6. Agent 工具(本会话范围内):
    - harness2_status {}:只读实验状态,不触发推理。
    - harness2_run {"jobId":"ledger-demo"}:只执行本会话已配置的任务。
  7. 证据与恢复: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 执行器与任务适配器的人。

务必注意:

  1. 插件以当前 DSH 进程权限运行,安装前应阅读源码与许可证(插件 MIT;上游 Harness² Apache-2.0,见仓库 NOTICE)。
  2. 0.1.0-rc.1 为预览版;验证范围以 验证记录 为准,本地安装成功不等于 npm 或社区市场状态已变更。
  3. 保留中的 run.lock 需人工核实原进程与副作用,插件不会自动删锁或重置历史。
  4. 回退时可在插件管理器移除 @jcs130/dsh-harness2,私有 dataDir 与 Python 临时工作区中的证据可保留。

结尾

dsh-harness2 把 Harness² 的有界实验接到 DSH:同一套凭据与模型路由、原生实验室视图、隔离适配器与证据目录,便于在不动权重的前提下对比任务周围的策略改动。

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

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

Xiaoye