一文讀懂Multi-Agent System的概念、場景和實現(xiàn)框架

0 評論 2745 瀏覽 5 收藏 17 分鐘

在人工智能的快速發(fā)展中,多智能體系統(tǒng)(MAS)正逐漸成為解決復(fù)雜任務(wù)的關(guān)鍵技術(shù)。本文將深入探討Multi-Agent System的概念、應(yīng)用場景以及實現(xiàn)框架,揭示如何通過多個智能體的協(xié)作與協(xié)調(diào)來提升系統(tǒng)的整體性能和魯棒性。

在《AI大模型實戰(zhàn)篇 – Agent設(shè)計模式系列》中,風(fēng)叔詳細介紹了AI Agent的概念和八種非常有效的設(shè)計模式。

但是,之前介紹的Agent都是單Agent系統(tǒng),只能執(zhí)行相對比較簡單的任務(wù),當(dāng)面對復(fù)雜任務(wù)時,單Agent系統(tǒng)的穩(wěn)定性會存在問題。這點和人類似,當(dāng)一個人的大腦裝載了太多信息之后,反而會影響其工作質(zhì)量。正所謂“術(shù)業(yè)有專攻”,一個人的力量,永遠抵不過一個專業(yè)的團隊。

這就是Multi-agent system,即多智能體系統(tǒng)設(shè)計的初衷。

一、Multi-Agent的概念和應(yīng)用場景

Multi-Agent系統(tǒng),簡稱MAS,是由多個智能體組成的集合。這些Agent可以是不同的軟件程序、機器人、傳感器等,它們各自具備一定的智能和自主性,并處理各自擅長的領(lǐng)域和事情。MAS的核心思想是通過多個Agent的協(xié)作與協(xié)調(diào),共同完成一個復(fù)雜任務(wù),從而實現(xiàn)單個Agent無法完成的復(fù)雜目標(biāo)。

相比單Agent系統(tǒng),Multi-Agent系統(tǒng)具備以下優(yōu)勢:

  • 分布式處理:MAS支持分布式應(yīng)用,可以將大型復(fù)雜系統(tǒng)分解為多個小型、易于管理的子系統(tǒng)。這使得MAS具有良好的模塊性、易于擴展性和設(shè)計靈活性,降低了系統(tǒng)的總成本和維護難度。
  • 協(xié)同工作:MAS中的Agent可以相互通信、協(xié)商和協(xié)作,共同完成一個任務(wù)。通過這種協(xié)同工作方式,MAS能夠處理單個Agent無法解決的問題,從而提高系統(tǒng)的整體性能和魯棒性。
  • 自適應(yīng)性:MAS中的Agent可以根據(jù)環(huán)境變化自主調(diào)整行為和策略,這種自適應(yīng)性使得MAS具有優(yōu)秀的穩(wěn)定性和靈活性,能夠應(yīng)對各種復(fù)雜場景。

Multi-Agent System 主要的應(yīng)用場景包括:

  • 軟件編寫:在軟件項目中,由多個Agents分別扮演項目經(jīng)理、產(chǎn)品經(jīng)理、UI設(shè)計師、開發(fā)人員、測試人員等等,從而將一個復(fù)雜的軟件項目拆解成多個子任務(wù),更高效地完成軟件的編寫。
  • 智能營銷:在消費者營銷場景中,可以構(gòu)建多個Agents,比如營銷計劃Agent、內(nèi)容生產(chǎn)Agent、人群管理Agent、營銷觸達Agent和效果分析Agent。
  • 智慧供應(yīng)鏈:在供應(yīng)鏈場景中,通過Multi-Agent提升上下游協(xié)同效率,包括銷售計劃Agent、采購計劃Agent、倉儲計劃Agent、采購訂單Agent等等,從銷量預(yù)測、安全庫存、供應(yīng)鏈響應(yīng)等環(huán)節(jié),構(gòu)筑供應(yīng)鏈的多道防線。
  • 智能客服:在智能客服領(lǐng)域,針對不同的產(chǎn)品和服務(wù)領(lǐng)域,構(gòu)建不同的專屬Agent,比如處理產(chǎn)品售后投訴的Agent、解答用戶產(chǎn)品疑問的Agent、處理營銷活動咨詢的Agent、追蹤物流進度的Agent等。同時在最上層構(gòu)建一個Top Agent,用Top Agent統(tǒng)一對客,再根據(jù)消費者的問題自動路由到最匹配的專屬Agent。
  • 智能電網(wǎng):在智能電網(wǎng)領(lǐng)域,MAS可以實現(xiàn)多個傳感器、控制器和執(zhí)行器之間的協(xié)同工作,實現(xiàn)對電網(wǎng)的實時監(jiān)控、預(yù)測和優(yōu)化調(diào)度,提高電網(wǎng)的穩(wěn)定性和可靠性。

