跳到內容

Technology

新聞|Stateless Language Agents:研究狀態交給 harness,讓 agent 跑到 10 億 token 仍有進展

Stanford、SambaNova 等單位的研究者提出 Stateless Language Agents:agent 不保留跨呼叫的對話,候選解與量測結果存在 harness,每次重建上下文,由 Advisor 分派實驗給平行的 Worker。整理它的設計、最多 10 億 token 的對照實驗、消融與成本數字,以及論文自己列出的限制。

AI
Published: at 09:00 AM
編輯本頁下載圖卡

重點

要解決的問題

自動化研究(AutoResearch)讓 agent 反覆提出、實作、評估解法,對象是有可量測目標、但不知道最佳解在哪的問題。系統要處理的問題越難,越要問:多給推論預算,會不會換來更好的解?

論文指出兩個原因讓這件事很少被測到:

長時間執行會碰到兩個困難。第一是保留經驗與控制上下文的衝突:舊的候選解與失敗紀錄之後可能有用,但反覆讀越來越長的歷史既耗 token,也讓 agent 表現變差。第二是紀錄本身不會決定下一步該試什麼。

論文舉了 CORAL 的兩段實際紀錄:

做法

論文區分 agent 的「狀態」與「上下文」:狀態是跨呼叫保留的東西,上下文是單次呼叫裡看到的東西。SLA 的 agent 沒有狀態,但有上下文,上下文由 harness 從研究狀態重建。

每一輪的流程:

  1. harness 從研究狀態重建 Advisor 的上下文。
  2. Advisor 把具體實驗分派給各個 Worker。
  3. 每個 Worker 在隔離的工作區做幾次本地嘗試,預設 3 次。
  4. 獨立的評估器替每個候選打分。
  5. harness 記錄結果,更新每個 Worker 的本地候選與全域最佳解,直到預算用完。

兩種角色看到的東西不同:

角色上下文內容看不到的東西
Advisor任務說明、全域最佳解與分數、harness 整理的證據摘要(近期嘗試、依搜尋方向分組的結果、Worker 狀態、近期進展)完整的時序紀錄
Worker任務說明、自己的分派、自己保留的候選、上一次的狀態、分數與正確性診斷其他 Worker 的工作區與完整研究歷史

證據摘要會把「量到沒改進」和「實作、執行或正確性失敗」分開,避免一次執行失敗被當成這個方向已經走不通。Worker 的本地候選即使落後全域最佳解,改進仍會保留,讓替代做法有時間成熟。Advisor 改派某個 Worker 時,該 Worker 從全域最佳解重新開始。

無狀態是強制的,不靠提示詞請 agent 遵守:

論文也說明了它跟 coding agent 內建子代理的差別:內建子代理雖然各有上下文,負責協調的 agent 仍保有自己的對話。SLA 裡連 Advisor 都是無狀態的。

實驗設定

類別任務Token 預算
長時程軟體工程FrontierSWE:libexpat 轉 x86-64 組合語言、Git 轉 Zig、Dart 轉 Haskell、Lua 原生編譯器每題 7 億
Kernel 最佳化Anthropic VLIW SIMD kernel 最佳化10 億
Kernel 最佳化NVIDIA SOL-ExecBench #1、#58、#210每題 5 億
演算法設計FrontierCS Structured-LWE2 億

結果

Anthropic kernel 任務,數字是週期數,越低越好:

方法Codex,10 億 token(三次平均)Codex 達標所需 tokenClaude Code,10 億 token(一次)Claude Code 達標所需 token
EvoX1343.3 ± 4.0未達到1153未達到
CORAL1350.0 ± 134.2未達到11308.883 億
SwarmResearch1275.7 ± 133.99.863 億1243未達到
SLA1112.0 ± 8.96,790 萬10391.385 億

「達標」指第一次追上同設定下最強對照的最終成績。SLA 最差的一次是 1122 週期,仍好過對照最好的一次 1191 週期。

