阿里智能體“組裝工廠”開源!0經(jīng)驗搞定上萬Agent并發(fā)
讓多智能體開發(fā)就像搭積木,阿里巴巴通義實驗室開源多智能體編程框架與開發(fā)平臺AgentScope。
該平臺專門為多智能體應用開發(fā)者打造,旨在提供高易用的編程體驗、穩(wěn)定可靠的運行時保障,并且為開發(fā)者提供了分布式和多模態(tài)的技術支持。
內(nèi)置了OpenAI、DashScope、Gemini、Ollama等多種不同平臺的模型API,深度兼容當下的大模型開源生態(tài)。
AgentScope提供了多種開箱即用的功能,通過簡單拖拽就能搭建多智能體應用。
即使沒有分布式開發(fā)經(jīng)驗的開發(fā)者,在AgentScope平臺上也能輕松實現(xiàn)上萬級別的多智能體并發(fā)。
為了讓更多用戶能夠快速、輕松地開發(fā)屬于自己的多智能體應用。AgentScope提供了以下功能:
- 拖拽式的編程范式——AgentScope Workstation:為用戶提供了可視化的拖拽式開發(fā)界面
- 交互式編程助手——AgentScope Copilot:解答開發(fā)者關于AgentScope的疑問
- 透明可控的開發(fā)過程——應用實時監(jiān)控:實時監(jiān)控應用運行成本、多智能體狀態(tài),實現(xiàn)透明且可控的開發(fā)
- 豐富的開發(fā)資源:助力快捷且方便的二次開發(fā),搭建應用無需“從零開始”
AgentScope Workstation
AgentScope Workstation提供了便捷的“拖拽式”多智能體應用編排范式。
在這里,編程經(jīng)驗不再是限制你想象力的因素。每個開發(fā)者都可以在豐富的工具欄中,零代碼地挑選和拖拽出他們喜歡的大模型、智能體和 Pipeline,就像搭積木一樣自由組合,創(chuàng)造出獨特創(chuàng)新的多智能體應用。
為了確保這些通過拖拽搭建的多智能體應用真正可用,AgentScope Workstation引入了靜態(tài)規(guī)則檢查,以確保應用的正確性。
對于那些尋求進一步自定義和深度開發(fā)的高級開發(fā)者,AgentScope Workstation也提供了強大的支持。
開發(fā)者既可以將應用導出為配置信息,借助AgentScope Workstation引擎進行運行,也可以使用AgentScope Workstation Compiler將配置信息一鍵轉換成Python代碼。這樣,開發(fā)者便可以進一步編輯和優(yōu)化代碼,實現(xiàn)更為精細和個性化的應用調(diào)整。
AgentScope Copilot
AgentScope Copilot是基于AgentScope框架自身構建的開發(fā)助手,旨在幫助開發(fā)者解決在多智能體應用開發(fā)過程中所遇到的問題,其技術實現(xiàn)結合了多智能體群聊(Multi-agent Conversation)、數(shù)據(jù)檢索生成(Retrieval-Augmented Generation,RAG)、智能體呼叫(Mention)等諸多特性。
在與AgentScope Copilot的交互中,開發(fā)者既可以與引導助手(Guide Assistant)進行交互,直接獲取幫助;也可以呼叫專用的智能體助手,例如問答助手(Tutoring Assistant)或者代碼編程助手(Coding Assistant),從而獲得更加專業(yè)、更加具體的回答。更具體而言,代碼編程助手可以幫助開發(fā)者快速理清框架內(nèi)各個模塊的定義及使用方法,提供更優(yōu)的編程建議。
值得一提的是,AgentScope Copilot本身基于AgentScope框架中的RAG模塊進行搭建,支持LlamaIndex等流行的數(shù)據(jù)檢索框架、以及多種向量數(shù)據(jù)庫類型,同時支持接入各種大語言模型。開發(fā)者可以進行快速的二次開發(fā),輕松的搭建起自己項目的Copilot助手。
透明可控的開發(fā)過程
一個友好的應用開發(fā)過程,對開發(fā)者來說應該是可控的、透明的。
但是在多智能體場景下,模型API種類繁多,調(diào)用接口各異,如何有效管理和監(jiān)控模型API的使用成本,避免資源浪費與意外開支,對資源監(jiān)控能力提出了更高的挑戰(zhàn)。
例如,在使用搜索引擎時將一個復雜網(wǎng)頁作為大模型的輸入將引起高額的開銷,而開發(fā)者的感知往往滯后。為了解決這個問題,AgentScope設計了Monitor模塊,實現(xiàn)了:
API開銷自動統(tǒng)計:準確記錄不同模型API的token用量,并自動計算當前開銷,確保開發(fā)者對模型API成本的每一份支出都了如指掌。
預算設置及超額報警:支持開發(fā)者設定各模型API的預算上限。當總開銷超過預算時,系統(tǒng)自動觸發(fā)報警,及時通知開發(fā)者進行檢查和調(diào)整,避免超支的發(fā)生。
支持自定義監(jiān)控指標:除了預設的模型API相關指標外,Monitor還允許開發(fā)者自定義其他監(jiān)控指標,例如搜索工具的開銷,數(shù)據(jù)存儲服務的開銷,網(wǎng)絡流量等等,從而讓開發(fā)者能夠對應用的狀態(tài)進行全面且自動化的監(jiān)控。
△ Monitor模塊
即拿即用的開發(fā)資源
AgentScope內(nèi)置了豐富的工具函數(shù)、智能體和應用樣例,開發(fā)者可以通過輕量化的修改,輕松的開發(fā)屬于自己的多智能體應用。
工具函數(shù):AgentScope支持包含網(wǎng)絡搜索、數(shù)據(jù)庫查詢、文件操作、文本處理等多種類型的工具函數(shù),每種類目下又包含不同實現(xiàn)形式。例如網(wǎng)絡搜索層面,AgentScope已經(jīng)支持Bing、arXiv和DBLP等多種搜索引擎。
智能體:AgentScope內(nèi)置了功能各異的智能體,包含基礎對話、格式化對話、Reasoning、RAG、分布式等多種不同類型的智能體。開發(fā)者只需要使用不同的參數(shù)初始化智能體實例,就可以將智能體特化成自己需要的智能體實例。
應用樣例:AgentScope預置了包含對話(Conversation)、游戲(Game)、和分布式(Distribution)等多種不同類型的應用。一方面這些樣例可以幫助開發(fā)者降低開發(fā)代價,另一方面也為應用的開發(fā)提供了模版和參照。
為了讓開發(fā)者能夠更好、更快地了解AgentScope中的內(nèi)置資源,AgentScope提供了豐富且詳細的文檔,包含教程(Tutorial)、接口文檔(API Document)和設計論文,幫助開發(fā)者更好的了解和使用AgentScope。
穩(wěn)定可靠
基于大模型的多智能體應用會面臨模型幻覺、模型指令跟隨能力不足等諸多新的挑戰(zhàn)。為了保證多智能體應用能夠穩(wěn)定可靠地運行,AgentScope首先將應用中出現(xiàn)的錯誤進行分類,然后相應地提供了一套完整的容錯機制和自定義的容錯處理。
面向隨機性的容錯:隨機性錯誤常常由網(wǎng)絡狀況不穩(wěn)定,或者模型生成內(nèi)容的不確定性引起,是基于大模型構建應用時最常見的一類錯誤。這類錯誤往往十分瑣碎且難以窮舉,因此AgentScope通過的內(nèi)置重試機制,將此類隨機性的錯誤進行過濾和屏蔽,方便開發(fā)者將精力投入到應用的編排中。
基于規(guī)則的容錯:應用中遇到的部分錯誤可以通過規(guī)則進行修復。例如,要求大模型產(chǎn)生指定格式的回復時,大模型有時會產(chǎn)生額外的內(nèi)容,因此可以通過預置的規(guī)則進行截斷,確保應用的正常運行。
基于模型的容錯:借助大模型自身能力進行糾錯是多智能體應用的特點之一,AgentScope會嘗試將輸入和錯誤信息提供給大模型,利用大模型的理解能力和知識來糾正錯誤。
面向智能體/開發(fā)者的容錯:當預置規(guī)則和大模型都無法解決錯誤時,往往需要開發(fā)者或者是智能體的介入才能解決問題,因此AgentScope在遇到此類錯誤的情況下,會將錯誤的格式化歸因、錯誤信息、輸入輸出信息完整的提交給開發(fā)者或智能體,從而幫助解決遇到的問題。
提示優(yōu)化
多智能體應用性能的提升很大程度依賴大模型的提示(Prompt)質量,一個好的提示可以大幅提高應用運行成功的概率。AgentScope編程框架提供了提示調(diào)優(yōu)模塊,助力開發(fā)者持續(xù)優(yōu)化應用。
提示自動生成:對于開發(fā)者來說,產(chǎn)生一個好的提示往往是一件耗時耗力的事情。AgentScope預置了一個智能體,其內(nèi)部通過上下文學習的方式(In-context learning,ICL),綜合開發(fā)者的應用場景,直接生成所需的提示,幫助開發(fā)者快速開始開發(fā)。
支持樣例輸入:在AgentScope中,開發(fā)者同時可以輸入若干樣例作為模板,AgentScope可以根據(jù)這些樣例,為特定的下游任務生成具體的提示詞。
提示動態(tài)調(diào)優(yōu):在應用運行過程中,大模型的提示詞還需根據(jù)運行情況做進一步的調(diào)整,例如添加新的規(guī)則以避免錯誤的產(chǎn)生。AgentScope將此過程自動化,在智能體與開發(fā)者、環(huán)境進行交互的過程中,其歷史數(shù)據(jù)將成為調(diào)整提示的依據(jù);AgentScope根據(jù)當時的場景,修改智能體的系統(tǒng)提示(System prompt)從而在運行過程中提高智能體的表現(xiàn)。
分布式并行
作為一個多智能體編程框架,AgentScope在設計之初就將提升智能體之間的協(xié)作效率作為主要目標之一,并為此設計了分布式模式。在該模式中,多智能體可以運行在不同的進程和機器當中,從而充分利用計算資源,提高運行效率。AgentScope中的分布式主要具有以下特點:
自動并行優(yōu)化:AgentScope中分布式的設計遵循Actor編程范式,可以自動識別應用流程編排中不同智能體之間潛在的并行可能性,并且進行自動并行優(yōu)化,提升運行效率。同時各個智能體可以獨立運行在本地或者遠程機器上,能夠充分利用計算資源,支持大規(guī)模部署。
上手門檻極低:AgentScope向開發(fā)者完全屏蔽了分布式的技術實現(xiàn)細節(jié),開發(fā)者可以零代價開發(fā)分布式多智能體應用,或者將已有的多智能體應用轉化成分布式模式運行。在轉化成分布式應用時,AgentScope中分布式應用編排與本地化的編排方式完全兼容,即使沒有分布式背景知識,開發(fā)者也能輕松編排分布式多智能體應用。
支持大規(guī)模部署:AgentScope目前支持在單臺機器(64核8卡A100)上一次性運行16000多個智能體實例,并且該規(guī)模能夠隨著機器數(shù)量的增加實現(xiàn)規(guī)模的線性增長。舉例來說,AgentScope在4臺機器的集群上可以在30秒內(nèi)完成64000多次智能體的調(diào)用。這一特點使得智能體的大規(guī)模并行和仿真成為可能。
△本地模式向分布式模式轉換
多模態(tài)支持
AgentScope支持開發(fā)者使用多模態(tài)數(shù)據(jù)和多模態(tài)模型來構建強大的多智能體應用。為了讓開發(fā)者可以更加直觀、便捷地與自己編排的多智能體應用交互,AgentScope提供了一款開發(fā)者友好、簡便易用的可交互式界面AgentScope Studio,讓文本、聲音、圖像等不同模態(tài)的數(shù)據(jù)得以生動呈現(xiàn),確保了開發(fā)者能以最直觀的方式感受并調(diào)整自己創(chuàng)造的智能體應用。
△AgentScope Studio
接下來,AgentScope還將持續(xù)為開發(fā)者帶來更多的開發(fā)便利,也期待更多開發(fā)者加入AgentScope開源社區(qū)的建設,探索更多更有趣的多智能體應用。
AgentScope開源倉庫地址:
https://github.com/modelscope/agentscope
歡迎試用:
https://agentscope.aliyun.com