跳到內容

預測驅動演化引擎

讓 90% 的對話以零 LLM 成本完成演化。


想像一位執業 30 年的醫師。病人走進來打噴嚏、流鼻水,醫師不會下令全套血液檢查加 MRI;他憑經驗判斷就能開出處方:多休息、多喝水。只有在出現出乎意料的狀況(異常症狀、矛盾的體徵)時,醫師才會升級到昂貴的診斷程序。

DuDuClaw 的演化引擎運作方式完全相同。它不必對每一次對話都進行反思(太貴了),只需要預測應該發生什麼,再於現實偏離預測時才投入運算資源。


每當使用者訊息到達,引擎會執行以下循環:

使用者訊息到達
|
v
+------------------+
| 預測預期結果 | <-- 基於已學習的模式
+--------+---------+
|
v
+------------------+
| 觀察實際回應 | <-- Agent 實際做了什麼
+--------+---------+
|
v
+------------------+
| 計算預測誤差 | <-- 預測和現實差多遠?
+--------+---------+
|
v
+------------------+
| 依誤差嚴重度 | <-- 選擇最便宜的適當行動
| 進行路由 |
+------------------+

預測誤差決定後續動作:

誤差等級 含義 執行動作 成本
可忽略(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 次預測:
|
v
GVU 觸發是否太頻繁?
--> 是:調高「顯著」閾值(更寬容)
--> 否:檢查是否遺漏了真正的問題
--> 是:調低閾值(更敏感)
--> 否:維持目前設定

這意味著系統會適應每個 Agent 獨特的行為特徵。處理客服的 Agent(可預測的模式)會有較高的閾值,而從事創意寫作的 Agent(本質上不可預測)則會有較低的閾值。


若沒有此引擎,每次對話都會觸發 LLM 反思。在大規模運作下(每日數千則訊息),反思成本可能超過對話本身的成本。預測驅動方案將反思成本削減約 90%。

反思為演化管線增加延遲。透過跳過 90% 對話的反思,演化系統保持回應靈敏,不會成為瓶頸。

並非所有對話都承載同等的演化訊號。一段例行的「早安」交流不會教給 Agent 任何新東西。透過預測誤差過濾,引擎將學習預算集中在真正包含新資訊的對話上。


預測引擎要比較「預期結果」與「實際結果」之前,得先搞懂這次對話到底發生了什麼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 機制會先累積梯度訊號,等到量夠了才觸發一次完整的演化循環:

偵測到顯著誤差
|
v
梯度緩衝區累積夠了嗎?
|
+----+----+
| |
夠了 不夠
| |
v v
現在就 累積梯度
觸發 GVU (留到之後)
|
v
72 小時內最多延後 3 次
→ 分散在數天內,
相當於 9-21 次有效迭代

這讓演化引擎不必對路上每一個小坑洞都反應過度,只等到證據累積到足以支撐一次有意義的改動:結果是更穩定、品質更高的演化。


  • GVU 迴圈:預測引擎是 GVU 的守門人。它決定何時觸發 GVU 以及以何種緊迫程度。
  • MistakeNotebook:跨迴圈共用的記憶,避免同一種錯誤一犯再犯。
  • ConversationOutcome:零成本的對話分類,為預測比對提供「觀察到的現實」。
  • SOUL.md 版本控制:當 GVU 產生新版 SOUL.md 時,預測引擎的準確度是 24 小時觀察期指標的一部分。
  • CostTelemetry:引擎的命中/未中比率被追蹤並顯示在儀表板上,幫助營運人員了解引擎節省了多少。
  • Deferred GVU:梯度累積機制確保演化有耐性、以證據為準。

預測驅動引擎回答了一個根本問題:「這次對話是否需要讓 Agent 成長?」 大多數時候,答案是否定的,而系統夠聰明,不需要詢問 LLM 就能辨認出這一點。真的需要成長時,它可以選擇耐心等待(Deferred GVU)或立刻行動(緊急迴圈),而且從不會忘記自己過去犯過的錯(MistakeNotebook)。