ALTK-Evolve 和 ACE 兩個系統都讓 AI 代理能從自身的執行軌跡中學習。它們的差異在於如何處理這些學習內容,而這也決定了 token 的花費。

當給予一個大型語言模型(LLM)代理一個真實的多步驟任務,例如分攤帳單、尋找歌曲或在九個模擬應用程式中核對訂單時,如果它失敗了,通常不是因為缺乏知識。它可能是錯誤地分頁了 API、解析了錯誤的人,或者在沒有要求的情況下返回了數值。模型知道 API,但它沒有內化的是如何可靠地使用它們。這可以從代理自身的歷史中學習。

最近有兩個系統正是這樣做的,而且針對的是同一類型的代理:ACE (Agentic Context Engineering) 和我們的 ALTK-Evolve(在此介紹)。兩者都是一種代理記憶(agentic memory)形式,將代理過去的執行軌跡轉化為可重複使用的「教訓」,並在推論時回饋給模型,無需權重更新,也無需人工標註。

它們甚至在最困難的部分達成共識,但在「傳遞」方式上有所不同。關於術語,由於兩個系統命名方式不同:我們將代理學習到的原始內容稱為「教訓」(lesson)。ACE 將其教訓組織成一個全面、不斷演進的「劇本」(playbook);我們則將教訓整合為可單獨檢索的「指引」(guidelines)。教訓相同,但容器不同。

我們達成共識之處

兩個系統都拒絕壓縮學習內容。ACE 精確地指出失敗模式:簡潔偏誤(優化傾向於簡短、通用的指令)和上下文崩潰(模型在每個步驟中被要求重寫整個上下文,從而將細節摘要掉)。它的解決方案是保留一個豐富、條列式的劇本,每個項目都有一個「有用/有害」的計數器,並讓模型在讀取時自行提煉相關性。

我們從另一個方向得出相同的結論。每個獨立的指引都保留一個「支持計數」(support count),即有多少獨立的事件產生了它,我們從不將儲存的內容總結成少數幾條規則。五個不同任務發現的教訓與只出現過一次的教訓是不同的物件,兩者都值得保留。

因此,對於核心問題,是否應該將代理辛苦習得的教訓壓縮成簡潔的摘要?ACE 和 ALTK-Evolve 給出了相同的答案:不。應該計數它們,而不是將它們壓縮。ACE 的每個項目計數器和我們的支持計數是同一理念的兩種表達方式。

我們不同之處

主要有兩個方面:記憶的建立方式和傳遞方式,而正是傳遞方式的差異體現在 token 的費用上。

整合(記憶庫的建立方式):ACE 透過「生成器 → 反思器 → 管理器」(Generator → Reflector → Curator)的循環來擴展其劇本,應用增量更新並透過嵌入(embedding)進行去重複。我們則將近似重複的教訓進行分群,並在群組內合併,同時保留支持計數,當多個教訓合併時,倖存者會繼承它們的總計數,因此記憶庫在縮小體積的同時,不會丟失每個指引背後有多少經驗的記錄。

我們還提取了類型化的指引,包括策略、恢復和優化,並具有因果歸因和可追溯到原始軌跡的來源,且粒度細至子任務,因此在一個應用程式上學到的教訓可以轉移到另一個應用程式。

傳遞(推論時模型接收的內容):這是影響數字的關鍵。ACE 在每個步驟中都注入完整的劇本,無論模型或任務如何,方式都相同。我們將傳遞視為一個可調節的「撥盤」,而非固定不變:一個由高支持計數指引組成的小型固定核心,再根據當前任務擴展一些精選的指引(透過餘弦相似度或 LLM 引導,並加權優先級),或者當模型有足夠的上下文空間時,則傳送完整的整合集。

相同的教訓對兩個代理都可用;不同之處在於 ACE 總是傳送所有教訓,而我們則根據給定模型實際能使用的數量來傳送。

為何重要

在 AppWorld 基準測試中,使用相同的基礎 ReAct 代理,並在內部運行這兩個系統的結果如下表所示:

| 模型 | 系統 | TGC / SGC | 每任務 Token 數 |

|---|---|---|---|

| DeepSeek-V3.2 | ACE | 80.4 / 73.2 | 634K |

| | ALTK-Evolve | 89.3 / 80.4 | 263K |

| gpt-oss-120b | ACE | 54.8 / 35.7 | 777K |

| | ALTK-Evolve | 56.0 / 37.5 | 116K |

對於較強的模型,我們在兩項指標上都表現更好,推論成本約為 ACE 的 40%。對於較弱的模型,我們以 56.0 比 54.8 略勝 ACE 一籌,這足以讓我們稱之為準確度上的平手(我們重複運行一次的結果是 54.8,幾乎與 ACE 完全相同,這在該基準測試的運行間噪音範圍內),但成本卻約為其七分之一。

關於成本的公平說明:ACE 的效率故事在於其上下文的低成本建立。我們的效率則在於另一個軸線,如何「提供」上下文。每次任務只檢索少量指引,而不是在每個步驟中注入整個劇本,這就是 token 節省的關鍵,也是上述傳遞方式差異的直接結果。

那麼準確度從何而來?按難度劃分的結果呈現了兩種不同的情況:

圖 1. 記憶功能啟用後,按難度劃分的任務目標完成率,ALTK-Evolve 與 ACE 的比較。在 DeepSeek-V3.2(右圖)上,我們在簡易、困難和總體任務上獲勝;ACE 僅在中等難度上略勝一籌。在 gpt-oss-120b(左圖)上,ACE 在簡易和中等難度上領先,但按任務選擇的檢索方式在困難任務上表現更優,並決定了總體結果。每個系統都比其無記憶基準有所改進(參見下方「方法說明」中的按難度參考表)。

