dsh-evolution:为 DSH 提供可验证、可回滚的自我进化编排

前言

在 DeepSeek Harness(DSH)上让 Agent 改进自身运行时,常见困境是:实验性改动留在 composition 里却难以追溯;「看起来更好」缺少可重复证据;同一类失败在多个 session 里反复出现。社区插件目录 SkillHub 把 ryukeilee/dsh-evolution 归在 admin-security,并明确说明:这是 DSH 的独立 Evolution bundle 预发布,promotion 阶段的 host 代码执行不是安全沙箱。下面介绍它是什么、能做什么,以及如何安装与使用。

这是什么

dsh-evolution 由维护者 ryukeilee 发布,当前包版本为 0.2.0-rc.16(发布候选),许可证 MIT。它是一个独立的 DSH bundle:通过官方 bundle / profile 机制加载,不 fork DSH、不修改官方源码、不向官方 node_modules 复制文件、不 patch 官方仓库。

核心目标是在真实运行中的 Cordis Runtime 上做受控实验——提出改进、临时激活、测量收益,然后回滚或带着证据晋升为持久插件;升级出问题时还可自动退回上一个已知良好状态。分发形态是 GitHub Release 上的 tarball,不发布 npm 包。

支持的 DSH 宿主(README 写明逐个通过真实安装验收):0.2.0-rc.2、0.2.1-alpha.1、0.2.1-rc.2。Node 要求:^22.19.0 || >=24.0.0。

核心功能

受控进化生命周期

九个工具构成闭环,顺序由系统提示词约束。典型流向如下:

evolution_runtime_inspect   读取真实 Cordis 运行时
        ↓
evolution_propose           记录 why / target / impactScope / successMetrics / risk
        ↓                    可附带 experienceRecall(历史经验)
evolution_trial             通过 dynamicCordisRunner 激活临时 Cordis Package
        ↓
evolution_measure           记录观测并评估晋升门禁
evolution_revert            回滚并验证 Runtime 签名回到基线
  或
evolution_promote           所有者确认后写入持久 Plugin,进入 canary
        ↓
evolution_canary_observe    在确定性屏障上报告启动/健康/依赖/指标
evolution_history           有界领域历史;带 query 时做经验检索
evolution_doctor            无模型健康报告

设计要点(摘自 README):

  • 不另建第二套运行时,Component / Service / Tool / Dispose 等由 Cordis 拥有。
  • 晋升必须同时满足 8 项门禁(真实收益、可测量证据、可重复、回归通过、可回滚、清理证据、无孤儿资源、运行时已恢复),缺一项即拒绝。
  • evolution_promote 默认不会写生产:必须显式传 confirmation: true,否则只返回「等待所有者确认」。
  • 晋升后进入 canary 观察;跨重启验证启动与健康;屏障上报告指标回归会触发自动回滚,且只回滚新候选。

默认不会自行上生产

真正闸门是所有者确认,而不是把 mode 当成总开关:

  • mode 默认 advisory;unattended 默认 false。二者会出现在策略报告里,但不是自主观察者能否启动实验的前置开关。
  • 自主观察者仅在配置了匹配的 autonomousStrategies、同一失败模式观测数达到 patternThreshold(默认 3)、且风险为 low 等条件同时满足时,才会启动隔离 Trial。high 风险硬约束为阻止,medium 硬约束为等待确认。
  • 经验检索默认开启(experienceRecall: true),只读,由 evolution_propose / evolution_history 触发;日常积累不引入模型、不轮询。

无模型诊断

evolution_doctor 与会话外 CLI dsh-evolution-doctor 共用检查项与分级,不依赖模型、不联网、不上传 Evolution 数据。CLI 缺少实时 context 时,部分 runtime 项会报 not-evaluated;要探针内部 API,需在会话内调用 evolution_doctor。

安装与启用

1. 安装 DSH

任选官方推荐方式:

npx @deepseek-ai/dsh web
# 或源码:pnpm install && pnpm run build

2. 下载并校验插件 tarball

从 GitHub Release v0.2.0-rc.16 获取产物:

RELEASE_URL=https://github.com/ryukeilee/dsh-evolution/releases/download/v0.2.0-rc.16
curl -fL "$RELEASE_URL/dsh-evolution-0.2.0-rc.16.tgz" -o dsh-evolution-0.2.0-rc.16.tgz
curl -fL "$RELEASE_URL/SHA256SUMS" -o SHA256SUMS
curl -fL "$RELEASE_URL/manifest.json" -o manifest.json

