一文讀懂Multi-Agent System的概念、場(chǎng)景和實(shí)現(xiàn)框架
在人工智能的快速發(fā)展中,多智能體系統(tǒng)(MAS)正逐漸成為解決復(fù)雜任務(wù)的關(guān)鍵技術(shù)。本文將深入探討Multi-Agent System的概念、應(yīng)用場(chǎng)景以及實(shí)現(xiàn)框架,揭示如何通過(guò)多個(gè)智能體的協(xié)作與協(xié)調(diào)來(lái)提升系統(tǒng)的整體性能和魯棒性。
在《AI大模型實(shí)戰(zhàn)篇 – Agent設(shè)計(jì)模式系列》中,風(fēng)叔詳細(xì)介紹了AI Agent的概念和八種非常有效的設(shè)計(jì)模式。
但是,之前介紹的Agent都是單Agent系統(tǒng),只能執(zhí)行相對(duì)比較簡(jiǎn)單的任務(wù),當(dāng)面對(duì)復(fù)雜任務(wù)時(shí),單Agent系統(tǒng)的穩(wěn)定性會(huì)存在問(wèn)題。這點(diǎn)和人類似,當(dāng)一個(gè)人的大腦裝載了太多信息之后,反而會(huì)影響其工作質(zhì)量。正所謂“術(shù)業(yè)有專攻”,一個(gè)人的力量,永遠(yuǎn)抵不過(guò)一個(gè)專業(yè)的團(tuán)隊(duì)。
這就是Multi-agent system,即多智能體系統(tǒng)設(shè)計(jì)的初衷。
一、Multi-Agent的概念和應(yīng)用場(chǎng)景
Multi-Agent系統(tǒng),簡(jiǎn)稱MAS,是由多個(gè)智能體組成的集合。這些Agent可以是不同的軟件程序、機(jī)器人、傳感器等,它們各自具備一定的智能和自主性,并處理各自擅長(zhǎng)的領(lǐng)域和事情。MAS的核心思想是通過(guò)多個(gè)Agent的協(xié)作與協(xié)調(diào),共同完成一個(gè)復(fù)雜任務(wù),從而實(shí)現(xiàn)單個(gè)Agent無(wú)法完成的復(fù)雜目標(biāo)。
相比單Agent系統(tǒng),Multi-Agent系統(tǒng)具備以下優(yōu)勢(shì):
- 分布式處理:MAS支持分布式應(yīng)用,可以將大型復(fù)雜系統(tǒng)分解為多個(gè)小型、易于管理的子系統(tǒng)。這使得MAS具有良好的模塊性、易于擴(kuò)展性和設(shè)計(jì)靈活性,降低了系統(tǒng)的總成本和維護(hù)難度。
- 協(xié)同工作:MAS中的Agent可以相互通信、協(xié)商和協(xié)作,共同完成一個(gè)任務(wù)。通過(guò)這種協(xié)同工作方式,MAS能夠處理單個(gè)Agent無(wú)法解決的問(wèn)題,從而提高系統(tǒng)的整體性能和魯棒性。
- 自適應(yīng)性:MAS中的Agent可以根據(jù)環(huán)境變化自主調(diào)整行為和策略,這種自適應(yīng)性使得MAS具有優(yōu)秀的穩(wěn)定性和靈活性,能夠應(yīng)對(duì)各種復(fù)雜場(chǎng)景。
Multi-Agent System 主要的應(yīng)用場(chǎng)景包括:
- 軟件編寫(xiě):在軟件項(xiàng)目中,由多個(gè)Agents分別扮演項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理、UI設(shè)計(jì)師、開(kāi)發(fā)人員、測(cè)試人員等等,從而將一個(gè)復(fù)雜的軟件項(xiàng)目拆解成多個(gè)子任務(wù),更高效地完成軟件的編寫(xiě)。
- 智能營(yíng)銷:在消費(fèi)者營(yíng)銷場(chǎng)景中,可以構(gòu)建多個(gè)Agents,比如營(yíng)銷計(jì)劃Agent、內(nèi)容生產(chǎn)Agent、人群管理Agent、營(yíng)銷觸達(dá)Agent和效果分析Agent。
- 智慧供應(yīng)鏈:在供應(yīng)鏈場(chǎng)景中,通過(guò)Multi-Agent提升上下游協(xié)同效率,包括銷售計(jì)劃Agent、采購(gòu)計(jì)劃Agent、倉(cāng)儲(chǔ)計(jì)劃Agent、采購(gòu)訂單Agent等等,從銷量預(yù)測(cè)、安全庫(kù)存、供應(yīng)鏈響應(yīng)等環(huán)節(jié),構(gòu)筑供應(yīng)鏈的多道防線。
- 智能客服:在智能客服領(lǐng)域,針對(duì)不同的產(chǎn)品和服務(wù)領(lǐng)域,構(gòu)建不同的專屬Agent,比如處理產(chǎn)品售后投訴的Agent、解答用戶產(chǎn)品疑問(wèn)的Agent、處理營(yíng)銷活動(dòng)咨詢的Agent、追蹤物流進(jìn)度的Agent等。同時(shí)在最上層構(gòu)建一個(gè)Top Agent,用Top Agent統(tǒng)一對(duì)客,再根據(jù)消費(fèi)者的問(wèn)題自動(dòng)路由到最匹配的專屬Agent。
- 智能電網(wǎng):在智能電網(wǎng)領(lǐng)域,MAS可以實(shí)現(xiàn)多個(gè)傳感器、控制器和執(zhí)行器之間的協(xié)同工作,實(shí)現(xiàn)對(duì)電網(wǎng)的實(shí)時(shí)監(jiān)控、預(yù)測(cè)和優(yōu)化調(diào)度,提高電網(wǎng)的穩(wěn)定性和可靠性。
類似的場(chǎng)景還能列出很多,風(fēng)叔就不一一贅述了,大家也可以結(jié)合自己的行業(yè)經(jīng)驗(yàn),仔細(xì)思考是否有適合MAS的場(chǎng)景。接下來(lái),風(fēng)叔詳細(xì)介紹一下三種比較熱門(mén)的多智能體系統(tǒng)的實(shí)現(xiàn)框架。
二、MetaGPT – SOP驅(qū)動(dòng)Agent的代表
SOP驅(qū)動(dòng)Agent是一種非常易于理解的多智能體設(shè)計(jì)模式,SOP即代表了在現(xiàn)實(shí)世界中標(biāo)準(zhǔn)的業(yè)務(wù)流程和分工,流程中的各個(gè)環(huán)節(jié)都有相應(yīng)的角色進(jìn)行處理。MetaGPT就是將這一理念搬到了AI Agent領(lǐng)域,由AI Agent來(lái)扮演業(yè)務(wù)流中的各個(gè)角色。
比如在軟件開(kāi)發(fā)過(guò)程中,設(shè)計(jì)到的角色包括產(chǎn)品經(jīng)理、架構(gòu)師、項(xiàng)目經(jīng)理、工程師和質(zhì)量保證工程師等,每個(gè)角色都有其獨(dú)特的職責(zé)和專業(yè)知識(shí)。這些Agent遵循SOP來(lái)分解任務(wù),確保每個(gè)步驟都能高效且準(zhǔn)確地完成,產(chǎn)品經(jīng)理負(fù)責(zé)分析需求并創(chuàng)建產(chǎn)品需求文檔,架構(gòu)師負(fù)責(zé)將需求轉(zhuǎn)化為系統(tǒng)設(shè)計(jì),項(xiàng)目經(jīng)理負(fù)責(zé)任務(wù)分配,工程師負(fù)責(zé)編寫(xiě)代碼,而質(zhì)量保證工程師則負(fù)責(zé)測(cè)試和確保代碼質(zhì)量。
MetaGPT具體的工作原理包括以下六個(gè)環(huán)節(jié):
- 角色定義與分工:MetaGPT首先定義了一系列Agent角色,每個(gè)角色都有特定的職責(zé)和任務(wù)。這些角色模擬了真實(shí)世界中的工作流程,使得每個(gè)Agent都能專注于其擅長(zhǎng)的領(lǐng)域。
- 標(biāo)準(zhǔn)化操作程序(SOPs):MetaGPT將SOPs編碼成提示序列,用于指導(dǎo)Agent如何執(zhí)行任務(wù)。SOP確保了任務(wù)執(zhí)行的一致性和質(zhì)量,類似于人類團(tuán)隊(duì)中的工作指南。
- 結(jié)構(gòu)化通信:為了提高通信效率,MetaGPT采用了結(jié)構(gòu)化的通信方式。Agent通過(guò)共享消息池發(fā)布和訂閱信息,這樣每個(gè)Agent都能獲取到完成任務(wù)所需的必要信息。
- 可執(zhí)行反饋機(jī)制:在代碼生成過(guò)程中,MetaGPT引入了可執(zhí)行反饋機(jī)制。這意味著Agent在編寫(xiě)代碼后,會(huì)執(zhí)行代碼并檢查其正確性。如果發(fā)現(xiàn)錯(cuò)誤,Agent會(huì)根據(jù)反饋進(jìn)行調(diào)試,然后再次執(zhí)行,直到代碼滿足要求。這個(gè)過(guò)程類似于人類開(kāi)發(fā)者在開(kāi)發(fā)過(guò)程中的迭代過(guò)程。
- 任務(wù)分解與協(xié)作:MetaGPT將復(fù)雜任務(wù)分解為多個(gè)子任務(wù),每個(gè)子任務(wù)由一個(gè)或多個(gè)Agent負(fù)責(zé),這種分解策略使得復(fù)雜項(xiàng)目可以被有效地管理和執(zhí)行。同時(shí),Agent之間的協(xié)作是通過(guò)角色間的信息交換和任務(wù)依賴來(lái)實(shí)現(xiàn)的,確保了整個(gè)項(xiàng)目按計(jì)劃推進(jìn)。
- 持續(xù)學(xué)習(xí)與優(yōu)化:MetaGPT支持Agent從過(guò)去的經(jīng)驗(yàn)中學(xué)習(xí),通過(guò)自我修正和迭代來(lái)優(yōu)化其行為,這種自我改進(jìn)機(jī)制可以讓系統(tǒng)隨著時(shí)間推移越來(lái)越智能。
三、AutoGen – LLM驅(qū)動(dòng)Agent的代表
Autogen 是一個(gè)由 Microsoft 推出的框架,支持創(chuàng)建和管理多個(gè)自主Agent,協(xié)同完成復(fù)雜的任務(wù)。這個(gè)框架的靈活性極高,我們可以根據(jù)自己的需求定義不同的Agent和對(duì)應(yīng)的角色,特別是在編程、規(guī)劃和創(chuàng)意寫(xiě)作等領(lǐng)域。
Autogen框架分為非常簡(jiǎn)單的三步,開(kāi)發(fā)人員要做的就是明確任務(wù),創(chuàng)建Agent,把這些Agent融合到一起。
第一步,創(chuàng)建Agent:
- 支持創(chuàng)建和管理不同類型的 Agent,包括特定任務(wù)的專家、通用助手、策略制定者等。
- 能夠?yàn)槊總€(gè) Agent 指定不同的角色、任務(wù)和權(quán)限,以確保分工明確。
- 提供 Agent 定制選項(xiàng),以滿足不同任務(wù)的特定需求。
第二步,提供對(duì)話環(huán)境:
- 提供一個(gè)虛擬的對(duì)話空間,讓 Agent 之間可以相互溝通和協(xié)作。
- 支持多方對(duì)話和協(xié)作,包括文本、音頻或視頻形式。
- 自動(dòng)記錄對(duì)話內(nèi)容和決策過(guò)程,以便回顧和審查。
第三步,對(duì)話內(nèi)容管理:
- 引導(dǎo) Agent 的討論方向,以確保討論圍繞目標(biāo)進(jìn)行。
- 提供實(shí)時(shí)監(jiān)控工具,幫助發(fā)現(xiàn)潛在問(wèn)題,并及時(shí)給予糾正和調(diào)整。
- 設(shè)置規(guī)則和約束條件,以保持對(duì)話和協(xié)作的質(zhì)量和效率。
- 提供對(duì)對(duì)話內(nèi)容的搜索和過(guò)濾功能,以便快速查找相關(guān)信息。
AutoGen設(shè)計(jì)了一個(gè)通用ConversableAgent類,它們能夠通過(guò)交換消息來(lái)相互對(duì)話以共同完成任務(wù)。Agent可以與其他Agent進(jìn)行通信并執(zhí)行操作,不同的Agent在收到消息后執(zhí)行的操作可能有所不同。
AutoGen中包含兩種Agent和一種Manager,通過(guò)相互協(xié)作,一起處理問(wèn)題。AssistantAgent的主要作用是作為中樞大腦提供理解、分析;UserProxyAgent主要處理由中樞大腦給出的決策。GroupChatManager是能夠讓多個(gè)Agent進(jìn)行分組的管理者,類似于把團(tuán)隊(duì)拆分為多個(gè)Team進(jìn)行管理。
四、XAgent – Agent 并行計(jì)算, LLM 匯總
XAgent 是一個(gè)開(kāi)源、基于大型語(yǔ)言模型(LLM)的通用自主Agent,可以自動(dòng)解決各種復(fù)雜任務(wù)。該框架采用雙環(huán)機(jī)制,外循環(huán)用于高層任務(wù)管理,起到規(guī)劃(Planning)的作用,內(nèi)循環(huán)用于底層任務(wù)執(zhí)行,起到執(zhí)行(Execution)的作用。
外循環(huán)
外循環(huán)作為高層規(guī)劃器和整個(gè)問(wèn)題解決序列的主要協(xié)調(diào)者,充當(dāng)整個(gè)問(wèn)題解決序列的管理,它的職責(zé)可以分解如下。
- 初始計(jì)劃生成:PlanAgent首先生成一個(gè)初始計(jì)劃,為任務(wù)執(zhí)行制定基本策略。該部分會(huì)將給定的復(fù)雜任務(wù)分解為更小、更易管理的子任務(wù),其表現(xiàn)為一個(gè)任務(wù)隊(duì)列,可以直接地執(zhí)行。
- 迭代式計(jì)劃優(yōu)化:在初始規(guī)劃之后,PlanAgent通過(guò)從任務(wù)隊(duì)列中釋放出第一個(gè)任務(wù),然后將該子任務(wù)傳遞給內(nèi)循環(huán),PlanAgent持續(xù)監(jiān)視任務(wù)的進(jìn)展和狀態(tài)。在每個(gè)子任務(wù)執(zhí)行后,內(nèi)循環(huán)會(huì)返回來(lái)自ToolAgent的反饋。根據(jù)反饋,PlanAgent觸發(fā)適當(dāng)?shù)奶幚頇C(jī)制,如優(yōu)化計(jì)劃或繼續(xù)執(zhí)行后續(xù)子任務(wù)。直到隊(duì)列中沒(méi)有剩余的子任務(wù)為止,外循環(huán)結(jié)束。
內(nèi)循環(huán)
內(nèi)循環(huán)負(fù)責(zé)執(zhí)行外循環(huán)分配的各個(gè)子任務(wù)。基于外循環(huán)給定的子任務(wù),內(nèi)循環(huán)會(huì)指定一個(gè)合適的ToolAgent,確保任務(wù)達(dá)到預(yù)期的結(jié)果。內(nèi)循環(huán)的主要職責(zé)包括:
- Agent調(diào)度和工具獲取:根據(jù)子任務(wù)的性質(zhì),派遣合適的ToolAgent,該Agent具備完成任務(wù)所需的能力。
- 工具執(zhí)行:ToolAgent首先從外部系統(tǒng)中獲取工具以幫助完成任務(wù)。然后,Agent使用ReACT來(lái)解決子任務(wù),尋找最佳的一系列工具調(diào)用來(lái)完成子任務(wù)。
- 反饋和反思:在一系列動(dòng)作之后,ToolAgent可以發(fā)出一個(gè)名為“subtask_submit”的特定動(dòng)作,以完成當(dāng)前子任務(wù)的處理,并將反饋和反思傳遞給PlanAgent。這個(gè)反饋可以指示子任務(wù)是否成功完成,或者強(qiáng)調(diào)潛在的改進(jìn)。
PlanAgent
PlanAgent賦予Agent不斷制定和修訂計(jì)劃的能力,以適應(yīng)多變的環(huán)境和突發(fā)需求。這些能力對(duì)于確保靈活性、彈性和效率以應(yīng)對(duì)未預(yù)見(jiàn)的挑戰(zhàn)至關(guān)重要。PlanAgent專用于外循環(huán),其通過(guò)生成初始計(jì)劃和不斷修訂計(jì)劃來(lái)實(shí)現(xiàn)這一目標(biāo)。PlanAgent包含四個(gè)函數(shù)來(lái)優(yōu)化計(jì)劃:
- 子任務(wù)拆分:使系統(tǒng)能夠?qū)⑻囟ǖ淖尤蝿?wù)分解為粒度更細(xì)、更易管理的單元。只有當(dāng)前正在執(zhí)行或尚未啟動(dòng)的子任務(wù)才有資格進(jìn)行此操作。
- 子任務(wù)刪除:刪除尚未開(kāi)始的子任務(wù)。已經(jīng)在進(jìn)行中或已完成的子任務(wù)不具備刪除資格。這確保了一定的靈活性,可以修剪多余或不相關(guān)的任務(wù),以優(yōu)化整體執(zhí)行。
- 子任務(wù)修改:修改子任務(wù)的內(nèi)容。要修改的子任務(wù)不能是已經(jīng)開(kāi)始或已經(jīng)完成,以保持整體計(jì)劃的完整性。
- 子任務(wù)添加:在特定子任務(wù)之后插入新的子任務(wù)。只能在當(dāng)前處理的子任務(wù)或其后繼任務(wù)之后添加子任務(wù)。這確保了新任務(wù)按順序編排,簡(jiǎn)化了執(zhí)行流程,并保持了一致性。
ToolAgent
ToolAgent使用ReACT尋找最佳的一系列工具來(lái)完成子任務(wù)。在每一輪中,Agent根據(jù)先前的交互生成一個(gè)動(dòng)作,對(duì)于每個(gè)動(dòng)作,在同一個(gè)函數(shù)調(diào)用中將智能體的推理和行動(dòng)協(xié)同起來(lái),即推理跟蹤和將要執(zhí)行的動(dòng)作都被視為特定函數(shù)的參數(shù)。具體而言,每個(gè)函數(shù)調(diào)用具有以下組件:
- 思考:Agent關(guān)于任務(wù)的洞察力的概括。
- 推理:跟蹤Agent通過(guò)的邏輯軌跡,以得出其思考。
- 批評(píng):捕捉Agent對(duì)其行動(dòng)的自我反思,作為一個(gè)反饋回路。它強(qiáng)調(diào)潛在的疏忽或改進(jìn)的領(lǐng)域。
- 指令:根據(jù)推理決定Agent下一步要采取的動(dòng)作。
- 參數(shù):列舉要執(zhí)行的動(dòng)作的具體參數(shù)或細(xì)節(jié)。
五、總結(jié)
在這篇文章中,風(fēng)叔介紹了多智能體系統(tǒng)的意義和價(jià)值,并詳細(xì)介紹了MetaGPT、AutoGen、XAgent這三種著名的多智能體設(shè)計(jì)框架。
從協(xié)作設(shè)計(jì)實(shí)現(xiàn)上來(lái)說(shuō),風(fēng)叔更傾向選擇 LLM驅(qū)動(dòng)的Multi-Agent設(shè)計(jì)方向,減少工程化的侵入。因?yàn)長(zhǎng)LM能力在成長(zhǎng),隨著時(shí)間的推移,現(xiàn)在的瓶頸可能會(huì)被突破,而 SOP驅(qū)動(dòng)是工程化的,無(wú)法隨著時(shí)間自我迭代。
本文由人人都是產(chǎn)品經(jīng)理作者【風(fēng)叔】,微信公眾號(hào):【風(fēng)叔云】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!