
如何快速實現REST API集成以優化業務流程
單一Agent架構由單一語言模型驅動,獨立完成所有推理、規劃和工具執行。Agent接收系統提示和完成任務所需的工具。在這種模式下,沒有其他Agent的反饋機制,但可能有人提供反饋以指導Agent。
多Agent架構則涉及兩個或更多Agent,它們可以使用相同的語言模型或不同的語言模型。每個代理可以訪問相同或不同的工具,并擁有自己的角色。多代理架構在復雜性上可以有多種組織形式,本文將其分為兩大類:垂直架構和水平水平。這種劃分方式實際上是理想情況下的兩種極端,大多數多Agent架構實際上是出于這兩者之間。
在垂直架構中,一個Agent作為領導者,其他Agent直接向其匯報。根據架構的設計,匯報的Agent可能只與領導Agent通信,或者所有Agent之間可以共享對話。垂直架構的顯著特征是有一個領導代理和明確的勞動分工。
而在水平架構中,所有Agent平等參與,共同討論任務。Agent間的通信在一個共享的討論線索中進行,每個Agent都能看到其他Agent的所有消息。Agent也可以自愿承擔特定任務或調用工具,無需領導代理的指派。水平架構通常適用于需要協作、反饋和團隊討論的任務。
設計Agent的目的是用來擴展大語言模型的功能,來處理真實世界的一系列復雜問題。首先模型要有強大的問題解決能力,要處理問題,還需要具備強大的推理和規劃能力,以及與外部環境互動的工具調用功能。
推理是認知的基石,是使人能夠做出決策、解決問題并理解周圍的世界的關鍵能力。Agent如果想要在復雜環境中有效互動、自主決策,并在各種任務中協助人類,就必須具備強大的推理能力。“行動”與“推理”之間的緊密協作,使得Agent能夠快速學習新任務,并在未知情境或信息不確定的情況下,進行穩健的決策或推理。此外,代理還需要推理能力來根據新的反饋或學到的信息調整其計劃。如果Agent缺乏推理能力,可能會在執行簡單任務時誤解查詢、基于字面理解生成響應,或未能考慮到多步驟的影響。
規劃?是需要強大的推理能力,通常包括五種主要方法:任務分解、多計劃選擇、外部模塊輔助規劃、反思與改進以及記憶增強規劃。這些方法使得模型可以分解任務為子任務、從多個生成的選項中選擇一個計劃、利用現有的外部計劃、根據新信息修訂先前計劃,或利用外部信息來改進計劃。大多數Agent模式都有一個專門的規劃步驟,在執行任何動作之前,會調用這些技術中的一種或多種來制定計劃。例如,“像圖一樣規劃”(Plan Like a Graph, PLaG)是一種將計劃表示為有向圖的方法,允許多個步驟并行執行,這在處理包含許多獨立子任務的任務時,可以顯著提高性能,特別是那些從異步執行中獲益的任務。
與直接使用大語言模型相比,Agent的主要優勢在于Agent能夠通過調用多種工具來解決復雜問題。這些工具使得代理能夠與外部數據源進行交互,通過api或者其他方式收集信息。無論是單Agent模式還是多Agent架構,都可以通過運用推理和工具調用來解決現實世界的復雜問題。很多方法通過多次迭代推理、記憶、反思來解決這些問題。一般會把一個大問題拆解為若干個子問題,然后依次使用合適的工具來解決這些子問題。
這里,作者主要介紹了幾種單Agent方法:ReAct、RAISE、Reflexion、AutoGPT + P和LATS。這些方法在采取行動前,都會有一個專門的階段來對問題進行推理和規劃。而之所以選擇這些方法來介紹,也是因為這些方法對于提升Agent的推理能力、工具調用能力都有不錯的表現。
Agent成功的關鍵在于恰當的規劃和自我糾錯能力。如果缺乏自我評估和制定有效計劃的能力,單Agent可能會陷入無盡的執行循環,無法完成特定任務,或者無法給出滿足用戶期望的結果。并且,當任務直接執行功能調用,并且不需要其他Agent反饋時,使用單Agent架構時合理有效的。
在ReAct(Reasoning + Action)策略中,Agent首先對指定任務構思一個想法,隨后基于這個想法采取行動,并觀察結果。這個過程可以不斷循環,直至任務完成。ReAct在多樣化的語言和決策任務上相較于傳統的Zero Shot提示方法,展現出了更高的效率,并且由于模型的思維過程被完整記錄,它還提升了與人類的互操作性和信任度。在HotpotQA數據集的測試中,ReAct的幻覺發生頻率僅為6%,遠低于思維鏈(CoT)方法的14%。然而,ReAct策略也有其局限性。模型在提高信任度的同時,可能會陷入重復生成相同想法和行動的循環中,難以產生新想法來完成任務,跳出ReAct循環。在任務執行過程中引入人為反饋,可能會顯著提升其在現實世界情境中的效能和應用范圍。
RAISE(Reasoning and Acting through Scratchpad and Examples)方法是ReAct的增強版,增加了模仿人類短期和長期記憶的記憶機制,通過使用草稿本來實現短期記憶,以及一個類似先前例子的數據集來實現長期記憶。
這些新增組件顯著提升了代理在長對話中維持上下文的能力。對模型進行微調可以實現最佳性能,即便使用的是較小的模型。RAISE在效率和輸出質量上均超越了ReAct。
盡管RAISE在某些方面顯著優于現有方法,但也存在一些問題:
Reflexion方法是指通過語言反饋實現自我反思。通過利用成功狀態、當前路徑和持久記憶等評價指標,利用大語言模型的評估器為Agent提供針對性反饋。這種方法不僅提升了任務的成功率,而且相較于思維鏈(Chain-of-Thought)和ReAct方法,減少了幻覺現象。盡管如此,Reflexion模式的作者也指出了其存在的一些限制:
AutoGPT + P也是一種解決大語言模型在Agent應用推理限制的方法。這種方法使得Agent能夠尋找環境中缺失的物品,提出替代方案,或向用戶尋求幫助以達成目標。AutoGPT+P的操作始于利用場景圖像來識別物體。隨后,語言模型依據這些信息從四種工具中選擇其一:計劃工具、部分計劃工具、候選計劃工具和探索工具。這些工具使機器人不僅能生成完成目標的完整計劃,還能探索環境、做出假設并制定部分計劃。然而,語言模型并非完全獨立生成計劃。它負責生成目標和步驟,與一個執行計劃的經典規劃器協同,該規劃器使用規劃領域定義語言(PDDL)。AutoGPT + P通過將大語言模型Agent應用的規劃能力與傳統規劃器相結合,在機器人規劃上顯著優于其他純粹基于語言模型的方法。盡管AutoGPT+P是首創,但它也有不足之處:
多agent框架里,作者推薦DyLAN、AgentVerse和MetaGPT。介紹了如何實現代理間交流、協同執行計劃來實現任務目標。
多Agent框架大多數采用分階段工作的方式:規劃、執行、評估等。通過將代理的角色和技能與當前任務精準匹配,團隊能夠以更高的準確度達成目標,并縮短達成目標的時間。有效的多代理架構的顯著特點包括:團隊中有明確的領導力,團隊構建的動態性,以及團隊成員間有效的信息共享,確保關鍵信息不會在無關對話中丟失。
Emmm….. 這個框架就叫這個名字 Embodied LLM Agents Learn to Cooperate in Organized Teams。這個框架是突出了領隊Agent對整個Agent團隊效能提升的作用,不僅通過領隊形成了垂直的指揮鏈,還允許代理之間進行水平間交流。
有明確領導的團隊比無領導的團隊完成任務的速度提高了將近10%。
在沒有明確領導的團隊中,代理大部分時間都在相互下達指令(約占溝通的50%),其余時間則用于信息共享或尋求指導。而在有明確領導的團隊中,領導的溝通有60%是在提供方向,這促使其他成員更專注于信息交流和請求。
這個框架的作者發現:當領隊是人類時,團隊的效能最佳。文章還強調了在計劃生成、表現評估、反饋提供和團隊重組中采用“批評-反思”步驟的重要性。研究結果表明,具有動態輪換領導結構的團隊在任務完成時間和平均溝通成本上都取得了最佳表現。總而言之,領導力和動態團隊結構顯著提升了團隊在推理、規劃和任務執行上的整體能力。
DyLAN(The Dynamic LLM-Agent Network)框架構建能夠處理復雜任務如推理和代碼生成的動態代理結構。DyLAN通過評估每位Agent在最近一輪工作中的貢獻度,并僅將貢獻突出的Agent送入下一輪執行,展現了其水平結構的特點,即代理間可以自由交換信息,且團隊無固定領導者。DyLAN在多項衡量算術和推理能力的基準測試中表現更佳,這突顯了動態團隊的重要性,并說明通過不斷評估和排序代理的貢獻,能夠組建出更適合完成特定任務的代理團隊。
多Agent架構AgentVerse 通過明確的團隊規劃階段來增強AI Agent的推理和問題解決能力。AgentVerse將任務執行過程分為四個主要階段:招募、協作決策、獨立行動執行和評估,直至達到最終目標。通過為每個階段設定清晰的框架,AgentVerse引導代理團隊更高效地進行邏輯推理、討論和行動。
以招募階段為例,它允許根據目標進展情況增減Agent,確保在問題解決的每個階段都有恰當的Agent參與。研究者發現,在需要協作的任務中,如咨詢工作,水平團隊通常更為合適;而在需要明確分工以調用工具的任務中,垂直團隊則更為適宜。
多Agent架構允許Agent間進行信息交流和共享。然而,這種對話機制有時會導致Agent間的冗余交流,不利于推動團隊目標的實現。MetaGPT通過引導Agent產出結構化的結果——如文檔和圖表——而非無序的聊天信息。此外,MetaGPT引入了“發布-訂閱”的信息共享機制,使得所有代理都能在統一平臺上發布信息,同時僅訂閱與其個人目標和任務相關的信息。這種方式不僅優化了整體目標的執行流程,也減少了代理間的無效溝通。在HumanEval和MBPP等基準測試中,與單代理架構相比,MetaGPT的多代理架構顯著展現出了更佳的性能表現。
綜合以上各種Agent框架,作者認為單Agent模式更適用于工具列表有限且流程明確定義的任務。
單Agent架構的實現相對簡單,因為只需定義一個Agent及其工具集。此外,單Agent架構不受其他Agent不良反饋或團隊成員無關對話的干擾。但若其推理和完善功能不夠完善,可能會陷入執行循環,難以向目標邁進。
多Agent架構則適合于那些能從多個角色反饋中獲益的任務,如文檔生成,其中一個Agent可以對另一個Agent編寫的文檔部分提供明確反饋。當需要在不同任務或工作流程間進行并行處理時,多Agent系統同樣適用。在沒有提供示例的情況下,多代理模式比單代理表現更佳。多代理系統天生更為復雜,通常需要有效的對話管理和明確的領導指導。
盡管單Agent和多Agent模式在能力范圍上有所差異,但研究也發現,“當Agent得到的提示足夠有力時,多Agent討論并不一定能提升推理能力”。這暗示了在決定是采用單Agent還是多Agent時,應基于用例所處的環境,而非僅僅基于所需的推理能力。
單個Agent能夠同時啟動多個異步調用,但其工作模式并不內在地支持跨不同執行線程的責任分配。換言之,盡管任務以異步方式處理,它們并不構成真正意義上的并行處理,因為這些任務并非由獨立的決策主體來獨立管理。相對地,單個Agent必須依次規劃和執行任務,需等待一組異步操作結束后,才能進行評估并轉向下一步驟。而在多Agent架構中,每位Agent都能獨立運作,從而允許更為動態的職責分配。這種架構不僅促進了跨不同領域或目標的任務同步執行,還使得各個Agent能夠不受其他代理所處理任務狀態的制約,自主決定下一步行動,展現了一種更為靈活和并行的任務管理方式。
人類在解決復雜問題的時候,極少的能一次性提出正確且穩定的解決方案。一般來說,會先提出一個可能的解決方案,然后對其進行批判和優化,或向他人咨詢,以獲得不同視角的反饋。而這種反復的反饋和改進過程對于協助Agent解決復雜問題也極為關鍵。
這在一定程度上是因為語言模型往往在回答初期便急于給出答案,這可能導致解決方案與目標狀態越來越偏離,形成所謂的“雪球效應”。引入反饋機制后,代理更有可能及時糾正方向,準確達成目標。
此外,納入人類的監管可以提升代理的即時響應質量,使其更符合人類的預期,避免代理走上低效或錯誤的解決路徑。目前,代理體系中融入人工驗證和反饋,能夠帶來更可靠和值得信賴的結果。
語言模型還可能表現出迎合用戶立場的傾向,即便這意味著無法提供一個中立或平衡的觀點。特別是AgentVerse論文中提到,Agent容易受到其他Agent反饋的影響,哪怕這些反饋本身并不合理。這可能導致Agent團隊制定出偏離目標的錯誤計劃。通過強化提示可以緩解這一問題,但開發Agent應用的開發者在設計用戶或代理反饋系統時,應充分意識到其中的風險。
單Agent模式由于無需管理團隊動態,更能夠集中精力于手頭任務。多Agent系統中的非必要對話可能會影響Agent的有效推理和工具使用,從而降低團隊的整體效率。這種情況在水平架構中尤為明顯,因為代理們通常使用共享群組聊天,能夠看到對話中的每條消息。通過消息訂閱或過濾機制,可以確保代理只接收與其任務相關的信息,從而提高性能。在垂直架構中,任務根據代理的能力被清晰分配,有助于減少團隊分心。但如果領導Agent未能及時向支持代理傳達關鍵信息,可能會導致團隊混亂或結果失真。為解決這一問題,可以在系統提示中明確包含訪問權限信息,以確保代理間的交互適宜于上下文環境。
在單Agent架構中,明確的角色定義保障代理集中精力完成既定任務,正確使用工具,并減少對不必要功能的幻想。在多Agent架構中,角色界定同樣確保每位Agent都清楚自己的職責所在,不會承擔超出自身能力范圍或任務描述之外的工作。此外,確立一個明確的團隊領導,能夠通過簡化任務指派過程,提升多代理團隊的整體表現。同時,為每個Agent設定清晰的系統提示,可以避免Agent間進行無意義的交流,從而減少冗余對話。動態團隊策略,即根據實際需要將Agent添加到系統中或從系統中移除,也被證實能夠提升效率。這確保了參與規劃或執行任務的所有Agent都適合當前工作的需求。
無論是單Agent還是多Agent模式,在需要推理和工具應用的復雜任務上都展現了強大的性能。
當Agent被賦予明確的角色定位、工具集、接受人工反饋以及能夠逐步迭代以達成目標的能力時,單Agent模式能夠發揮出色的效果。
在構建需要協同合作以實現復雜目標的Agent團隊時,配備以下關鍵要素之一的Agent將大有益:具備清晰領導力、明確的規劃階段以及在新信息學習后能夠對計劃進行完善的機會、智能的消息篩選機制,以及能夠根據當前子任務需求配備特定技能的動態團隊。如果Agent架構至少采用了這些方法中的一種,其性能很可能超越單一代理架構或缺乏這些策略的多Agent架構。
大型語言模型(LLM)通常通過一系列標準化基準測試來衡量其綜合理解和推理能力,然而,評估Agent應用的基準測試卻千差萬別。
許多研究小組在推出自己的代理應用實現時,也會同時引入他們獨有的Agent基準測試,這使得在統一的基準上比較不同代理實現的效果變得困難。此外,許多新制定的、特定于代理的基準測試包含了手工打造的、極為復雜的評估集,這些評估集的結果需要人工進行評分。這種做法雖然能夠提供對方法效能的高質量評估,但相比大規模數據集,其魯棒性不足,并且由于開發方法的研究者同時負責編寫和評分,因此評估過程可能引入偏見。此外,由于模型、環境或問題狀態的多樣性,代理在連續迭代中生成一致答案也面臨挑戰。這種額外的隨機性對于規模較小、結構復雜的評估集來說,尤其成為一個更加突出的問題。
部分研究者采用標準的大語言模型(LLM)基準測試來評估他們的代理應用實現。但最新研究表明,模型訓練所用數據存在顯著污染,這一點從基準問題一經修改,模型表現便急劇下降的觀察中得到了證實,讓人對語言模型及其驅動的代理應用的基準分數的真實性產生疑問。進一步地,研究者們發現,隨著大型語言模型(LLM)能力的快速進步,現有數據集往往無法跟上模型日新月異的能力,因為現有基準測試的難度水平通常是靜態且固定的。為應對這一挑戰,已有研究致力于開發能夠抵御簡單記憶的動態基準測試。此外,研究者們也在探索根據用戶特定環境或應用場景生成完全合成的基準測試。盡管這些方法有助于減少數據污染,但減少人為干預的程度也可能帶來準確性和問題解決能力的額外風險。
目前,眾多語言模型基準測試旨在單輪迭代中求解,且不涉及工具調用,如MMLU或GSM8K等。這類測試對于評估基礎語言模型的性能至關重要,但它們并不足以全面代表代理應用的能力,因為它們未能考量Agent系統進行多步推理或獲取外部信息的能力。StrategyQA通過多步推理測試模型,改進了這一點,但其答案僅限于是或否。隨著行業不斷向Agent驅動的用例轉型,未來將需要更多元的評價標準,以更準確地衡量Agent在處理超越其訓練數據范圍任務時的表現和泛化能力。特定于Agent的基準測試,例如AgentBench,通過在多樣的環境如網頁瀏覽、命令行界面和視頻游戲中評估基于語言模型的Agent,提供了更為全面的代理性能評估。這有助于更好地判斷Agent通過推理、規劃和工具調用來適應新環境的能力。AgentBench和SmartPlay等基準測試引入了客觀的評估指標,用以衡量實現的成功率、輸出與人類響應的相似度及整體效率。盡管這些客觀指標對于把握實現的可靠性和準確性至關重要,但同樣不可忽視更為細致或主觀的性能評價標準。工具使用效率、規劃的可靠性和魯棒性等指標的重要性不亞于成功率,但它們的衡量卻更為困難。許多這類指標需要人類專家進行評估,與使用大型語言模型作為評判的評估相比,這種方法的成本更高,也更耗時。
當前的多數基準測試集中考察代理系統在邏輯謎題或視頻游戲上的推理能力。這些任務的表現雖有助于評估代理系統的邏輯推理能力,但它們在現實世界中的表現如何,目前尚無定論。特別是,現實世界的數據往往更為復雜多變,覆蓋的領域也遠超過一般基準測試所涉及的范圍。
語言模型在評估過程中以及社會或公平性方面存在偏見已為人所熟知。更具體地,代理系統被特別指出“較不穩健,更容易表現出有害行為,并且相比大型語言模型(LLM),能夠生成更加隱蔽的內容,這突顯了顯著的安全挑戰”。還有研究發現,“盡管被引導從特定的政治視角進行辯論,LLM代理仍然傾向于遵循模型內部的社會偏見”[24],這種傾向可能導致基于代理的系統中出現錯誤的推理。
本文章轉載微信公眾號@大語言模型論文跟蹤