這兩個模型呈現出不同的故事。在 gpt-oss-120b 上,ACE 的完整劇本在簡易和中等難度任務上佔優,這些任務有足夠的通用指令遵循部分,使得全面的提示詞幫助大於干擾。但在困難任務上,模型必須選擇正確的教訓,而不是瀏覽所有教訓,此時精選的檢索方式便脫穎而出,這也是決定總體表現的層級。

在 DeepSeek-V3.2 上,情況則相反:較強的模型能夠很好地吸收 ACE 的完整劇本,在中等難度上略勝我們,但我們在簡易、困難和總體任務上都領先,由於有更多的餘裕容量,更多的教訓(以我們的方式傳遞)持續提供幫助,而不是相互干擾。

我們為每個模型提供了最佳配置,對於強模型使用完整的整合集,對於弱模型則使用選擇性檢索,因為龐大的上下文會壓垮弱模型,而非幫助它。(確切要注入多少,以及它如何在能力譜系中擴展,將是下一篇文章的主題。)

相同的教訓,不同的傳遞

兩個系統都拒絕將代理辛苦習得的經驗壓縮成簡潔的摘要,這一點我們達成共識。不同之處在於傳遞方式是固定不變還是經過校準:ACE 無論如何都會在每個步驟中傳送整個劇本;我們則根據給定模型實際能使用的指引集數量來傳送。正是這種校準,才帶來了上述的數據,以 ACE 推論成本的一小部分,實現相同或更好的準確度,對於較弱的模型而言,這更是幫助與阻礙之間的差異。

您可以試用 ALTK-Evolve 函式庫(其中包含此處使用的提取、整合和檢索管線),或閱讀完整的技術報告以了解完整的方法和消融研究。

相關連結/參考資料

  • 早期文章:ALTK-Evolve 介紹
  • ACE (Agentic Context Engineering)
  • AppWorld 基準測試
  • ALTK-Evolve
  • 完整技術報告

方法說明

AppWorld test_normal 包含 168 個任務。這是一個 ReAct 程式碼代理(每個步驟編寫 Python 程式碼;環境返回輸出)。TGC = 任務目標完成率(Task Goal Completion);SGC = 情境目標完成率(Scenario Goal Completion),這要求情境的每個變體都必須通過。

記憶僅從訓練/開發集(train/dev)中挖掘;結果是單次運行(pass@1),這是此基準測試的標準做法。

ACE 的數據是我們內部運行 ACE 代理的結果,在與 ALTK-Evolve 相同的 AppWorld 分割和相同的基礎模型(DeepSeek-V3.2 和 gpt-oss-120b)上進行評估。ACE 論文報告的是不同的基礎模型(DeepSeek-V3.1),因此我們自行運行以確保模型和測試環境的比較受控。

兩個系統都是相同的 ReAct 代理,僅在提示詞模板上有所不同,這也是兩個無記憶基準線(72.0 vs 79.8 TGC)不同的原因;我們不將比較建立在該基準線差距上,而僅基於提示詞調整無法觸及的主張:以一小部分 token 成本實現相同或更好的準確度。

參考表格

DeepSeek-V3.2,test_normal (168 任務):

| 系統 | 指引數量 | TGC | SGC | 每任務 Token 數 |

|---|---|---|---|---|

| ReAct, 無記憶 | 0 | 79.8 | 64.3 | 148K |

| ReAct + ACE | 106 | 80.4 | 73.2 | 634K |

| ReAct + ALTK-Evolve | 191 | 89.3 | 80.4 | 263K |

gpt-oss-120b,test_normal:

| 系統 | 指引數量 | TGC | SGC | 每任務 Token 數 |

|---|---|---|---|---|

| ReAct, 無記憶 | 0 | 39.9 | 21.4 | 110K |

| ReAct + ACE | 完整 | 54.8 | 35.7 | 777K |

| ReAct + ALTK-Evolve (選擇性) | ~29 | 56.0 | 37.5 | 116K |

gpt-oss-120b,按難度劃分 (TGC):

| 難度 | 基準線 | ACE | ALTK-Evolve |

|---|---|---|---|

| 簡易 | 66.7 | 84.2 | 82.5 |

| 中等 | 35.4 | 60.4 | 56.2 |

| 困難 | 19.1 | 23.8 | 31.8 |

| 總計 | 39.9 | 54.8 | 56.0 |

DeepSeek-V3.2,按難度劃分 (基準線 → +記憶): 這兩個系統由於上述提示詞模板的差異,從不同的無記憶基準線開始 (總體 TGC 為 79.8 vs 72.0)。

| 層級 | ALTK TGC | ALTK SGC | ACE TGC | ACE SGC |

|---|---|---|---|---|

| 總體 | 79.8 → 89.3 | 64.3 → 80.4 | 72.0 → 80.4 | 57.1 → 73.2 |

| 簡易 | 93.0 → 94.7 | 84.2 → 84.2 | 78.9 → 84.2 | 63.2 → 78.9 |

| 中等 | 81.2 → 97.9 | 62.5 → 93.8 | 85.4 → 100.0 | 75.0 → 100.0 |

| 困難 | 66.7 → 77.8 | 47.6 → 66.7 | 55.6 → 61.9 | 38.1 → 47.6 |