evo-engineering:用固定回合協議讓 agent 多輪改進任意產物

前言

在 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。

社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,安裝與使用請自行評估權限與成本。

羽毛球分组比赛记分
小程序二维码

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

小夜