預測驅動演化引擎
讓 90% 的對話以零 LLM 成本完成演化。
比喻:經驗老到的醫師直覺
Section titled “比喻:經驗老到的醫師直覺”想像一位執業 30 年的醫師。病人走進來打噴嚏、流鼻水,醫師不會下令全套血液檢查加 MRI;他憑經驗判斷就能開出處方:多休息、多喝水。只有在出現出乎意料的狀況(異常症狀、矛盾的體徵)時,醫師才會升級到昂貴的診斷程序。
DuDuClaw 的演化引擎運作方式完全相同。它不必對每一次對話都進行反思(太貴了),只需要預測應該發生什麼,再於現實偏離預測時才投入運算資源。
每當使用者訊息到達,引擎會執行以下循環:
使用者訊息到達 | v+------------------+| 預測預期結果 | <-- 基於已學習的模式+--------+---------+ | v+------------------+| 觀察實際回應 | <-- Agent 實際做了什麼+--------+---------+ | v+------------------+| 計算預測誤差 | <-- 預測和現實差多遠?+--------+---------+ | v+------------------+| 依誤差嚴重度 | <-- 選擇最便宜的適當行動| 進行路由 |+------------------+四級誤差等級
Section titled “四級誤差等級”預測誤差決定後續動作:
| 誤差等級 | 含義 | 執行動作 | 成本 |
|---|---|---|---|
| 可忽略(Negligible) | 預測準確 | 什麼都不做,繼續。 | 零 |
| 中等(Moderate) | 略有偏差,但在容許範圍內 | 記錄偏差供未來學習,不採取行動。 | 零 |
| 顯著(Significant) | 有意義的錯誤 | 觸發一次 GVU 反思循環 | 一次 LLM 呼叫 |
| 嚴重(Critical) | 完全錯誤 | 觸發緊急 GVU 迴圈(最多 3 輪) | 多次 LLM 呼叫 |
實務上,絕大多數對話落在前兩個等級。Agent 的行為可預測到足以讓引擎在不花一個 API token 的情況下確認「一切正常」。
此架構模擬了 Kahneman 框架中的人類認知模式:
System 1(快速、自動): 一組輕量啟發式規則處理常見情境。這些規則檢查的項目包括:
- 回應是否符合預期的意圖類別?
- 語氣是否與 Agent 的人格一致?
- 回應是否在行為邊界之內?
System 2(緩慢、刻意): 只在 System 1 標記異常時才啟動。此時才會呼叫 LLM 深入分析問題所在,並提出修正建議。
精妙之處在於 System 1 處理約 90% 的流量。System 2 僅保留給真正需要反思的約 10%。
更巧妙的是:「中等」與「顯著」之間的界線不是固定的。MetaCognition(元認知) 模組每 100 次預測會審視自身表現:
每 100 次預測: | vGVU 觸發是否太頻繁? --> 是:調高「顯著」閾值(更寬容) --> 否:檢查是否遺漏了真正的問題 --> 是:調低閾值(更敏感) --> 否:維持目前設定這意味著系統會適應每個 Agent 獨特的行為特徵。處理客服的 Agent(可預測的模式)會有較高的閾值,而從事創意寫作的 Agent(本質上不可預測)則會有較低的閾值。
這為什麼重要
Section titled “這為什麼重要”若沒有此引擎,每次對話都會觸發 LLM 反思。在大規模運作下(每日數千則訊息),反思成本可能超過對話本身的成本。預測驅動方案將反思成本削減約 90%。
反思為演化管線增加延遲。透過跳過 90% 對話的反思,演化系統保持回應靈敏,不會成為瓶頸。
並非所有對話都承載同等的演化訊號。一段例行的「早安」交流不會教給 Agent 任何新東西。透過預測誤差過濾,引擎將學習預算集中在真正包含新資訊的對話上。
零 LLM 對話結果偵測
Section titled “零 LLM 對話結果偵測”預測引擎要比較「預期結果」與「實際結果」之前,得先搞懂這次對話到底發生了什麼。ConversationOutcome 模組會沿三個維度為每次對話分類,全程不呼叫 LLM:
對話結束 | v+-----------------------+| TaskType 偵測 | <-- 使用者原本想做什麼?|(問題、請求、 | (關鍵字 + 模式比對)| 抱怨等) |+-----------------------+ | v+-----------------------+| 滿意度訊號 | <-- 使用者滿意嗎?|(明確回饋、 | (情緒啟發式規則、| 對話走向) | 再次接觸模式)+-----------------------+ | v+-----------------------+| 完成度偵測 | <-- 任務結束了嗎?|(確認語句、 | (zh-TW + en 雙語)| 話題收尾) |+-----------------------+這一步提供的是預測引擎拿來比對的「觀察到的現實」(而且成本是零)。
MistakeNotebook:跨迴圈的錯誤記憶
Section titled “MistakeNotebook:跨迴圈的錯誤記憶”當一次預測失準(顯著或嚴重等級的誤差),細節會被記錄進 MistakeNotebook。這是一份持續累積的失敗模式紀錄:
預測誤差(顯著或嚴重) | v寫入 MistakeNotebook: - 預測了什麼、實際發生了什麼 - 對話情境 - 當時生效的 SOUL.md 版本 - 錯誤類別 | v未來的預測會查閱這本筆記: 「這種錯誤我以前犯過嗎?」 | v 若有:對類似情境調低信心閾值 (更謹慎)這本筆記同時餵給預測引擎(改善未來預測)與 GVU 迴圈(L2.5 MistakeRegression 驗證層會拿新的人格版本去比對已知的失敗模式)。
Deferred GVU:有耐性的演化
Section titled “Deferred GVU:有耐性的演化”不是每一次顯著的預測誤差都需要馬上動手。Deferred GVU 機制會先累積梯度訊號,等到量夠了才觸發一次完整的演化循環:
偵測到顯著誤差 | v梯度緩衝區累積夠了嗎? | +----+----+ | | 夠了 不夠 | | v v現在就 累積梯度觸發 GVU (留到之後) | v 72 小時內最多延後 3 次 → 分散在數天內, 相當於 9-21 次有效迭代這讓演化引擎不必對路上每一個小坑洞都反應過度,只等到證據累積到足以支撐一次有意義的改動:結果是更穩定、品質更高的演化。
與其他系統的互動
Section titled “與其他系統的互動”- GVU 迴圈:預測引擎是 GVU 的守門人。它決定何時觸發 GVU 以及以何種緊迫程度。
- MistakeNotebook:跨迴圈共用的記憶,避免同一種錯誤一犯再犯。
- ConversationOutcome:零成本的對話分類,為預測比對提供「觀察到的現實」。
- SOUL.md 版本控制:當 GVU 產生新版 SOUL.md 時,預測引擎的準確度是 24 小時觀察期指標的一部分。
- CostTelemetry:引擎的命中/未中比率被追蹤並顯示在儀表板上,幫助營運人員了解引擎節省了多少。
- Deferred GVU:梯度累積機制確保演化有耐性、以證據為準。
預測驅動引擎回答了一個根本問題:「這次對話是否需要讓 Agent 成長?」 大多數時候,答案是否定的,而系統夠聰明,不需要詢問 LLM 就能辨認出這一點。真的需要成長時,它可以選擇耐心等待(Deferred GVU)或立刻行動(緊急迴圈),而且從不會忘記自己過去犯過的錯(MistakeNotebook)。