類似的場景還能列出很多,風(fēng)叔就不一一贅述了,大家也可以結(jié)合自己的行業(yè)經(jīng)驗,仔細思考是否有適合MAS的場景。接下來,風(fēng)叔詳細介紹一下三種比較熱門的多智能體系統(tǒng)的實現(xiàn)框架。

二、MetaGPT – SOP驅(qū)動Agent的代表

SOP驅(qū)動Agent是一種非常易于理解的多智能體設(shè)計模式,SOP即代表了在現(xiàn)實世界中標(biāo)準(zhǔn)的業(yè)務(wù)流程和分工,流程中的各個環(huán)節(jié)都有相應(yīng)的角色進行處理。MetaGPT就是將這一理念搬到了AI Agent領(lǐng)域,由AI Agent來扮演業(yè)務(wù)流中的各個角色。

比如在軟件開發(fā)過程中,設(shè)計到的角色包括產(chǎn)品經(jīng)理、架構(gòu)師、項目經(jīng)理、工程師和質(zhì)量保證工程師等,每個角色都有其獨特的職責(zé)和專業(yè)知識。這些Agent遵循SOP來分解任務(wù),確保每個步驟都能高效且準(zhǔn)確地完成,產(chǎn)品經(jīng)理負責(zé)分析需求并創(chuàng)建產(chǎn)品需求文檔,架構(gòu)師負責(zé)將需求轉(zhuǎn)化為系統(tǒng)設(shè)計,項目經(jīng)理負責(zé)任務(wù)分配,工程師負責(zé)編寫代碼,而質(zhì)量保證工程師則負責(zé)測試和確保代碼質(zhì)量。

MetaGPT具體的工作原理包括以下六個環(huán)節(jié):

  1. 角色定義與分工:MetaGPT首先定義了一系列Agent角色,每個角色都有特定的職責(zé)和任務(wù)。這些角色模擬了真實世界中的工作流程,使得每個Agent都能專注于其擅長的領(lǐng)域。
  2. 標(biāo)準(zhǔn)化操作程序(SOPs):MetaGPT將SOPs編碼成提示序列,用于指導(dǎo)Agent如何執(zhí)行任務(wù)。SOP確保了任務(wù)執(zhí)行的一致性和質(zhì)量,類似于人類團隊中的工作指南。
  3. 結(jié)構(gòu)化通信:為了提高通信效率,MetaGPT采用了結(jié)構(gòu)化的通信方式。Agent通過共享消息池發(fā)布和訂閱信息,這樣每個Agent都能獲取到完成任務(wù)所需的必要信息。
  4. 可執(zhí)行反饋機制:在代碼生成過程中,MetaGPT引入了可執(zhí)行反饋機制。這意味著Agent在編寫代碼后,會執(zhí)行代碼并檢查其正確性。如果發(fā)現(xiàn)錯誤,Agent會根據(jù)反饋進行調(diào)試,然后再次執(zhí)行,直到代碼滿足要求。這個過程類似于人類開發(fā)者在開發(fā)過程中的迭代過程。
  5. 任務(wù)分解與協(xié)作:MetaGPT將復(fù)雜任務(wù)分解為多個子任務(wù),每個子任務(wù)由一個或多個Agent負責(zé),這種分解策略使得復(fù)雜項目可以被有效地管理和執(zhí)行。同時,Agent之間的協(xié)作是通過角色間的信息交換和任務(wù)依賴來實現(xiàn)的,確保了整個項目按計劃推進。
  6. 持續(xù)學(xué)習(xí)與優(yōu)化:MetaGPT支持Agent從過去的經(jīng)驗中學(xué)習(xí),通過自我修正和迭代來優(yōu)化其行為,這種自我改進機制可以讓系統(tǒng)隨著時間推移越來越智能。