FrontierSWE(Codex,一次執行),分數乘以 100:

任務SLA 在 1.75 億 / 7 億最強對照在 1.75 億 / 7 億
libexpat 轉 x86-64 組合語言18.82 / 31.3319.67 / 24.58(SwarmResearch)
Git 轉 Zig20.42 / 28.8424.32 / 27.98(SwarmResearch)
Dart 轉 Haskell15.43 / 45.2726.70 / 38.59(SwarmResearch)
Lua 原生編譯器80.22 / 96.1582.97 / 90.66(CORAL)

滿預算時,SLA 平均比各題最強對照高 4.95 分。只看 25% 預算的話,四題都會判 SLA 落後。

其他任務:

消融與成本

消融從共享的 SLA checkpoint 開始,分別在 10% 與 20% 預算時存下研究狀態,每個設定再跑 1 億 token,各跑三次。三個變體都保持 agent 無狀態,只改上下文內容或有沒有分派:

三個變體在每組比較裡的平均進展都比完整 SLA 少。例如 libexpat 從 7,000 萬到 1.7 億 token 這段,完整 SLA 進步 2.66 分,拿掉分派的版本進展少了 84.2%。沒有分派時,紀錄裡可以看到三個 Worker 從同一份程式碼出發、各自加上同一個 XML 實體解碼功能,三個都沒有提高分數。

影響會隨時間累積。拿掉 Worker 隔離,在 1 億 token 的延續實驗裡只差 5–11 個週期;從頭跑滿 10 億 token,最後停在 1336 週期,比完整 SLA 的平均差了 224 個週期。

協調者的開銷:

任務方法協調者占 token協調者占成本
Anthropic kernel(10 億 token)SwarmResearch 的 Shepherd8.39%6.14%
Anthropic kernel(10 億 token)SLA 的 Advisor0.24%1.20%
FrontierSWE libexpat(7 億 token)SwarmResearch 的 Shepherd10.70%7.35%
FrontierSWE libexpat(7 億 token)SLA 的 Advisor0.51%2.29%

Shepherd 的開銷多半來自它長期累積的上下文:在 kernel 任務上,它平均每次呼叫讀入約 9.9 萬個 token,新開的 session 起始約 8,000 個。成本以 GPT-5.5 的牌價估算,兩個方法都有九成以上的 token 是命中快取的輸入。

Worker 數量的影響:

Worker 模型也可以分開挑。Advisor 固定用 GPT-5.5 時,花 100 美元的情況下,GPT-5.4 mini 當 Worker 在 Git 轉 Zig 上反而比 GPT-5.5 高(20.88 對 19.68),在 kernel 任務上則是 GPT-5.5 較好。

跟既有工作比新在哪

FunSearch、AlphaEvolve、EvoX 這一類演化式搜尋,每個候選只靠一兩次模型呼叫產生。CORAL 與 SwarmResearch 改用會用工具的 coding agent,但 agent 各自維持長時間的 session,研究歷史大半存在對話裡。SwarmResearch 的 Shepherd 也被指示不要分派具體點子。

SLA 把歷史整個移到 harness,並把「下一步試什麼」交給一個每輪都重新開始的 Advisor。論文認為最接近的是 Kosmos 的共享世界模型,不過 Kosmos 是由專家評閱報告來評估,沒有可執行的目標函數。

因為研究狀態都存在 harness,SLA 也可以當實驗工具使用:消融實驗能從完全相同的 checkpoint 恢復,分開比較各個設計。論文另外提到兩點延伸:

限制

論文自己列出的限制:

設定上也有一處要留意:在 kernel 任務上,CORAL 依上游預設直接使用原始任務描述,裡面另外列出了最佳化方向與先前已知的最佳分數,給 CORAL 的資訊比其他方法多。

參考資料

註釋

編輯本頁

Podcast

關於語音摘要

此語音摘要由 Google NotebookLM 提供,不完全代表作者本人對文章的理解。