DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

vlln /

vlln/evo-engineering

Verified

让 agent 把任意产物(文档、代码、skill)一轮轮改得更好:先定标准,再自动改进与独立评审,人类随时能看、能喊停、能回滚(DeepSeek Harness 插件)

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@18313931

evo-engineering

让 agent 把任意产物——文档、代码、skill、提示词——一轮轮改得更好:先定「怎样算更好」, 再自动跑「改进 → 独立评审 → 按冠军线选优」,而人随时能看、能喊停、能回滚。
(DeepSeek Harness 插件;同时含一份跨 harness 的 evo skill)

license format

这是什么

把「自进化 / 递归自我改进(RSI)」当成一个动词用:对某个产物说「进化它」,剩下的交给一个固定回合协议——

元层(你 + 当前会话):定标准 → 看结果 → 随时介入
任务层(子代理):propose → act(隔离实现)→ critique(独立评审)→ select(冠军线)→ regress → commit

三层一起交付,协议不绑死在某一个 harness 上:

层 形态 谁能用
便携手册 skills/evo/(SKILL.md + references) 任何 agent harness——复制进你的 skill 目录,agent 按手册用你自己的子代理/文件/git 跑协议
确定性引擎 workflow/evo-round.mjs 任何带官方 workflow 引擎的 dsh 会话(把脚本喂给 workflow 工具)
插件 /evo 命令 + evo_init / evo_round / evo_status / evo_rollback dsh 用户(自动记账、每圈 git 打点、可回滚)

为什么需要它

你现在的做法大概是这样:让 agent 改一版,读一遍,觉得"好像好点了",再让它改一版…… 到第 5 轮时你已经说不清哪版最好、为什么好,也退不回第 3 版;换个会话重来,结论还会变。 如果有两个人(或两个模型)各改一版,你只能凭印象挑。

这个插件把这几件事交给流程:标准写成文件(evals/criteria.md)、候选各自隔离实现 (actor 互不可见,避免抄答案)、独立评审打分(critic 互不可见、必须给证据)、按冠军线选优 (新版本必须严格超过上一任冠军才被采纳)、每圈一个 git 检查点(随时回滚)。

它不解决什么:

  • 标准模糊到语言也判不了时,仍然要人裁定——critic 分歧时会主动停下来问你(这是设计,不是故障)。
  • 分数只是代理指标:所以还有"回归账本"(每圈重跑上一任冠军必须保持的行为),挡住"分涨了但把旧东西弄坏"。
  • 它不替你决定"什么值得进化",也不保证一定变得更好——变化不够大时它会选择不改。

与相邻方案的区别:

方案 谁发起 你要做什么
手工反复让 agent 改 你,每一轮 每轮自己判断好坏、自己记着哪版最好
dsh-loop(定时循环) 你设定间隔,模型自调节 决定"多久跑一次";循环本身不评估产物好坏
dsh-inspect(检查→修复→复查) 你要求检查/修复 一次闭环:找问题、修、复查;不做多轮选优与历史冠军线
evo-engineering 你说「进化它」 定一次标准,然后每圈看结果、必要时介入

安装

1) dsh 插件:

dsh plugin --profile web add "github:vlln/evo-engineering#main"   # 装
dsh plugin --profile web remove @vlln/evo-engineering              # 卸载

装完重启 web(bundle 在启动时组层栈)。仓库是零构建的(入口直接是 src/index.mjs), git 源安装不触发构建。

(改源码要立刻试的本地开发安装见 docs/engineering-notes.md—— 它需要先把官方 SDK 链进 clone 的 node_modules,否则 profile 起不来。)

插件跑在官方 workflow 引擎上(服务名 workflowEngine,官方基础组合自带)。本插件不静态 依赖它:缺该服务的组合里插件照常启动,只有调用工具时才报一条可操作的错误,而不是拖垮整个 profile 启动。

2) evo skill(可选,跨 harness 都能用):SKILL.md 是通用规范,落位方式是放进 skill 发现路径。

# 让当前 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

(发现路径:项目 <项目>/.dsh/skills、<项目>/.agents/skills;用户 $DSH_HOME/skills、 ~/.agents/skills。其他 harness 用自己的等价目录即可。)

用起来是什么样