三、AutoGen – LLM驅(qū)動Agent的代表

Autogen 是一個由 Microsoft 推出的框架,支持創(chuàng)建和管理多個自主Agent,協(xié)同完成復(fù)雜的任務(wù)。這個框架的靈活性極高,我們可以根據(jù)自己的需求定義不同的Agent和對應(yīng)的角色,特別是在編程、規(guī)劃和創(chuàng)意寫作等領(lǐng)域。

Autogen框架分為非常簡單的三步,開發(fā)人員要做的就是明確任務(wù),創(chuàng)建Agent,把這些Agent融合到一起。

第一步,創(chuàng)建Agent:

  • 支持創(chuàng)建和管理不同類型的 Agent,包括特定任務(wù)的專家、通用助手、策略制定者等。
  • 能夠為每個 Agent 指定不同的角色、任務(wù)和權(quán)限,以確保分工明確。
  • 提供 Agent 定制選項,以滿足不同任務(wù)的特定需求。

第二步,提供對話環(huán)境:

  • 提供一個虛擬的對話空間,讓 Agent 之間可以相互溝通和協(xié)作。
  • 支持多方對話和協(xié)作,包括文本、音頻或視頻形式。
  • 自動記錄對話內(nèi)容和決策過程,以便回顧和審查。

第三步,對話內(nèi)容管理:

  • 引導(dǎo) Agent 的討論方向,以確保討論圍繞目標(biāo)進行。
  • 提供實時監(jiān)控工具,幫助發(fā)現(xiàn)潛在問題,并及時給予糾正和調(diào)整。
  • 設(shè)置規(guī)則和約束條件,以保持對話和協(xié)作的質(zhì)量和效率。
  • 提供對對話內(nèi)容的搜索和過濾功能,以便快速查找相關(guān)信息。

AutoGen設(shè)計了一個通用ConversableAgent類,它們能夠通過交換消息來相互對話以共同完成任務(wù)。Agent可以與其他Agent進行通信并執(zhí)行操作,不同的Agent在收到消息后執(zhí)行的操作可能有所不同。

AutoGen中包含兩種Agent和一種Manager,通過相互協(xié)作,一起處理問題。AssistantAgent的主要作用是作為中樞大腦提供理解、分析;UserProxyAgent主要處理由中樞大腦給出的決策。GroupChatManager是能夠讓多個Agent進行分組的管理者,類似于把團隊拆分為多個Team進行管理。

四、XAgent – Agent 并行計算, LLM 匯總

XAgent 是一個開源、基于大型語言模型(LLM)的通用自主Agent,可以自動解決各種復(fù)雜任務(wù)。該框架采用雙環(huán)機制,外循環(huán)用于高層任務(wù)管理,起到規(guī)劃(Planning)的作用,內(nèi)循環(huán)用于底層任務(wù)執(zhí)行,起到執(zhí)行(Execution)的作用。

外循環(huán)

外循環(huán)作為高層規(guī)劃器和整個問題解決序列的主要協(xié)調(diào)者,充當(dāng)整個問題解決序列的管理,它的職責(zé)可以分解如下。

  • 初始計劃生成:PlanAgent首先生成一個初始計劃,為任務(wù)執(zhí)行制定基本策略。該部分會將給定的復(fù)雜任務(wù)分解為更小、更易管理的子任務(wù),其表現(xiàn)為一個任務(wù)隊列,可以直接地執(zhí)行。
  • 迭代式計劃優(yōu)化:在初始規(guī)劃之后,PlanAgent通過從任務(wù)隊列中釋放出第一個任務(wù),然后將該子任務(wù)傳遞給內(nèi)循環(huán),PlanAgent持續(xù)監(jiān)視任務(wù)的進展和狀態(tài)。在每個子任務(wù)執(zhí)行后,內(nèi)循環(huán)會返回來自ToolAgent的反饋。根據(jù)反饋,PlanAgent觸發(fā)適當(dāng)?shù)奶幚頇C制,如優(yōu)化計劃或繼續(xù)執(zhí)行后續(xù)子任務(wù)。直到隊列中沒有剩余的子任務(wù)為止,外循環(huán)結(jié)束。

內(nèi)循環(huán)

