Anthropic Managed Agents: 將大腦與雙手解耦

TL;DR

Anthropic 推出了 Managed Agents,這是一項託管服務,旨在透過將推理引擎(「大腦」)與執行環境(「雙手」)以及對話紀錄(session log)解耦,來運行長時程代理(long-horizon agents)。這種架構可以防止基礎設施故障導致代理狀態丟失,並允許系統隨著模型能力的提升而演進,而無需重新設計整個代理框架(agent harness)。

Managed Agents 的架構

Managed Agents 將 AI 代理的核心組件虛擬化為三個獨立的介面,以確保其中一個組件的實作可以被替換而不影響其他組件:

  • The Session: 代理運行期間發生的每個事件的唯讀追加式紀錄(append-only log)。
  • The Harness: 調度迴圈,負責呼叫模型並將工具呼叫路由到適當的基礎設施。
  • The Sandbox: 模型執行程式碼並編輯檔案的執行環境。

透過將這些組件視為虛擬化抽象而非單一耦合單元,Anthropic 確保了即使在底層模型和硬體變更時,系統仍能保持穩定。

將「大腦」與「雙手」解耦

先前,Anthropic 將所有代理組件放在單一容器中。這造成了「寵物」基礎設施問題,即單一容器故障會導致整個對話紀錄(session)丟失,且由於使用者數據和系統日誌存放在一起,使得除錯變得困難。

轉向「牲畜」基礎設施

為了達成此目標,Anthropic 將 harness(大腦)與 sandbox(雙手)以及 session log 解耦。這種轉變提供了幾個關鍵優勢:

  • 對 Sandbox 故障的韌性: harness 現在將 sandbox 視為一種工具來呼叫 (execute(name, input) → string)。如果 sandbox 發生故障,harness 會捕捉錯誤並可以使用標準配方重新初始化一個新容器 (provision({resources}))。
  • Harness 恢復能力: 由於 session log 是外部的,harness 現在是無狀態的。如果 harness 崩潰,可以透過 wake(sessionId) 重啟一個新的 harness,透過 getSession(id) 檢索取回事件紀錄,並從最後一次記錄的事件恢復。
  • 增強安全性: 透過將大腦與雙手分離,憑證(tokens)被保留在 sandbox 之外,避免了執行不受信任的模型生成程式碼的環境。對於 Git 操作,tokens 會在初始化期間被寫入本地 git remote;對於自定義工具,OAuth tokens 會存儲在安全保險箱(vault)中,並透過專用的代理(proxy)進行存取,確保 harness 和 sandbox 從不處理原始憑證。

管理長時程上下文

長時程任務通常會超過模型的上下文窗口(context window)。雖然壓縮(摘要)和修剪(移除舊的 tokens)是常見的技術,但這些決策涉及對哪些內容進行捨棄的不可逆決定。

Managed Agents 將 session log 視為一個持久的上下文對象,其存在於模型上下文窗口之外。getEvents() 介面允許模型以程式化方式查詢事件流,選擇位置切片(positional slices)或倒回至特定時刻以重新獲得上下文。這將上下文的持久化存儲(session)與上下文的主動管理(harness)分離,允許 harness 應用上下文工程或提示詞快取(prompt caching)策略,而不會丟失原始數據。

效能與擴展性增益

將大腦與雙手解耦帶來了顯著的延遲與靈活性提升:

降低延遲 (TTFT)

在耦合設計中,每個 session 都需要在推理開始前配置一個容器,無論是否真的需要 sandbox。透過將 harness 從容器中移出,推理可以在調度層從 session log 提取事件後立即開始。這帶來了以下結果:

  • p50 Time-to-First-Token (TTFT): 下降了約 60%。
  • p95 TTFT: 下降了超過 90%。
  • p50 Time-to-First-Token (TTFT): 下降了約 60%。
  • p95 TTFT: 下降了超過 90%。

支援「多個大腦,多個雙手」

解耦的架構允許單個大腦同時與多個執行環境(雙手)進行互動。因為每個「手」都被視為一種工具 (execute(name, input) → string),harness 對於 sandbox 是容器、行動裝置還是模擬器都保持中立。這種靈活性也允許大腦之間互相傳遞「手」,從而實現更複雜的多代理協作。

Sources

相關

  • Dispatch
  • 專案
  • Dispatch
  • Dispatch
  • Dispatch