/evo init README.md        # 建工作区:目标快照进 baseline/,生成标准与回归探针占位
#   然后和用户对标准(这是唯一必须由人做的事):编辑 <workspace>/evals/criteria.md
/evo round                 # 跑一回合:提 2 案 → 隔离实现 → 每案 2 个独立评审 → 选优 → 回归 → 记账+打点
/evo status                # 回合数 / 当前 champion / 最近一轮
/evo round "把开头换成个人经历"   # 由你(元层)指定提议,跳过 brainstorm
/evo rollback              # 不满意?回滚到最近检查点

一回合结束后你会拿到这样的报告(真实运行输出,节选):

## outcomes (sorted by mean score)
- runs/1/candidate-1  score 8.8  [1 verdicts, 1 accept / 0 reject]
- runs/1/candidate-2  score 6.3  [2 verdicts, 0 accept / 0 reject]

## selection
- selected: runs/1/candidate-1  score 8.8 (> champion 0)
- needsHuman: true (4 regression concern(s) from critics)

## regression probes
- [PASS] fact-check — 逐条核对 baseline 的事实主张,无相反陈述
- [PASS] smoke — 候选目录内 README.md 与 CHANGELOG.md 存在且非空

下一回合如果挑战者只拿到 8.5(高于阈值、无 reject,但没超过冠军 8.8),它会拒绝采纳、 champion 不变——这就是"宁可不动"的那一帧。评审的判分与理由落在 runs/<round>/candidate-*/verdict-*.json,每圈记在 ledger.md,git tag 可回滚。

能力面

命令

命令 说明
/evo init <target> [workspace] 建工作区:快照目标到 baseline/、生成 evals/ 与 ledger.md、git init
/evo round [数量 | "提议文本"] 跑一回合;带引号的文本 = 由你指定的提议
/evo status 回合数 / 当前 champion / 最近一轮
/evo rollback [round] 回滚到检查点(缺省最近一圈)
/evo help 用法

工具

工具 说明
evo_init 建工作区(可指定 workspace、overwrite、标准起草提示)
evo_round 跑一回合,参数见下;跑完自动写 ledger + 打 git 检查点
evo_status 读 ledger,报告冠军与回合历史
evo_rollback 恢复工作区到某圈(只恢复工作区子树,不动宿主仓库其余部分)

Skills

Skill 作用
evo 跨 harness 的进化协议手册:工作区布局、六阶段回合协议、critic 判分与模糊标准、防退化三件套、递归阶梯(L1 产物 → L2 标准 → L3 协议 → L4 能力)与各层人类门禁

参数

evo_round 的常用参数(完整表见 workflow/evo-round.mjs 的 ROUND_ARGS_DOC):

参数 默认 作用
proposals 无 由你指定改进提议(给了就不自动 brainstorm)
own_proposals 2 自动提议的子代理数(每个独立上下文)
actors 2 并行实现的子代理数(actor 之间互相隔离)
critics 2 每个候选的独立评审数(判分与证据落盘)
threshold 7 入选所需的最低均分(0–10)
note 无 本回合备注,写进 ledger

工作区里由你维护的两个文件:evals/criteria.md(怎样算更好——每条尽量写成可观察的表现)、 evals/regression.md(上一任冠军必须保持的行为——每圈重跑,任一失败即不采纳)。

已知限制

  • 需要 profile 提供 workflow 引擎(官方基础组合自带);没有它时工具会明确报错。
  • actor 的工作目录未受限:子代理按自身 cwd 解析路径,当前靠"回合后把产物吸收进 runs/N/" 补救——根治需要 DSH 侧支持 per-agent cwd。
  • 分数差小的时候别当真:引擎不知道评估噪声有多大,几十分之一的差可能只是抖动; 噪声与真实差异同量级时,演化会退化成随机游走且看起来完全正常(见 docs/known-issues.md §3)。
  • 模糊标准下 needsHuman 会经常出现:critic 分歧即升级给人,这是刻意的代价交换。
  • 成本 = 每圈 P×C 个子代理:默认 2×2;预算参数有上限,但请按目标规模调整。
  • 只作用于指定工作区内的产物:不扫描、不修改工作区之外的文件。

插件管理

已装插件用 plugin-registry 的薄控制台管理(浏览器面板):管理 profile 插件安装态 (bundle 层栈 + insert 行 + 启停),无需手改配置。安装: dsh plugin --profile web add <plugin-registry>/packages/plugin/console

许可

MIT


工程备忘(真实运行验证证据、六个下线 bug 的复盘与最小复现、架构取舍、测试与门禁): docs/engineering-notes.md · docs/design.md · docs/known-issues.md · CHANGELOG.md

—/ 5

No ratings yet

Verified DSH bundle

Commit 183139317141

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout