自主進化 v3:Agentic Evolution Engine + Playbook
SOUL.md 改為唯讀人格層;真正在學習、累積、可以個別淘汰的是行為規則清單(playbook)。
以前,AI 員工學到教訓時會請 LLM 整份改寫自己的人格檔 SOUL.md。DuDuClaw 1.53 起,SOUL.md 對 AI 員工是唯讀的(只有你,透過儀表板或操作者終端才能改),真正在學習、累積、可以個別淘汰的是一份新的行為規則清單(playbook)。這篇文件說明改了什麼、對你有什麼影響,以及怎麼設定與觀察。
三個月的實際運作數據顯示,舊機制常常「壞掉但沒人發現」:
- 人格檔一旦長超過安全上限,後續所有學習提案都會被同一道關卡擋下,而系統只把「需要人工複查」寫進一行沒人看的 log。AI 員工就此卡住,再也學不到新東西,直到有人偶然發現。
- 觀察期規則原本是「對話數不夠就等」,但等待邏輯有漏洞,最後變成「反正等夠久就當作驗證通過」,實際上完全沒有真正的證據支持。
- 業界也在往這個方向走:Anthropic 官方記憶 API 建議用「很多個小而專注的檔案」取代「少數幾個大檔案」;Letta(MemGPT 的後繼者)乾脆不讓主 AI 自己編輯核心記憶。人格檔本身沒有被淘汰的跡象,被淘汰的是「讓 LLM 自己整份改寫它」這件事,剛好也是最容易被提示注入攻擊利用的一塊。
改了什麼(給你的實際影響)
Section titled “改了什麼(給你的實際影響)”- SOUL.md 你來改,AI 員工不能自己改。 想調整某位 AI 員工的個性、語氣、職責邊界,一樣是在儀表板「AI 員工 → 詳情 → 編輯」或直接編輯檔案,跟以前一樣。差別是 AI 員工自己不會再半夜偷偷改自己的人格檔。
- 新的學習容器是 Playbook(行為規則),取代整份人格檔改寫。 每條規則很小、有自己的分類(修正錯誤 / 優化既有做法 / 探索新做法)、記錄什麼情境該觸發它、連結至少一個驗證用的測試案例,累積 helpful/harmful 成效分數,表現不好會自動退休,不會無限累積成一份誰都不敢動的巨型文件。
- 驗證變細顆粒。 以前是「整份人格檔改完,觀察 24 小時,整份 confirm 或整份 rollback」。現在每條規則各自驗證、各自決定去留:一條規則表現不好,只回滾那一條,不會牽連其他學到的好東西。
- 舊機制沒有被刪除,是預設關閉的逃生門。 若你有特殊理由需要維持舊的「整份改寫 SOUL.md」行為,可在該 AI 員工的
agent.toml設定[evolution] legacy_soul_evolution = true。但走這條路的 AI 員工享受不到新機制的保護(分層驗證、更細的回滾、停滯告警)。
每條新學到的規則都走同一條生命週期,驗證與去留以「條」為單位:
學習提案(一條規則) | v+---------------------------+| 零 LLM 作弊偵測 | <-- 抄驗證題題面 / 永遠成立的空話 /+-------------+-------------+ 教隱瞞失敗 → 直接擋下並記錄原因 | v+---------------------------+| 連結驗證題(eval case) | <-- 每條規則至少連結一題,+-------------+-------------+ 附機器可檢查的斷言 | v+---------------------------+| 觀察期 | <-- aee_settle_hours(預設 24 小時)+-------------+-------------+ | v+---------------------------+| 各自決定去留 | <-- 累積 helpful/harmful 成效分數;| | 表現不好只回滾那一條,自動退休+---------------------------+進化學習本來就是選擇性功能,兩層開關都要打開:
[evolution]enabled = true # 總開關(master switch)gvu_enabled = true # 學習迴圈本身(預設 false,需要你明確打開)gvu_enabled 的預設值已改為 false(本次修正了一個長期存在的設定矛盾:過去範本產生的設定檔即使寫 = true,實際執行時卻常被系統當成 false 處理,兩邊不一致)。若你之前依賴「沒寫這個 key 就會自動啟用」的舊行為,升級後請明確把它打開。
其他常用設定:
[evolution]gvu_cooldown_minutes = 60 # 每位 AI 員工的學習冷卻時間(分鐘), # 防止短時間內連續觸發多次學習耗費過多資源aee_settle_hours = 24 # 新學到的規則要觀察多久才決定去留strategy = "balanced" # 每輪學習比較偏向修錯 / 優化 / 探索新做法strategy 有四種選擇:
| 值 | 適合情境 |
|---|---|
balanced(預設) |
修錯、優化、探索三者平衡 |
innovate |
偏重探索新做法,適合還在摸索定位的新 AI 員工 |
harden |
偏重優化既有規則,適合已經穩定運作、想精修的 AI 員工 |
repair_only |
只修錯,不主動探索新規則,最保守 |
儀表板「記憶」頁新增「自主學習」分頁,可以看到:
-
進化模式總覽:目前有多少 AI 員工啟用了學習、走的是新機制還是舊逃生門
-
版本歷史:每次學習事件的時間軸
-
停滯偵測:某位 AI 員工連續好幾輪學習都被拒絕、或很久沒有成功學到新東西時,這裡會出現警示(過去這種情況完全沒人看得到)
-
拒絕統計圖:學習提案在哪一關被擋下最多,方便判斷是規則太嚴還是 AI 員工提案品質不好
-
經驗法則清單:目前每位 AI 員工學到的規則。每張卡片以白話呈現(「當任務出現〈做不到、能力不足〉時,我會〈先確認手上有哪些工具〉」),底下一行「為什麼有這條」說明來源與證據(歸納自幾次失敗、有幾個驗收案例把關、實際用過幾次、其中幾次有幫助);給模型看的原始條文收在「看原始規則內容」裡,需要時才展開。狀態用一致的白話標籤:觀察中(尚未生效)/試用中/生效中/很久沒用到,已收起來/已淘汰。可一鍵匯出成 JSON,或停用某一條你不認同的規則。
白話改寫是純樣板組裝,不呼叫任何模型,所以列表頁重整不會產生費用或延遲。組不出通順句子時不會硬編:卡片改為顯示原始條文並明確標示「這條還無法自動改寫成白話」。
在通訊軟體裡看規則
Section titled “在通訊軟體裡看規則”不必開儀表板也能問:
/rules # 目前生效中的前 3 條(白話)/rules all # 全部(含觀察中、已收起來的;已淘汰的留在儀表板)同樣零模型成本:指令在進入 AI 之前就被攔截處理。
回答裡也能問「你為什麼這樣做?」:注入給 AI 的規則現在帶編號與一行說明,AI 可以直接指出它依據的是哪一條(「因為我學過:…」),不必事後編一個聽起來合理的理由。
規則的試行結果(採用/回退/證據不足)會計入每日摘要的學習事件節,不會單獨推播打擾你。
進階:匯出規則、跑驗證題庫
Section titled “進階:匯出規則、跑驗證題庫”想把某位 AI 員工目前學到的規則整批匯出(例如做人工審查、或未來想跨員工複製一份經驗),可以用:
duduclaw playbook export --agent <員工 id> --out rules.json每條規則的去留由連結的「驗證題庫」(eval case)決定。若你想自己手動跑一次驗證,或建立/擴充題庫:
duduclaw eval evals/<員工 id> # 跑一次完整題庫duduclaw eval evals/<員工 id> --case foo,bar # 只跑指定幾題duduclaw eval evals/<員工 id> --exclude-dir held-out # 排除保留題(防止 AI 員工看過答案)自 1.53 起,每條新學到的規則都必須連結至少一題驗證題,並附上幾條可機器檢查的斷言(必須用哪些工具、輸出必須或不得包含哪些字樣)。還沒有題庫的話,可以先用草稿指令從 SOUL.md 的行為規則產生題目草稿:
duduclaw eval-scaffold --agent <員工 id> # 產生題目草稿到 evals-drafts/草稿會放在 evals-drafts/,經你人工審核、搬進 evals/ 之後才會被學習機制採用,未審核的草稿不會混進正式題庫。若某條規則的斷言沒有對應的錄製紀錄可以重放,系統會誠實標記「未驗證」並降為僅供參考,不會假裝測過。
若某位 AI 員工過去在舊機制下已經把不少行為規則寫進了 SOUL.md,可以把它們搬進新的 playbook(先產生草稿、你審核過再套用):
duduclaw playbook migrate-soul --agent <員工 id> # 步驟 1:產生遷移草稿duduclaw playbook migrate-soul --agent <員工 id> --apply # 步驟 2:審核後套用防作弊稽核(1.53 起內建)
Section titled “防作弊稽核(1.53 起內建)”學習提案在進入驗證前,會先經過一道零 LLM 的作弊偵測:規則內容若大量抄襲驗證題的題面(等於背答案)、寫成永遠成立的空話、或教 AI 員工隱瞞失敗不回報,提案會直接被擋下並記錄原因。至於「討好評審的措辭」這類較模糊的訊號,只會記進統計供你觀察,不直接否決,避免誤殺正常規則。
還沒做的部分
Section titled “還沒做的部分”這是一份分階段落地的改造。以下項目在規劃中,尚未隨本版出貨,之後會另行公告:
- 把每次學習「立成一個可證偽的假設」,讓觀察期真正在等一個具體答案,而非模糊地看統計數字
- 定期把累積的規則做語意層面的去重整理(目前已有的去重只擋幾乎一字不差的重複,還不會發現「五條規則其實在講同一件事」這種需要理解才看得出的重疊)
- 開關細節:
docs/guides/evolution-switches.md - 驗證題庫(eval)完整指南:
docs/guides/evals.md - 技術架構:
docs/architecture/evolution-engine.md第十二章