Agent像人一樣分工協(xié)作,還能“群聊”交換信息
智能體也要有“規(guī)范手冊(cè)”!
一項(xiàng)名為MetaGPT的研究,通過(guò)對(duì)智能體角色進(jìn)行明確分工,并要求多個(gè)智能體在協(xié)作中采用統(tǒng)一規(guī)范的“交流格式”等方法,讓智能體性能大增。
目前,這項(xiàng)研究在GitHub上已狂攬33.6k星,并在深度學(xué)習(xí)頂會(huì)ICLR 2024上被收錄為Oral論文。
總的來(lái)說(shuō),MetaGPT是模仿人類的分工協(xié)作方式,將各種任務(wù)的標(biāo)準(zhǔn)操作流程編碼為智能體的“規(guī)范手冊(cè)”,不同角色的智能體負(fù)責(zé)不同的專業(yè)任務(wù)。
比如產(chǎn)品經(jīng)理角色可以使用網(wǎng)絡(luò)搜索工具,而工程師角色可以執(zhí)行代碼:
由此多智能體協(xié)作完成任務(wù)。
研究人員甚至還為智能體們?cè)O(shè)置了一個(gè)“消息共享群”,不同角色的智能體可以在“群”里自由查看和自我任務(wù)相關(guān)的其他智能體發(fā)送來(lái)的消息。
經(jīng)測(cè)試,使用這種方法,在代碼補(bǔ)全任務(wù)的公開數(shù)據(jù)集HumanEval和MBPP上,MetaGPT分別取得了85.9%和87.7%的新SOTA。
目前這項(xiàng)工作已開源,在全網(wǎng)受到不少網(wǎng)友關(guān)注:
MetaGPT長(zhǎng)啥樣?
這項(xiàng)研究由DeepWisdom團(tuán)隊(duì)聯(lián)合KAUST AI中心、廈門大學(xué)、CUHK(SZ)、南京大學(xué)、UPenn以及UCB等眾多高校機(jī)構(gòu)的學(xué)者共同提出。
隨著大模型能力的不斷提升,基于大模型的智能體來(lái)解決各種任務(wù)在學(xué)術(shù)界和工業(yè)界的興趣日益增長(zhǎng)。
值得注意的是,對(duì)于采用多個(gè)智能體協(xié)作解決特定領(lǐng)域問(wèn)題的研究仍處于早期階段?,F(xiàn)有研究主要集中在通過(guò)角色扮演機(jī)制和通信拓?fù)湓O(shè)定來(lái)增強(qiáng)任務(wù)理解和推理決策能力。盡管取得了一定進(jìn)展,但這些方法仍然依賴于直接的對(duì)話形式,缺乏對(duì)智能體行為的標(biāo)準(zhǔn)規(guī)范和約束。
近期的一些工作也指出,基于對(duì)話形式的多智能體系統(tǒng)可能面臨信息不一致、歧義以及可能的無(wú)效重復(fù)和無(wú)限循環(huán)等問(wèn)題。
相較之下,人類工作流程中的標(biāo)準(zhǔn)操作流程(SOPs)不僅明確定義了參與角色的分工和拓?fù)浣Y(jié)構(gòu),還建立了角色產(chǎn)出結(jié)果的標(biāo)準(zhǔn)規(guī)范。
研究表明,明確定義的SOPs可以提高任務(wù)執(zhí)行的一致性和準(zhǔn)確性,確保最終結(jié)果符合規(guī)定的質(zhì)量標(biāo)準(zhǔn)。因此,為解決多智能體協(xié)作中的挑戰(zhàn),研究人員設(shè)計(jì)了基于大模型的智能體元編程框架MetaGPT。
MetaGPT要求智能體以專家形式參與協(xié)作,并按要求生成結(jié)構(gòu)化的輸出,例如高質(zhì)量的需求文檔、架構(gòu)設(shè)計(jì)圖和流程圖等。
結(jié)構(gòu)化的輸出對(duì)于單個(gè)智能體即是更高層次的思維鏈(Chain-of-Thought),對(duì)于下游角色則是語(yǔ)義清晰、目標(biāo)明確的上下文(Context)。
在MetaGPT的框架中,研究人員將SOPs的概念對(duì)齊至角色專業(yè)化、通信協(xié)議設(shè)計(jì)以及迭代式的可執(zhí)行反饋設(shè)計(jì)。
角色專業(yè)化
通過(guò)明確定義的角色分工,復(fù)雜的工作得以分解為更小、更具體的任務(wù)。
如下圖所示,不同專業(yè)的角色,初始化為不同的目標(biāo)和約束,以及不同的專業(yè)技能。如產(chǎn)品經(jīng)理角色可以使用網(wǎng)絡(luò)搜索工具,而工程師角色可以執(zhí)行代碼。與此同時(shí),每個(gè)角色都默認(rèn)遵循ReAct的行為模式。
角色專業(yè)化使得每個(gè)智能體能夠?qū)W⒂谄漕I(lǐng)域內(nèi)的具體任務(wù),從而提升了大模型的輸出質(zhì)量。
對(duì)于軟件開發(fā)而言,通過(guò)角色的流轉(zhuǎn),這種分工更巧妙地完成了從自然語(yǔ)言到編程語(yǔ)言的對(duì)齊。論文中的角色消融實(shí)驗(yàn)進(jìn)一步證明了這一部分的效果。
通信協(xié)議設(shè)計(jì)
在實(shí)際應(yīng)用中,自然語(yǔ)言雖然具備語(yǔ)義的豐富性,但由于其非結(jié)構(gòu)化的特性,在消息傳遞過(guò)程中常常會(huì)導(dǎo)致信息的歪曲甚至重要內(nèi)容的丟失。
為解決這一問(wèn)題,作者約束智能體以結(jié)構(gòu)化的輸出(包括文檔和圖表)參與協(xié)作,來(lái)提高信息的清晰度和完整性。為驗(yàn)證這一設(shè)計(jì),作者設(shè)計(jì)了多種軟件開發(fā)任務(wù),通過(guò)生成代碼的可執(zhí)行性以及生產(chǎn)力指標(biāo)強(qiáng)調(diào)結(jié)構(gòu)化輸出在協(xié)作中的關(guān)鍵性。
在多智能體協(xié)作過(guò)程中,為提高通信效率,MetaGPT引入了基于消息共享的發(fā)布-訂閱機(jī)制(Publish-Subscribe Mechanism)。
如上圖所示,共享消息池允許直接交換消息,任何智能體都可以透明地訪問(wèn)來(lái)自其他智能體的消息,無(wú)需詢問(wèn)并等待響應(yīng)。訂閱機(jī)制使智能體更傾向于接收與自我任務(wù)相關(guān)的信息,避免分心于不相關(guān)的細(xì)節(jié)。同時(shí),每個(gè)智能體可直接從共享消息池中檢索所需信息,形成自我記憶。
可執(zhí)行反饋
智能體根據(jù)環(huán)境反饋進(jìn)行自我優(yōu)化和主動(dòng)更新,是智能體具備自主意識(shí)的表現(xiàn)。
在軟件開發(fā)任務(wù)上,MetaGPT為工程師的智能體設(shè)計(jì)了可執(zhí)行反饋機(jī)制,以進(jìn)行代碼質(zhì)量自動(dòng)優(yōu)化。
具體而言,工程師編寫并執(zhí)行相應(yīng)的單元測(cè)試用例,通過(guò)觀察到的執(zhí)行結(jié)果,遞歸地進(jìn)行決策和自我提示,實(shí)現(xiàn)自動(dòng)debug。這種設(shè)計(jì)-測(cè)試-反饋的迭代過(guò)程持續(xù)進(jìn)行,直到單元測(cè)試通過(guò)或達(dá)到最大重試次數(shù)。
多個(gè)基準(zhǔn)測(cè)試新SOTA
在代碼生成能力上,研究人員采用了兩個(gè)公開基準(zhǔn)數(shù)據(jù)集:HumanEval和MBPP,并報(bào)告Pass@1指標(biāo)。
另外,他們還收集了涵蓋70個(gè)典型軟件開發(fā)任務(wù)(如迷你游戲、數(shù)據(jù)可視化、圖像處理等)的數(shù)據(jù)集SoftwareDev,并進(jìn)行了多個(gè)智能體開源框架的對(duì)比,對(duì)多個(gè)軟件開發(fā)任務(wù)的可執(zhí)行性和生產(chǎn)效率上進(jìn)行了統(tǒng)計(jì)分析和定性說(shuō)明。
如下圖所示,MetaGPT在HumanEval和MBPP基準(zhǔn)測(cè)試中均優(yōu)于之前的方法,分別達(dá)到了85.9%和87.7%。相比于GPT-4的結(jié)果,MetaGPT在HumanEval數(shù)據(jù)集上相對(duì)提升了28.2%,而加入可執(zhí)行反饋機(jī)制分別在HumanEval和MBPP上提升了4.2%和5.4%。
在具有挑戰(zhàn)性的SoftwareDev數(shù)據(jù)集上,MetaGPT在可執(zhí)行性上的得分為3.75,非常接近4,而所需的運(yùn)行時(shí)間較短(503秒);生成的代碼行數(shù)相對(duì)基線框架增加了2.24倍,而單位代碼行數(shù)所消耗的token數(shù)下降了50%。
這些結(jié)果突顯了多智能體協(xié)作過(guò)程中SOPs帶來(lái)的效率提升。
MetaGPT在軟件開發(fā)任務(wù)中的高可執(zhí)行性和相對(duì)較短的運(yùn)行時(shí)間表明了其在實(shí)際應(yīng)用中的實(shí)用性和效率。
聚焦在軟件開發(fā)領(lǐng)域,研究人員提供了不同智能體框架能力的定性對(duì)比。
他們發(fā)現(xiàn),MetaGPT不僅具備多種模態(tài)的文件生成能力,也是目前眾多框架中唯一完整覆蓋了真實(shí)世界中軟件開發(fā)過(guò)程的開源框架。
總的來(lái)說(shuō),MetaGPT是一個(gè)新穎的多智能體框架,結(jié)合元編程思想,嵌入SOPs來(lái)增強(qiáng)大模型在多智能體協(xié)作上的能力。
通過(guò)角色專業(yè)化,工作流管理和靈活的消息機(jī)制,使其成為通用性和可移植性高的多智能體框架。
結(jié)合迭代式的反饋機(jī)制,MetaGPT在多個(gè)基準(zhǔn)測(cè)試上取得SOTA性能。
結(jié)合人類社會(huì)實(shí)踐的SOPs,啟發(fā)了未來(lái)對(duì)于多智能體社會(huì)的研究和探索,也可視為對(duì)基于大模型的多智能體框架進(jìn)行調(diào)節(jié)的早期嘗試。
論文鏈接:https://arxiv.org/abs/2308.00352
代碼鏈接:https://github.com/geekan/MetaGPT