🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

预设搬运工 xisnn/harness2-dsh

DeepSeek Harness
xisnn9 天前有提交已提供中文文档扫描:无法判定

把 Harness² 目录树转换成可安装的 DSH 智能体预设包

29.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xisnn/harness2-dsh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · skill
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/10/31(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

把 Google Research Harness2 的 harness 树转换成 DeepSeek Harness(DSH)的智能体预设包

README

由 DeepSeek 最新模型翻译生成
harness2-dsh 把 Google Research Harness² 的 harness 目录树,转换成 DeepSeek Harness (DSH) 的智能体预设包。装好之后,就能像其他预设一样选中它。 Harness² 围绕一个冻结的模型搜索更好的智能体 harness,把胜出的结果以普通目录的形式写到磁盘。DSH 则从声明式预设启动智能体。这个工具就是两者之间的桥:读取 harness 目录,输出可安装的 DSH 包。 harness2 run ──▶ harness tree (systemprompt.md, guardrails.md, skills/, scripts/, ...) │ ▼ harness2-dsh convert DSH bundle (package.json + cordis.patch.yml + skills/ + scripts/) │ ▼ dsh plugin --profile add <bundle> a selectable agent preset 为什么做这个 端到端跑 Harness²,需要 OpenCode 或 Codex、一套 Linux 工具链,还有模型凭证。如果你已经在用 DSH,可以只保留真正重要的部分——它找到的那个 harness——然后原生跑起来。
展开完整文档(README 剩余 1 节)
harness2-dsh

把 Google Research Harness² 的 harness 目录树,转换成 DeepSeek Harness (DSH) 的智能体预设包。装好之后,就能像其他预设一样选中它。

Harness² 围绕一个冻结的模型搜索更好的智能体 harness,把胜出的结果以普通目录的形式写到磁盘。DSH 则从声明式预设启动智能体。这个工具就是两者之间的桥:读取 harness 目录,输出可安装的 DSH 包。

harness2 run ──▶ harness tree (systemprompt.md, guardrails.md, skills/, scripts/, ...)
│
▼ harness2-dsh convert
DSH bundle (package.json + cordis.patch.yml + skills/ + scripts/)
│
▼ dsh plugin --profile add <bundle>
a selectable agent preset

为什么做这个

端到端跑 Harness²,需要 OpenCode 或 Codex、一套 Linux 工具链,还有模型凭证。如果你已经在用 DSH,可以只保留真正重要的部分——它找到的那个 harness——然后原生跑起来。

为什么不直接装现成的 Harness² DSH 插件?

截至 2026-10-22,社区里大约有七个「Harness² on DSH」的尝试,全都在 Harness² 发布后几天内起步,star 数都在 0–2 之间。官方 DSH 插件目录(3,261 条,Harness2 零匹配)里一个都没有,而且每个都落在下面三种形态之一:

| 做法 | 做什么 | 为什么单靠它不够 |
| Sidecar Python 驱动 | 复用 Harness² 自己的递归循环,把 dsh 当执行器驱动 | 只支持 POSIX;需要单独的 venv,还要多一步安装 |
| 树内 Cordis 插件 | 在 DSH 内部重新实现 propose–probe–compose | 面积太大;目前发布的都只带演示适配器,不是任务执行器 |
| 本工具 | 把 Harness² 已经找到的 harness 搬运成 DSH 预设 | 自己不跑搜索——而这正是重点 |

这个项目刻意只做一件事:补上缺失的搬运环节。它不重新实现 Harness²,不调用模型,也不判断 harness 好不好。所以它小到足以保证正确,不装 DSH 也能测试,还能和你选的任何搜索方式搭配使用——Harness² 在哪跑都行,跑完把胜出的结果转换过来。

它还能拦住两种会悄悄产出坏预设的故障:

- DSH 要求技能名用 kebab-case;Harness² 接受下划线。ledger_math 会被 DSH 静默丢弃。本工具会重命名,并同步改写 frontmatter。
- 没有 description: 的技能,DSH 不会对外公布。本工具会合成一个,并告诉你。

安装

pip install harness2-dsh
or, from a checkout:
pip install -e .

Python 3.10+,无依赖。

使用

1. see what a harness contains
harness2-dsh inspect ./library/k1/agg/accounting/harnesses/ledger-2
2. 转换

harness2-dsh convert ./library/k1/agg/accounting/harnesses/ledger-2 \
--out ./bundles/ledger-recon \
--preset-id ledger-recon \
--name "Ledger Recon"

3. 安装,然后在新会话里选中它

dsh plugin --profile web add ./bundles/ledger-recon

convert 接受三种输入形态,你基本不用手动去找目录树:

| 你指向 | 它会转换 |
| harness 目录(存在 systemprompt.md) | 该目录树 |
| library 条目(harness/ + EXPERIENCE.md) | 已采用的 harness |
| 任务运行目录(summary.json + harnesses/) | 实际采用的 harness 选择 |
| 只含一个条目的 domain library 目录 | 该条目 |

选项

| 参数 | 默认值 | 含义 |
| --preset-id | 取自 --name / 输出目录 | 小写字母、数字、连字符 |
| --name | 即 id | 预设选择器里显示的名称 |
| --description | 自动生成 | 预设描述 |
| --order | 50 | 在名单中的位置 |
| --persona-mode | append | append 保留 DSH 自己的系统提示词,再追加 harness 文本;replace 让 harness 文本成为整个系统提示词 |
| --skill-path-mode | package | package 按名称解析已安装的 bundle,bundle 因此保持可移植;absolute 写入解析后的绝对路径(仅限本机);dsh-home 对 $DSH_HOME 下的 bundle 输出 dshHomePath(...) |
| --with-subagents | 关闭 | 把 sub_agents/ 转成子预设 |
| --no-scripts | 关闭 | 跳过 scripts/ |
| --profile | web | 生成的安装提示里写的配置档名 |

对应关系

| Harness² 组件 | 在 DSH 中变成 |
| systemprompt.md、guardrails.md、LongTermMEMORY.md、tool_descriptions/tool_guidance.md | 预设 dsh-persona 前缀里一个常驻块,顺序沿用 Harness² 自己的顺序 |
| skills/<n>/SKILL.md + skills/<n>/scripts/ | bundle 下真正的 DSH 技能,通过 dsh-skill-filesystem.customSkillDirs 接入 |
| scripts/<n>.py | 复制进 bundle;persona 块里写明它们的位置 |
| sub_agents/<n>/AGENT.md | 一个子代理预设,外加一行 dsh-tool-subagent(需手动开启) |
| plugin/<n>.ts | 不转换 —— OpenCode 插件模块不是 Cordis 插件。会给出报告,绝不悄悄丢弃 |

默认可移植

转换后的 bundle 不含任何机器相关路径,你可以提交它、交给同事,或者下载别人的。预设通过让 Loader 从配置档的 node_modules 里解析 bundle 自己的包名来定位技能: yaml customSkillDirs:
- !!js process.getBuiltinModule('node:path').join(
process.getBuiltinModule('node:path').dirname(
process.getBuiltinModule('node:module').createRequire(baseUrl)
.resolve('dsh-harness2-<preset-id>/package.json')),
'skills')

随附的 standard 预设定位自带技能用的也是同一套机制。这一点已通过把生成的 bundle 移到别的目录,在那里安装,再加载它的技能。

只有当你想要固定路径时才用 --skill-path-mode absolute(单机使用,或者 bundle 放在包解析器看不到的地方)。--skill-path-mode dsh-home 仍然适用于安装在 $DSH_HOME 下的 bundle。

注意:dsh-agent-preset 需要 agentPresets 服务,web 配置档提供该服务,headless 配置档不提供。转换后的 preset 在 Web UI 里可以选中;headless 一次性运行无法挂载它。验证时请按此规划。

两个值得了解的正常化处理

- 技能名称。 DSH 要求 kebab-case(^[a-z0-9]+(?:-[a-z0-9]+)$);Harness² 接受下划线。ledger_math 会变成 ledger-math,生成的 SKILL.md frontmatter 也会同步改写。
- 缺少描述。 技能没有 description: 时,DSH 会静默地不对外公布它。转换器会从正文合成一条描述并记下备注,而不是交付一个看不见的技能。

验证安装 bash
dsh --profile --dump-config | grep -A3 preset-<id>

然后启动新会话,选择 preset。要确认模型确实能看到这些技能,让它按名称加载其中一个。

开发 bash
pip install -e '.[dev]'
pytest -q
ruff check .

测试套件覆盖 YAML 生成器(包括 !!js 标签和字面量块)、树解析、每条转换路径、run/library 布局解析器,以及命令行。不需要安装 DSH,也不需要联网。

限制

- 单向转换。从 preset 转回 Harness² 树尚未实现,因为 preset 是组合,不是文件树。
- plugin/.ts 没有自动对应物;移植需要手动完成。
- --skill-path-mode absolute 会把 bundle 绑定到生成它的那台机器。默认的 package 模式可以避免这一点,但要求 bundle 通过包管理器安装(手动直接复制进 node_modules 仍然能解析,只要包名找得到)。
- 转换器不运行 Harness²,也不评估这个 harness 好不好。它只搬运 Harness² 产出的东西。

许可

Apache-2.0。Harness² 采用 Apache-2.0(Google LLC);生成的 bundle 包含源自它的文本,所以再分发 bundle 时请保留署名。

这是社区工具,与 Google 或 DeepSeek 没有隶属关系。
预览分享卡片长什么样 ↓xisnn/harness2-dsh
分享 · DeepSeek Harness Hub
xisnn/harness2-dsh

把 Harness² 目录树转换成可安装的 DSH 智能体预设包

回到顶部