機器之心報導
機器之心編輯部
多代理系統研究必讀指南。
「Anthropic 發布了他們如何使用多個 Claude AI 代理來建構多代理研究系統的精彩解釋。對於任何建構多代理系統的人來說,這是一本必讀的指南。」剛才,X 知名部落客 Rohan Paul 強力推薦了 Anthropic 一項新研究。
最近這段時間,關於代理系統的研究層出不窮。但這也為廣大研究者帶來一些困惑,例如什麼任務需要多代理系統?多個 AI 代理如何協作?如何解決上下文和記憶問題……
面對這些問題,你不妨讀讀 Anthropic 的這篇文章,或許能找到答案。
文章網址:https://www.anthropic.com/engineering/built-multi-agent-research-system
多代理系統的優勢
有些研究涉及開放式問題,這類問題往往難以預先確定所需的步驟。對於複雜問題的探索,人類無法硬性規定固定路徑,因為這個過程本質上是動態且具有路徑依賴性的。當人們進行研究時,通常會根據發現持續調整方法,沿著調查過程中浮現的線索不斷推進。
這種不可預測性使得 AI 代理特別適合執行研究類型的任務。研究工作要求具備彈性,能夠在調查過程中根據發展情況進行轉向或探索相關聯的內容。模型必須能夠自主進行多輪推論,根據中間發現決定進一步的探索方向。線性的一次性流程無法勝任這樣的任務。
研究的本質是壓縮:從龐大的語料中提煉出有價值的見解。子代理系統透過並行運作、各自擁有獨立的上下文視窗來輔助這個壓縮過程,它們能同時探索問題的不同方面,然後將最重要的內容提煉出來,交給主研究代理處理。每個子代理還承擔了關注點分離的作用 —— 它們使用不同的工具、提示詞和探索路徑,從而減少路徑依賴,確保研究過程更為全面且相互獨立。
一旦智慧達到一定門檻,多代理系統就成為提升效能的關鍵方式。例如,儘管在過去的十萬年中,個體人類的智力有所提升,但正是由於我們在資訊時代的集體智慧和協作能力,人類社會的整體能力才呈指數級增長。即使是具備通用智慧的代理,作為個體在執行任務時也存在極限;而多個代理協作,則能完成更多複雜任務。
Anthropic 內部評估顯示,多代理研究系統在「廣度優先」的查詢任務中表現尤為出色,這類任務通常需要同時探索多個相互獨立的方向。他們發現,在以 Claude Opus 4 為主代理、Claude Sonnet 4 為子代理組成的多代理系統中,表現比單一的 Claude Opus 4 代理高出 90.2%。
多代理系統的核心優勢在於能夠透過充分的 token 消耗來解決問題。分析顯示,在 BrowseComp 評估(該測試衡量瀏覽型代理定位高難度資訊的能力)中,三個因素共同解釋了 95% 的效能差異。研究發現:
token 消耗量單獨解釋了 80% 的差異;
工具調用次數和模型選擇構成是另外兩個關鍵因素。
這項發現驗證了 Anthropic 之前所採用的架構:透過將任務分發給擁有各自上下文視窗的不同代理,從而為並行推論增加容量。最新的 Claude 模型在 token 使用效率上具有強大的乘數效應,例如,將 Claude Sonnet 升級至 4 版本所帶來的效能提升,甚至超過了將 Claude Sonnet 3.7 的 token 預算翻倍所帶來的提升。對於那些超出單一代理處理極限的任務,多代理架構可以有效擴展 token 使用,從而實現更強的處理能力。
當然,這種架構也有一個缺點:在實際應用中,它們會非常快速地消耗 token。根據 Anthropic 統計,代理通常會使用大約是普通聊天互動 4 倍的 token,而多代理系統的 token 消耗甚至是聊天的 15 倍左右。
因此,要實現經濟上的可行性,多代理系統需要用於那些任務價值足夠高、足以覆蓋其效能提升所帶來的成本的場景。此外,一些領域並不適合當前的多代理系統,例如那些要求所有代理共享同一上下文,或代理之間存在大量依賴關係的任務。
例如,大多數程式設計任務中真正可並行化的部分相對較少,而且當前的大型語言模型代理在「即時協調和分配任務」方面的能力還不夠強。
因此,多代理系統最擅長的場景是那些具有以下特點的高價值任務:需要大量並行處理、資訊量超出單一上下文視窗、以及需要與大量複雜工具互動的任務。
架構
Anthropic 的研究系統採用多代理架構,使用「協調者-執行者(orchestrator-worker)」模式:由一個主導代理負責整體協調,同時將任務分派給多個並行運作的專業子代理。
多代理架構的實際運作方式:使用者的查詢首先透過主導代理(lead agent),由它建立多個專業子代理,分別並行地搜尋查詢的不同方面。
上圖的工作流程是這樣的。當使用者提交一個查詢時,系統會建立一個名為 LeadResearcher 的主導研究代理,它會進入一個迭代式的研究過程。LeadResearcher 首先會思考研究方法,並將其計畫保存到 Memory(記憶模組)中,以便持久化上下文資訊 —— 因為一旦上下文視窗超過 200,000 個 token,內容就會被截斷,而保留研究計畫對於後續推論至關重要。
隨後,LeadResearcher 會建立多個專業子代理(Subagents)(圖中展示了兩個,實際上可以是任意數量),並為每個子代理分配具體的研究任務。每個 Subagent 會獨立地進行網頁搜尋,使用交替式思維方式評估工具返回的結果,並將研究發現回饋給 LeadResearcher。
LeadResearcher 對這些結果進行綜合分析,並判斷是否還需要進一步研究 —— 如果需要,它可以建立更多的子代理,或最佳化已有的研究策略。
一旦收集到足夠的資訊,系統就會退出研究循環,並將所有研究發現交給 CitationAgent(引用標註代理),由它處理所有文件和研究報告,識別出每條論述所對應的具體引用位置,從而確保所有觀點都有明確的來源支撐。
最終,包含完整引用資訊的研究成果將被返回給使用者。
研究型代理的提示詞工程與評估方法
多代理系統與單代理系統之間存在關鍵差異,其中之一就是協調複雜度會迅速上升。在早期階段,代理常常會出現一些錯誤行為,例如:為簡單的問題產生多達 50 個子代理、在網路上無休止地尋找根本不存在的資源,或者彼此頻繁干擾、發送過多無關更新。
由於每個代理的行為都是由提示詞(prompt)驅動的,因此提示詞工程成為研究者最佳化這些行為的主要手段。以下是 Anthropic 在為代理設計提示詞過程中總結出的一些原則:
高效的提示詞設計。要最佳化提示詞(prompt),就必須理解其實際影響。為此,Anthropic 透過控制台搭建了模擬環境 —— 完全重現系統中的提示詞和工具配置,逐步驟觀察代理的工作過程。這種方法立刻暴露出典型失效模式:冗餘執行,即已獲得充分結果後仍繼續操作;低效查詢,即使用冗長模糊的搜尋指令;以及工具誤用,錯誤選擇功能模組。因而,高效的提示詞設計依賴於你對代理行為建立起準確的心理模型,一旦理解深入,最有效的改進方向也會變得一目了然。
教導協調者如何正確分工。在 Anthropic 所採用的系統中,主導代理負責將使用者的查詢拆解為若干子任務,並將這些任務分配給子代理。每個子代理都需要明確的目標、輸出格式、關於應使用哪些工具和資訊來源的指導,以及清晰的任務邊界。如果任務描述不夠具體,代理之間就會出現重複勞動、任務空缺,或者無法找到所需的資訊。
Anthropic 曾經歷過一個深刻的教訓:他們早期採用「研究晶片短缺」這類籠統指令時,發現這類指令往往過於模糊,導致子代理誤解任務,或者執行與其他代理完全相同的搜尋。例如三個子代理不約而同地鎖定 2025 年供應鏈數據,其中一個偏離到 2021 年汽車晶片危機卻未涵蓋製造端瓶頸,最終報告重複率高達 60% 且缺少晶圓廠產能分析。
根據查詢複雜度調整投入力度。由於代理在判斷不同任務所需的適當投入時存在困難,因此 Anthropic 在提示詞中嵌入了分級投入規則。簡單的事實查找只需要 1 個代理調用 3-10 次工具;直接對比類任務可能需要 2-4 個子代理,每個調用 10-15 次工具;而複雜的研究任務則可能使用超過 10 個子代理,並且明確劃分各自的職責。
這些明確的指導原則幫助主導代理更有效地分配資源,避免在簡單查詢上投入過多。
工具的設計與選擇至關重要。代理與工具之間的介面就像人與電腦的互動介面一樣重要。使用合適的工具可以顯著提高效率 —— 在很多情況下,這不僅是最佳化手段,更是必要條件。例如,如果一個代理試圖透過網頁搜尋來獲取只存在於 Slack 中的上下文資訊,那麼從一開始它就註定無法成功。
隨著 MCP 伺服器讓模型能夠存取外部工具,這個問題變得更加複雜 —— 代理可能會遇到從未使用過的工具,而這些工具的描述品質又參差不齊。
因此,Anthropic 為代理設計了明確的啟發式規則,例如:先查看所有可用工具、將工具的用途與使用者意圖進行匹配、使用網頁搜尋進行廣泛的資訊探索、優先選擇專用工具而非通用工具等。
糟糕的工具描述會導致代理完全走上錯誤的路徑,因此每個工具都必須具備明確的用途和清晰的描述。
讓代理自我改進。Anthropic 發現 Claude 4 系列模型在提示詞工程方面表現非常出色。當提供一個提示詞和相應的失敗模式時,它能夠診斷出代理失敗的原因,並提出改進建議。
Anthropic 甚至建構了一個工具測試代理:當它接收到一個存在問題的 MCP 工具時,會嘗試使用該工具,並隨後重寫其工具描述,以避免類似的失敗發生。透過對該工具進行數十次測試,這個代理能發現關鍵的使用細節和潛在的錯誤。
這種最佳化工具互動體驗的流程,使後續代理在使用新描述時的任務完成時間縮短了 40%,因為它們能夠避開大多數常見錯誤。
先廣後窄,循序漸進。搜尋策略應當模仿人類專家的研究方式:先全面探索,再深入細化。然而,代理往往傾向於一開始就使用冗長、具體的查詢詞,結果返回的內容卻非常有限。
為了解決這個問題,Anthropic 在提示詞中引導代理從簡短、寬泛的查詢開始,先評估可用資訊,然後再逐步聚焦和深化研究方向。
引導思維過程。「擴展思維模式」(Extended Thinking Mode)會讓 Claude 在輸出中展示出可見的思考過程,這相當於一個可控的「草稿本」。主導代理會利用這種思維過程來規劃整體策略,包括評估哪些工具適合當前任務、判斷查詢的複雜度和需要的子代理數量,並明確每個子代理的職責。
測試表明,擴展思維能夠顯著提升代理的指令遵循能力、推論能力和執行效率。
子代理同樣會先制定計畫,然後在工具調用之後使用交替思維(Interleaved Thinking)來評估結果品質、發現資訊缺口,並改進下一步的查詢。這使得子代理在面對不同任務時具備更強的適應能力。
並行調用工具徹底改變了研究任務的速度與效能。複雜的研究任務天然需要查閱大量資訊來源。Anthropic 早期的代理採用的是串行搜尋,執行效率極低。
為了解決這個問題,他們引入了兩種並行機制:
主導代理同時建立 3-5 個子代理,而不是依次生成;
每個子代理同時使用 3 個以上的工具,而不是逐個調用。
這些改進將複雜查詢的研究時間最多縮短了 90%,讓研究系統能在幾分鐘內完成原本需要幾小時的工作,同時涵蓋的資訊範圍也遠超其他系統。
有效評估方法
良好的評估機制對於建構可靠的 AI 應用至關重要,代理系統也不例外。然而,評估多代理系統面臨獨特的挑戰。
傳統評估通常假設 AI 每次都會遵循相同的步驟:給定輸入 X,系統應按路徑 Y 執行,並輸出結果 Z。但多代理系統的工作方式並非如此。即使起點相同,代理可能會走上完全不同但同樣有效的路徑來實現目標。有的代理可能只查閱 3 個資訊來源,有的可能會查 10 個;它們也可能使用不同的工具來得出相同的答案。
由於我們並不總是知道哪一套操作步驟才是正確的,所以通常無法只靠檢查是否遵循了預設流程來評估代理表現。相反,我們需要更彈性的評估方法,既要判斷代理是否達成了正確的結果,也要衡量其執行過程是否合理。
從小樣本評估開始。在代理開發的早期階段,任何改動往往都會帶來顯著影響。例如,僅僅調整一下提示詞,成功率就可能從 30% 提升到 80%。在這種影響幅度很大的階段,只需少量測試用例就能看出變化的效果。
Anthropic 最初使用了一組大約 20 個查詢,這些查詢代表了真實的使用模式。測試這些查詢通常就足以清晰判斷某項更改的效果。
人們經常聽到 AI 開發團隊說他們推遲建立評估機制,是因為他們認為只有包含數百個測試用例的大規模評估才有價值。但實際上,最好的做法是立即從小規模測試開始,用幾個範例立刻著手評估,而不是等到建構出完整評估系統之後再行動。
如果使用得當,「由大型語言模型擔任評審官」(LLM-as-judge)的評估方式也是不錯的選擇。
研究類的輸出很難透過程式化手段進行評估,因為它們通常是自由格式的文本,且很少存在唯一正確的答案。而 LLM 天然適合擔任這類輸出的評分者。
Anthropic 使用了一位「LLM 評審官」,根據一套評分標準(rubric)來評估每個輸出,具體包括以下幾個維度:
事實準確性:陳述是否與引用來源相符?
引用準確性:引用內容是否確實支持了對應的陳述?
完整性:是否涵蓋了所有被要求回答的內容?
資訊源品質:是否優先使用了高品質的第一手來源,而非較低品質的二手資料?
工具使用效率:是否合理選擇並適當使用了相關工具?
Anthropic 嘗試過使用多個 LLM 來分別評估每一個維度,但最終發現:只使用一次 LLM 調用,透過單個提示詞讓模型輸出 0.0–1.0 的評分以及「通過 / 未通過」的判斷,是最穩定、最符合人類評審標準的方法。
這種方法在測試用例本身有明確答案時尤其有效,例如:「是否準確列出了研發投入最高的三家製藥公司?」 這種題目可以直接判斷答案是否正確。
借助 LLM 擔任評審官,能夠高效地擴展到對數百個輸出結果進行評估,大幅提升了評估系統的可擴展性與實用性。
人工評估能發現自動化評估遺漏的問題。實際測試代理的人會發現一些評估系統無法捕捉的邊緣案例,例如在不尋常查詢中產生的幻覺答案、系統故障,或是細微的來源選擇偏差。即使在自動化評估盛行的今天,人工測試依然不可或缺。
生產可靠性與工程挑戰
在傳統軟體中,程式缺陷可能導致功能失效、效能下降或系統當機。而在代理系統中,細微的變化可能引發巨大的行為變動,這使得為需要在長時間運行過程中維護狀態的複雜代理編寫程式碼異常困難。
代理是有狀態的,錯誤會累積。代理可能運行很長時間,在多次調用工具過程中保持狀態。這意味著我們需要持久地執行程式碼並在過程中處理錯誤。如果沒有有效的緩解措施,輕微的系統故障對代理來說可能是災難性的。當發生錯誤時,我們不能簡單地從頭重啟:重啟成本高且令使用者沮喪。相反,Anthropic 建構了能夠從代理發生錯誤時的狀態繼續執行的系統。
偵錯。代理在運行時會做出動態決策,即使使用相同的提示,結果也具有非確定性,這使得偵錯變得更加困難。透過添加完整的生產追蹤,Anthropic 能夠系統地診斷代理失敗的原因並修復問題。
部署需要謹慎協調。代理系統是高度有狀態的提示、工具和執行邏輯的網路,幾乎持續運行。這意味著每當我們部署更新時,代理可能處於執行過程中的任何階段。雖然不能同時將所有代理更新到新版本。但 Anthropic 採用彩虹部署,透過逐步將流量從舊版本轉移到新版本,同時保持兩者並行運行,從而避免對正在運行的代理造成干擾。
同步執行會造成瓶頸。目前,Anthropic 的主控代理採用同步方式執行子代理任務,會等待每批子代理完成後才繼續下一步。這簡化了協調過程,但也在代理之間的資訊流動中形成了瓶頸。例如,主代理無法即時引導子代理,子代理之間也無法協同,而整個系統可能會因為等待某個子代理完成搜尋而被阻塞。
非同步執行則能帶來更多的並行性:代理可以同時工作,並在需要時建立新的子代理。但這種非同步性也帶來了結果協調、狀態一致性以及錯誤傳播等方面的挑戰。隨著模型能夠處理更長更複雜的研究任務,Anthropic 預計效能提升將足以抵消這些複雜性的增加。
總結
在建構 AI 代理時,最後一哩路往往佔據了整個旅程的大部分。從開發者機器上能運行的程式碼庫,到變成可靠的生產系統,需要大量的工程投入。代理系統中錯誤的複合特性意味著,傳統軟體中的小問題可能會徹底擾亂代理的運行。某一步驟失敗,可能導致代理探索完全不同的路徑,從而產生不可預測的結果。基於本文所述的各種原因,原型與生產環境之間的差距通常比預期更大。
儘管面臨這些挑戰,多代理系統在開放式研究任務中已經展現出巨大價值。只要經過細緻的工程設計、全面的測試、注重細節的提示詞和工具設計、健全的維運實踐,以及研究、產品與工程團隊之間緊密合作且對當前代理能力有深刻理解,多代理研究系統就能在大規模場景中穩定運行。我們已經看到這些系統正在改變人們解決複雜問題的方式。
© 完
轉載請聯絡本公眾號獲得授權
投稿或尋求報導:liyazhou@jiqizhixin.com