前言¶
在 DeepSeek Harness(DSH)里让 agent 改文档、代码或 skill,常见做法是改一版、读一遍、觉得「好像好点了」再改一版。轮数一多,很难说清楚哪版最好、为什么好,也退不回某一版;换会话重来,结论还可能变。若有两个模型各改一版,往往只能凭印象挑选。
下面介绍社区插件 evo-engineering(维护者 vlln,分类:工作流)。它把「怎样算更好」写成文件,用 propose → act → critique → select → regression → commit 的回合协议自动跑改进与独立评审,并按冠军线选优;人类在元层定标准、看结果、随时介入、喊停或回滚。插件当前在 GitHub 上约 1 star,版本 0.1.0,MIT 许可。
这是什么¶
evo-engineering 把自进化 / 递归自我改进(RSI)当成一个动词:对某个产物说「进化它」,其余交给固定回合协议。
元层(你 + 当前会话):定标准 → 看结果 → 随时介入
任务层(子代理):propose → act(隔离实现)→ critique(独立评审)→ select(冠军线)→ regress → commit
同一套思路以三种形态交付,协议不绑死在某一 harness 上:
| 层 | 形态 | 谁能用 |
|---|---|---|
| 便携手册 | skills/evo/(SKILL.md + references) |
任何 agent harness,复制进 skill 目录即可 |
| 确定性引擎 | workflow/evo-round.mjs |
带官方 workflow 引擎的 dsh 会话 |
| 插件 | /evo 命令 + evo_init / evo_round / evo_status / evo_rollback |
dsh 用户(自动记账、每圈 git 打点、可回滚) |
与手工反复改、定时循环类插件(如 dsh-loop)、一次检查修复闭环(如 dsh-inspect)相比,evo-engineering 由你说「进化它」发起:定一次标准,然后每圈看结果、必要时介入。
它不替你决定「什么值得进化」,也不保证一定变好;变化不够大时会选择不改。标准模糊到语言也判不了时仍要人裁定;critic 分歧时会主动停下来问你。
核心功能¶
标准与回归
evals/criteria.md:怎样算更好,每条尽量写成可观察的表现。evals/regression.md:上一任冠军必须保持的行为,每圈重跑,任一失败即不采纳。
一回合流程
- 自动或人工提议 → 多个 actor 隔离实现(互不可见)→ 每个候选由多个独立 critic 打分并给证据 → 按冠军线选优(新版本须严格超过上一任冠军才被采纳)→ 回归探针 → 写 ledger、git 检查点。
命令与工具
| 命令 | 说明 |
|---|---|
/evo init <target> [workspace] |
建工作区:快照到 baseline/,生成 evals/ 与 ledger.md、git init |
/evo round [数量 \| "提议文本"] |
跑一回合;带引号文本为指定提议,跳过 brainstorm |
/evo status |
回合数、当前 champion、最近一轮 |
/evo rollback [round] |
回滚到检查点(缺省最近一圈) |
/evo help |
用法 |
对应工具:evo_init、evo_round、evo_status、evo_rollback。evo_round 跑完自动写 ledger 并打 git 检查点。
evo_round 常用参数(完整表见 workflow/evo-round.mjs 的 ROUND_ARGS_DOC):
| 参数 | 默认 | 作用 |
|---|---|---|
proposals |
无 | 指定改进提议(给了就不自动 brainstorm) |
own_proposals |
2 | 自动提议的子代理数 |
actors |
2 | 并行实现的子代理数 |
critics |
2 | 每个候选的独立评审数 |
threshold |
7 | 入选最低均分(0–10) |
note |
无 | 本回合备注,写进 ledger |
随包 skill
skills/evo/SKILL.md 描述跨 harness 的进化协议:工作区布局、六阶段回合、critic 判分、防退化与递归阶梯等。
插件跑在官方 workflow 引擎上(服务名 workflowEngine,官方基础组合自带)。缺该服务时插件仍可启动,调用工具时会报可操作错误,不会拖垮 profile 启动。Node 要求 >=22.19.0。
安装与启用¶
1)安装 dsh 插件
装完后需重启 web(bundle 在启动时组层栈)。仓库零构建,git 源安装不触发构建。
dsh plugin --profile web add "github:vlln/evo-engineering#main" # 装
dsh plugin --profile web remove @vlln/evo-engineering # 卸载
2)可选:挂载 evo skill
SKILL.md 为通用规范,放进 skill 发现路径即可。发现路径包括项目 <项目>/.dsh/skills、<项目>/.agents/skills,以及用户 $DSH_HOME/skills、~/.agents/skills。
# 用户级(让当前 DSH_HOME 认得它)
mkdir -p "$DSH_HOME/skills"
ln -s "$DSH_HOME/profiles/web/node_modules/@vlln/evo-engineering/skills/evo" "$DSH_HOME/skills/evo"
# 或项目级(二选一)
ln -s "$PWD/skills/evo" <你的项目>/.agents/skills/evo
安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。插件以当前 dsh 进程权限运行,只作用于指定工作区内的产物,不扫描、不修改工作区外文件。
典型用法¶
先初始化工作区,再与人对齐标准(编辑 evals/criteria.md 是唯一必须由人完成的核心步骤),然后按回合进化。
/evo init README.md # 目标快照进 baseline/,生成标准与回归探针占位
# 编辑 <workspace>/evals/criteria.md,必要时维护 evals/regression.md
/evo round # 提 2 案 → 隔离实现 → 每案 2 个独立评审 → 选优 → 回归 → 记账+打点
/evo status # 回合数 / 当前 champion / 最近一轮
/evo round "把开头换成个人经历" # 元层指定提议,跳过 brainstorm
/evo rollback # 回滚到最近检查点
一回合结束后报告会列出候选均分、是否采纳、回归探针结果。若挑战者分数高于阈值但未超过当前 champion,引擎会拒绝采纳、champion 不变。判分与理由落在 runs/<round>/candidate-*/verdict-*.json,每圈记在 ledger.md,可用 git tag 回滚。
适用场景与注意¶
适合
- 需要多轮改进且要可追溯版本、可比较候选、可回滚的文档、代码、skill 或提示词。
- 已使用带 workflow 引擎的 dsh web profile,能接受每圈默认约 2×2 个子代理带来的成本。
限制与注意
- 需要 profile 提供 workflow 引擎;没有时工具会明确报错。
- actor 工作目录未受限,当前靠回合后把产物吸收进
runs/N/补救。 - 分数差很小时可能是评估噪声,同量级时演化可能像随机游走(见仓库
docs/known-issues.md)。 - 模糊标准下
needsHuman会较常见;critic 分歧即升级给人,属设计取舍。 - 每圈成本约为 P×C 个子代理(默认 2×2),请按目标规模调整参数。
结尾¶
evo-engineering 把「改到更好」从反复口头指令,收成可文件化的标准、隔离候选、独立评审、冠军线与 git 检查点。若你在 DSH 工作流里需要这类多轮选优,可按上文命令安装并在对齐 criteria.md 后使用 /evo round。
- 社区目录页:https://www.skillhub.cn/plugins/vlln/evo-engineering
- 源码与文档:https://github.com/vlln/evo-engineering
社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,安装与使用请自行评估权限与成本。