# 也可使用 GitHub CLI(公开仓库无需先 gh auth login)
gh release download v0.2.0-rc.16 --repo ryukeilee/dsh-evolution \
  --pattern 'dsh-evolution-*.tgz' --pattern 'SHA256SUMS' --pattern 'manifest.json'

sha256sum --check SHA256SUMS          # macOS:shasum -a 256 -c SHA256SUMS

3. 用官方 CLI 装入 profile

同一条命令也用于升级:

DSH_HOME=/isolated/home dsh plugin --profile web add ./dsh-evolution-0.2.0-rc.16.tgz
DSH_HOME=/isolated/home dsh web --no-open

安装后 profile 的 package.json 会把 dsh-evolution 列入 dsh.profile.bundles,随 profile 加载,无需每个 session 手工挂载 preset。

配置(可选)

配置经 profile patch 传入,全部可选。常用项包括:

配置项 默认值 说明
dataRoot $DSH_HOME/storages/evolution Evolution 数据根
mode "advisory" manual / advisory / autonomous
experienceRecall true false 关闭按需经验检索
canaryWindow 2 canary 所需屏障数
patternThreshold 3 自主观察者触发前的失败模式观测次数
autonomousStrategies 未配置 按失败模式定义 target / composition / measure / risk

完整表格见仓库 README 第 5 节。

典型用法

会话内最短闭环

在 Agent 会话中按生命周期顺序调用工具;README 推荐的最短路径:

evolution_runtime_inspect → evolution_propose → evolution_trial
→ evolution_measure → evolution_revert        (放弃)
                     → evolution_promote → evolution_canary_observe   (采纳)

晋升到生产时,调用 evolution_promote 需带上 confirmation: true。

命令行诊断

安装到 profile 后可用:

<profile>/node_modules/.bin/dsh-evolution-doctor \
  --home "$DSH_HOME" [--profile web] [--json]

<profile>/node_modules/.bin/dsh-evolution-doctor --home "$DSH_HOME" --repair [--json]

退出码:0 健康、1 可降级问题、2 阻塞问题。

升级、回滚与卸载

DSH_HOME=/isolated/home dsh plugin --profile web add ./dsh-evolution-<new>.tgz
DSH_HOME=/isolated/home dsh plugin --profile web add ./dsh-evolution-<old>.tgz
dsh plugin --profile web remove dsh-evolution

README 强调:回滚旧插件包不会自动回滚已 stable 提交的 promotion composition;卸载不删除用户数据。

适用场景与注意事项

适合谁: 已在 DSH 上运行 Cordis、需要把「改运行时」变成可审计流程的开发者或团队——尤其是要在 Trial 里验证再晋升、并保留失败学习与 canary 回滚能力时。

安全与权限(务必阅读):

  1. 插件以当前 DSH 进程权限运行;安装前应自行审查 GitHub 源码 与 MIT 许可证。
  2. README 与 SkillHub 简介一致:晋升是 Host-only,且不是安全沙箱;持久化源码通过合作式 Function(hostCode)() gate 加载,这是兼容性 gate,不是隔离环境,晋升需要可信审批。
  3. 依赖部分内部或未文档化的宿主接口;升级 DSH 前需重新验收,evolution_doctor 会逐项探测而非假装健康。
  4. 仓库说明未做 npm 发布、代码签名 / provenance(SLSA)或 SBOM;已启用 GitHub Code Scanning。

生态说明: DSH 的理念是「一切皆插件」。SkillHub(目录页)是社区独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-evolution 把自我改进从「改完难撤、结论无据」推进到 Trial → 测量 → 门禁 → 所有者确认 → canary 的机制链,并附带无模型的经验检索与 doctor 诊断。当前为 0.2.0-rc.16 预发布,GitHub 上星标为 0;使用前请下载 Release tarball 校验哈希,并在理解 promotion 非沙箱的前提下启用。

  • 目录页:https://www.skillhub.cn/plugins/ryukeilee/dsh-evolution
  • 仓库:https://github.com/ryukeilee/dsh-evolution
羽毛球分组比赛记分
小程序二维码

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

Xiaoye