內(nèi)循環(huán)負責(zé)執(zhí)行外循環(huán)分配的各個子任務(wù)?;谕庋h(huán)給定的子任務(wù),內(nèi)循環(huán)會指定一個合適的ToolAgent,確保任務(wù)達到預(yù)期的結(jié)果。內(nèi)循環(huán)的主要職責(zé)包括:

  • Agent調(diào)度和工具獲?。?/strong>根據(jù)子任務(wù)的性質(zhì),派遣合適的ToolAgent,該Agent具備完成任務(wù)所需的能力。
  • 工具執(zhí)行:ToolAgent首先從外部系統(tǒng)中獲取工具以幫助完成任務(wù)。然后,Agent使用ReACT來解決子任務(wù),尋找最佳的一系列工具調(diào)用來完成子任務(wù)。
  • 反饋和反思:在一系列動作之后,ToolAgent可以發(fā)出一個名為“subtask_submit”的特定動作,以完成當(dāng)前子任務(wù)的處理,并將反饋和反思傳遞給PlanAgent。這個反饋可以指示子任務(wù)是否成功完成,或者強調(diào)潛在的改進。

PlanAgent

PlanAgent賦予Agent不斷制定和修訂計劃的能力,以適應(yīng)多變的環(huán)境和突發(fā)需求。這些能力對于確保靈活性、彈性和效率以應(yīng)對未預(yù)見的挑戰(zhàn)至關(guān)重要。PlanAgent專用于外循環(huán),其通過生成初始計劃和不斷修訂計劃來實現(xiàn)這一目標(biāo)。PlanAgent包含四個函數(shù)來優(yōu)化計劃:

  • 子任務(wù)拆分:使系統(tǒng)能夠?qū)⑻囟ǖ淖尤蝿?wù)分解為粒度更細、更易管理的單元。只有當(dāng)前正在執(zhí)行或尚未啟動的子任務(wù)才有資格進行此操作。
  • 子任務(wù)刪除:刪除尚未開始的子任務(wù)。已經(jīng)在進行中或已完成的子任務(wù)不具備刪除資格。這確保了一定的靈活性,可以修剪多余或不相關(guān)的任務(wù),以優(yōu)化整體執(zhí)行。
  • 子任務(wù)修改:修改子任務(wù)的內(nèi)容。要修改的子任務(wù)不能是已經(jīng)開始或已經(jīng)完成,以保持整體計劃的完整性。
  • 子任務(wù)添加:在特定子任務(wù)之后插入新的子任務(wù)。只能在當(dāng)前處理的子任務(wù)或其后繼任務(wù)之后添加子任務(wù)。這確保了新任務(wù)按順序編排,簡化了執(zhí)行流程,并保持了一致性。

ToolAgent

ToolAgent使用ReACT尋找最佳的一系列工具來完成子任務(wù)。在每一輪中,Agent根據(jù)先前的交互生成一個動作,對于每個動作,在同一個函數(shù)調(diào)用中將智能體的推理和行動協(xié)同起來,即推理跟蹤和將要執(zhí)行的動作都被視為特定函數(shù)的參數(shù)。具體而言,每個函數(shù)調(diào)用具有以下組件:

  • 思考:Agent關(guān)于任務(wù)的洞察力的概括。
  • 推理:跟蹤Agent通過的邏輯軌跡,以得出其思考。
  • 批評:捕捉Agent對其行動的自我反思,作為一個反饋回路。它強調(diào)潛在的疏忽或改進的領(lǐng)域。
  • 指令:根據(jù)推理決定Agent下一步要采取的動作。
  • 參數(shù):列舉要執(zhí)行的動作的具體參數(shù)或細節(jié)。

五、總結(jié)

在這篇文章中,風(fēng)叔介紹了多智能體系統(tǒng)的意義和價值,并詳細介紹了MetaGPT、AutoGen、XAgent這三種著名的多智能體設(shè)計框架。

從協(xié)作設(shè)計實現(xiàn)上來說,風(fēng)叔更傾向選擇 LLM驅(qū)動的Multi-Agent設(shè)計方向,減少工程化的侵入。因為LLM能力在成長,隨著時間的推移,現(xiàn)在的瓶頸可能會被突破,而 SOP驅(qū)動是工程化的,無法隨著時間自我迭代。

本文由人人都是產(chǎn)品經(jīng)理作者【風(fēng)叔】,微信公眾號:【風(fēng)叔云】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!