Anthropic預測:2025是智能體系統年!年終總結分享最佳實踐

新智元報道

編輯:alan

【新智元導讀】近日,Anthropic開發者關係主管發推表示:萬事俱備,2025年將是智能體系統之年!在年終總結的博文中,Anthropic分享了一年來與客戶合作構建智能體系統的最佳實踐。

模型到應用之間的距離,就是燒錢與搞錢之間的距離。

這條路上,Agent已經身經百戰,萬事俱備。

在這個2024的結尾,Anthropic開發者關係主管Alex Albert表示:2025年將是智能體系統之年!

「各個部分正在就位,是時候開始考慮構建這些系統了。」

過去的一年裡,Anthropic與數十個團隊合作,構建了跨行業的大語言模型智能體系統。

實戰表明,最成功的實現方式並不是使用複雜的框架或專用庫,而是應用簡單的可組合模式。

根據與客戶合作的經驗,Anthropic在年末總結的博文中分享了構建有效智能體系統的實用建議。

Agent系統最佳實踐

智能體(Agent)可以有多種定義方式,比如將其視爲完全自主的系統,可以在較長時間內獨立運行,並使用各種工具完成複雜的任務。

這聽起來很像另一個名詞:工作流,但兩者之間有着重要的架構區別:

那麼,什麼時候使用智能體?什麼時候使用工作流?

一個原則是:找到儘可能簡單的解決方案,並且僅在需要時增加複雜性。

智能體系統通常會以延遲和成本爲代價來獲得更好的任務性能,開發者應當根據實際情況權衡,是否真的需要構建智能體系統。

當需要更高的複雜性時,工作流爲定義明確的任務提供可預測性和一致性;當需要大規模的靈活性和模型驅動的決策時,智能體是更好的選擇。

對於許多應用程序來說,使用檢索和上下文來優化單個LLM調用通常就足夠了。

何時使用框架

有許多現成的框架可以幫助構建智能體系統,比如:

框架簡化了標準的低級任務(如調用LLM、定義和解析工具、將調用整合在一起),但通常會創建額外的抽象層。

這可能會掩蓋底層提示和響應,使系統更難調試。但開發者有時會禁不住框架的誘惑而選擇增加系統的複雜性。

Anthropic建議開發人員儘量直接使用LLM(許多功能只需幾行代碼就能搞定),如果確實需要使用框架,請確保先了解底層代碼,——對框架實現原理的錯誤假設是錯誤的常見來源。

從0開始構建系統

生產中的常見模式,是從基礎模塊開始,逐步增加複雜性,從簡單的組合工作流到自主智能體系統。

基礎模塊:增強型LLM

智能體系統的基本構建塊是LLM,並通過檢索、使用工具和記憶等功能進行了增強。

增強型LLM可以主動使用這些功能,生成自己的搜索查詢、選擇適當的工具並確定要保留的信息。

Anthropic建議在實施中關注兩個關鍵方面:根據特定應用定製這些功能,以及確保爲LLM提供簡單且文檔健全的接口。

比如Anthropic最近發佈的Model Context Protocol,允許開發人員通過簡單的客戶端實現與各種第三方工具進行集成。

提示鏈(Prompt chaining)

提示鏈將任務分解爲一系列步驟,每個LLM調用都會處理前一個調用的輸出。可以在任何中間步驟中添加編程檢查,以確保流程處於正軌。

這種工作流非常適合可以輕鬆將任務分解爲固定子任務的情況(每個LLM負責一個簡單的子任務)。

提示鏈應用場景:

路由(Routing)

路由對輸入進行分類並將其定向到專門的後續任務,這個過程可以分離關注點,並構建更專業的提示。否則,針對一種輸入進行優化可能會損害其他輸入的性能。

路由適用於複雜任務,通過LLM或更傳統的分類算法準確處理分類,對於不同類別的子任務,可以更好地單獨處理。

路由應用場景:

並行化(Parallelization)

LLM有時並行處理一項任務,並以編程方式聚合其輸出。並行化工作流有兩種形式:

當已劃分的子任務可以並行執行,或者需要多次推理以獲得更高置信度的結果時,並行化非常有效。

對於需要考慮多個因素的複雜任務,讓單獨的LLM負責一個特定的方面,通常會提高系統的表現力。

並行化的應用場景:

Orchestrator-workers

在orchestrator-workers工作流中,中央LLM動態分解任務,將它們委託給worker LLM,並綜合其結果。

這種工作流非常適合於無法預測所需子任務的複雜任務(比如編碼中,需要更改的文件數以及每個文件中更改的內容取決於實際情況)。

orchestrator-workers與並行化在拓撲上相似,主要區別在於子任務不是預定義的,而是由orchestrator根據特定輸入確定的。

應用場景:

Evaluator-optimizer

在evaluator-optimizer工作流中,一個LLM調用生成響應,另一個LLM在循環中提供評估和反饋。

當開發者有明確的評估標準,且迭代過程能提供用於比較的值時,evaluator-optimizer工作流特別有效。

evaluator-optimizer應用場景:

智能體在生產中幫助理解複雜的輸入、參與推理和規劃、可靠地使用工具以及從錯誤中恢復。

執行過程中,智能體在每個步驟從環境中獲取「基本事實」以評估其進度,也可以在檢查點或遇到障礙時暫停以獲得人工反饋。

智能體用於難以預測所需步驟數,以及無法對固定路徑進行硬編碼的開放式問題。LLM可能會運行多個回合,需要用戶對其決策有一定程度的信任。

智能體的自主性意味着更高的成本,並且可能會使錯誤複雜化。作者建議在沙盒環境中進行廣泛測試,並使用適當的防護機制。

LLM的成功應用並不是構建最複雜的系統,而是根據需求構建正確的系統。在應用智能體時,儘量遵循三個核心原則:

框架可以幫助快速入門,但面對生產環境時,不要猶豫,減少抽象層並使用基本組件進行構建。

參考資料:

https://www.anthropic.com/research/building-effective-agents