前言¶
在 DeepSeek Harness(DSH)这类“一切皆插件”的智能体开发体系中,调整 Agent Profile 后通常要回答两个问题:这次改动是否真的更好,坏掉时能否退回到已验证版本。dsh-self-evolution 把这两个问题放进同一套流程:它让 Agent Profile 在冻结的 Benchmark 上自我迭代,只有候选版本严格优于当前版本时才接受,否则从已验证快照精确回滚。
这是什么¶
dsh-self-evolution 是 Lhy723 维护的 MIT 许可插件,面向 DeepSeek Harness / Cordis。它原生调用 ctx.subagents.start(...) 与 ctx.tools.register(defineTool(...)),作为 Cordis Service 暴露为 ctx.evolution,并注册以下模型工具:
evolution_runevolution_evaluateevolution_statusevolution_rollback
核心功能¶
下面按能力边界介绍。
- 在冻结的 Benchmark 上迭代 Agent Profile。
- 每次改进必须严格优于当前版本才会被接受,否则从已验证的快照精确回滚;接受规则不使用
>=,平分会回滚。 - 宿主代码执行确定性策略,包括 Benchmark 冻结哈希、
Case × Run矩阵、严格接受门槛、单调版本号与快照验证。 - 使用 Target、Evaluator、Optimizer 三类隔离角色;Optimizer 使用
{ allow: [] }全工具隔离。 - 私有
rubric不进入 Target / Optimizer 上下文;公开与私有产物分目录落盘。 - 变更防护包括候选文件白名单、路径穿越与符号链接防护、单 Profile 互斥锁、外部改动检测。
- 每个子 Agent 有独立 DeepSeek Session ID,Scoreboard 与运行事件日志可用于复盘。
安装与启用¶
先确认前置条件:
- 已有初始化的 DeepSeek Harness profile。
dshCLI 与pnpm在 PATH 上。- Node 满足
>=22。 - Benchmark 必须声明
frozen: true。 - 生产环境请把 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修改provider与model;设置allowModelRouteMutation: true才开放。 - 从 GitHub 安装时直接提交了预构建的
dist,不需要prepare构建步骤,也不需要配置allowBuilds。
相关链接¶
- 插件目录页:
https://www.skillhub.cn/plugins/Lhy723/dsh-self-evolution - GitHub 源码:
https://github.com/Lhy723/dsh-self-evolution