前言¶
在 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 生態理念是「一切皆插件」,安裝與使用請自行評估權限與成本。