dsh-self-evolution:面向 DeepSeek Harness 的基准驱动自我进化插件

前言

在 DeepSeek Harness(DSH)这类“一切皆插件”的智能体开发体系中,调整 Agent Profile 后通常要回答两个问题:这次改动是否真的更好,坏掉时能否退回到已验证版本。dsh-self-evolution 把这两个问题放进同一套流程:它让 Agent Profile 在冻结的 Benchmark 上自我迭代,只有候选版本严格优于当前版本时才接受,否则从已验证快照精确回滚。

这是什么

dsh-self-evolutionLhy723 维护的 MIT 许可插件,面向 DeepSeek Harness / Cordis。它原生调用 ctx.subagents.start(...)ctx.tools.register(defineTool(...)),作为 Cordis Service 暴露为 ctx.evolution,并注册以下模型工具:

  • evolution_run
  • evolution_evaluate
  • evolution_status
  • evolution_rollback

核心功能

下面按能力边界介绍。

  • 在冻结的 Benchmark 上迭代 Agent Profile。
  • 每次改进必须严格优于当前版本才会被接受,否则从已验证的快照精确回滚;接受规则不使用 >=,平分会回滚。
  • 宿主代码执行确定性策略,包括 Benchmark 冻结哈希、Case × Run 矩阵、严格接受门槛、单调版本号与快照验证。
  • 使用 Target、Evaluator、Optimizer 三类隔离角色;Optimizer 使用 { allow: [] } 全工具隔离。
  • 私有 rubric 不进入 Target / Optimizer 上下文;公开与私有产物分目录落盘。
  • 变更防护包括候选文件白名单、路径穿越与符号链接防护、单 Profile 互斥锁、外部改动检测。
  • 每个子 Agent 有独立 DeepSeek Session ID,Scoreboard 与运行事件日志可用于复盘。

安装与启用

先确认前置条件:

  1. 已有初始化的 DeepSeek Harness profile。
  2. dsh CLI 与 pnpm 在 PATH 上。
  3. Node 满足 >=22
  4. Benchmark 必须声明 frozen: true
  5. 生产环境请把 Benchmark(尤其 private rubric)放在 Target workspace 之外;默认 allowBenchmarkInsideWorkspace: false 会拒绝 workspace 内的 Benchmark。

在目标 profile 安装:

dsh plugin --profile web add dsh-self-evolution

安装后,查看当前 profile 配置:

dsh --profile web --dump-config

经过上面的步骤,插件会以 ctx.evolution 服务注册,并在会话中提供四个 evolution_* 模型工具。

典型用法

下面先做评测,再做一轮进化,然后查询状态与回滚。

建立评测

调用 evolution_evaluate

evolution_evaluate(profile_dir, benchmark_dir, runs_per_case)

这里的 benchmark_dir 应指向一个声明了 frozen: true 的 Benchmark 目录。

启动自我进化

调用 evolution_run

evolution_run(profile_dir, benchmark_dir, rounds, runs_per_case)

可选参数 target_score 表示目标分:

evolution_run(profile_dir, benchmark_dir, rounds, runs_per_case, target_score)

查询与回滚

调用 evolution_status 查询当前版本、实际哈希、漂移、下一版本、Benchmark 引用与快照。

调用 evolution_rollback 恢复到某个已验证的版本快照。

适用场景与注意

适合已经维护 Agent Profile,并希望把修改放到固定 Benchmark 上验证的 DSH 使用者。需要注意:

  • 插件以当前 dsh 进程权限运行;安装前应检查源码与许可证。
  • Optimizer 默认被限制为 { allow: [] } 全工具隔离,只能通过受限文件操作提候选。
  • 默认禁止 Optimizer 修改 providermodel;设置 allowModelRouteMutation: true 才开放。
  • 从 GitHub 安装时直接提交了预构建的 dist,不需要 prepare 构建步骤,也不需要配置 allowBuilds

相关链接

  • 插件目录页:https://www.skillhub.cn/plugins/Lhy723/dsh-self-evolution
  • GitHub 源码:https://github.com/Lhy723/dsh-self-evolution
羽毛球分组比赛记分
小程序二维码

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

Xiaoye