微軟研究院發布無代碼開發工具 AUTOGEN STUDIO,簡化多智能體系統的構建與調試
多智能體系統(Multi-Agent Systems, MAS)是由多個智能體(agents)協同工作以解決復雜任務的系統。這些智能體可以是生成式 AI 模型、工具或其他計算單元,它們通過協作來完成單個智能體難以獨立完成的任務。多智能體系統在許多領域展現了其強大的應用潛力,包括自動駕駛、智能制造、金融分析和醫療診斷等。在這些應用中,多智能體系統能夠處理長時間運行的復雜任務,提供更高的靈活性和適應性。
盡管多智能體系統具有巨大的潛力,但其開發和調試過程卻充滿挑戰。開發者需要配置大量參數,包括選擇合適的模型、定義代理的技能和工具、設置通信和協調機制等。此外調試多智能體系統也非常復雜,開發者需要理解和分析代理之間的交互,以提取有用的信號來改進系統。這些因素使得多智能體系統的設計過程繁瑣且容易出錯,成為開發者進入這一領域的重大障礙。
為了解決上述挑戰,微軟研究院發布AUTOGEN STUDIO,這是一種無代碼開發工具,旨在快速原型設計、調試和評估多智能體工作流。AUTOGEN STUDIO 提供了一個基于 Web 的界面和 Python API,允許開發者使用聲明式(基于 JSON)的規范來表示啟用 LLM 的代理。其主要功能包括:
- 拖放界面:通過直觀的拖放 UI 來定義和調試代理工作流。
- 交互式評估和調試:支持工作流的交互式評估和調試,提供可視化的消息和操作分析工具。
- 可重用組件庫:包含可重用和共享的代理組件庫,簡化了多智能體系統的開發過程。
- 開源實現:作為開源項目,AUTOGEN STUDIO 已獲得廣泛的用戶基礎,展示了多智能體開發工具的設計模式和未來研究方向。
研究團隊來自位于美國雷德蒙德的微軟研究院(Microsoft Research),他們在生成式 AI 模型、多智能體系統和開發者工具方面具有豐富的經驗和專業知識。團隊成員包括 Victor Dibia、Jingya Chen、Gagan Bansal、Suff Syed、Adam Fourney、Erkang Zhu、Chi Wang 和 Saleema Amershi。他們的工作為了在簡化多智能體系統的開發過程降低開發門檻,并通過開源實現促進這一領域的創新。AUTOGEN STUDIO 的開源實現不僅為開發者提供了強大的工具,還為研究和實踐提供了一個適合的平臺。(開源地址:https://github.com/microsoft/autogen/tree/autogenstudio/samples/apps/autogen-studio)
相關工作
生成式 AI 模型,如大型語言模型(LLMs),在許多任務中表現出色,但也存在一些局限性。一個主要問題是“幻覺”,即生成不基于事實的內容。此外,這些模型在推理任務或處理新穎的、分布外的問題時表現有限。為了解決這些問題,研究者們開始探索將生成式 AI 模型與各種工具結合使用的方法。
通過賦予模型使用工具的能力,可以顯著增強其性能。例如,React 框架采用了“推理和行動”范式,使用 LLMs 生成推理軌跡和任務特定的行動。這種方法不僅提高了模型的準確性,還增強了其在復雜任務中的適應性。其他框架如 LIDA 和 LangChain 也通過預定義的管道將模型和工具結合起來。然而隨著任務復雜性的增加,這些預定義管道的表現開始顯現出局限性,促使研究者探索更靈活和自適應的代理架構。
為了簡化多智能體應用的開發,各種技術團隊的多個框架被提出。這些框架提供了創建多智能體應用的抽象層,使開發者能夠更容易地構建和管理復雜的多智能體系統。
AutoGen:這是一個開源的可擴展框架,允許開發者構建大型多智能體應用。AutoGen 提供了豐富的工具和接口,支持開發者定義和管理多智能體系統中的各個組件。
CAMEL:該框架通過角色扮演促進代理間的自主合作,使用引導提示來指導聊天代理完成任務,同時與人類意圖保持一致。
OS-Copilot:這是一個通用代理框架,能夠與操作系統中的各種元素(如網頁、代碼終端、文件、多媒體和第三方應用)進行交互。OS-Copilot 探索了使用專用規劃模塊、配置器和執行器的概念,以及工具(Python 函數或 API 調用)或技能(可以即時學習和重用的工具)的使用。
盡管這些框架在多智能體系統的開發中提供了重要的支持,但它們也存在一些局限性。大多數框架主要支持代碼優先的表示方式,這對非專業開發者來說門檻較高。此外,它們缺乏用于調試和評估代理行為的工具和指標,也缺乏結構化的可重用模板來加速工作流的創建過程。AUTOGEN STUDIO 通過提供可視化界面來定義和可視化代理工作流,測試和評估這些工作流,并提供常見任務的模板,解決了這些限制。
AUTOGEN STUDIO 的設計與實現
設計原則:無代碼多智能體開發工具的四個設計原則
圖1:AUTOGEN STUDIO提供了一個拖放式UI,可以在其中定義模型、技能/工具、內存組件,將其附加到代理和附加到工作流的代理。
AUTOGEN STUDIO 的設計基于以下四個核心原則:
快速原型設計:提供一個開發者可以快速指定代理配置并將其組合成多智能體工作流的環境。通過直觀的拖放界面,開發者可以輕松定義和調整代理的各個組件。
開發者工具:提供一系列工具,幫助開發者理解和調試代理行為,改進多智能體系統。這些工具包括消息和操作的可視化分析,以及調試和評估工作流的功能。
可重用模板:提供一個可重用和共享的模板庫,幫助開發者快速創建和部署多智能體工作流。這些模板促進了標準化和最佳實踐的應用,推動了多智能體系統的廣泛采用。
協作和共享:支持用戶在多智能體工作流開發中的協作,并允許在社區內輕松共享創作。通過提供實時協作、版本控制和無縫共享的工具和功能,促進了一個動態和創新的開發環境。
系統架構:AUTOGEN STUDIO 的前端和后端組件
AUTOGEN STUDIO 的系統架構包括前端用戶界面和后端 API 兩個主要部分。
用戶界面
- 構建視圖:在構建視圖中,用戶可以定義和組合多智能體工作流。通過拖放界面,用戶可以定義模型、技能/工具(如 Python 函數)和記憶存儲(如向量數據庫中的文檔)。這些實體可以獨立定義并保存,然后組合成代理和工作流。構建視圖還提供了一些默認的代理模板,如 UserProxy 代理、AssistantAgent 和 GroupChat 代理,幫助用戶快速創建工作流。
- 游樂場視圖:游樂場視圖允許用戶創建會話,附加工作流并運行任務。用戶可以在會話中測試和調試工作流,觀察代理執行的消息和操作,并通過后期分析視圖查看任務的各種指標,如消息數量、成本、工具使用頻率和狀態。
- 模板庫視圖:模板庫視圖提供了一個組件庫,包含技能、模型、代理和工作流,用戶可以導入、擴展和重用這些組件。每個組件規范都是聲明式的(JSON),用戶可以輕松導出、版本化和重新共享它們。
后端 API
圖2:AUTOGEN STUDIO提供了一個后端api(web、python、cli)和一個UI,該UI實現了游樂場(如圖所示)、構建和庫視圖。在操場視圖中,用戶可以根據工作流在會話中運行任務。用戶還可以觀察代理采取的操作,基于分析器模塊查看代理消息和指標。
- Web API:后端 Web API 使用 FastAPI 庫構建,支持 HTTP GET、POST 和 DELETE 方法。主要類包括 DBManager、WorkflowManager 和 Profiler。DBManager 負責對技能、模型、代理、記憶、工作流和會話等實體進行 CRUD 操作。WorkflowManager 處理聲明式代理工作流的攝取,將其轉換為 AUTOGEN 代理對象并執行任務。Profiler 解析代理消息以計算指標。
- Python API:Python API 提供了與 Web API 類似的功能,允許開發者在 Python 環境中定義和管理多智能體工作流。開發者可以使用 Python 代碼導入和運行工作流,進行任務執行和結果分析。
- 命令行接口:命令行接口提供了啟動捆綁 UI 和運行導出工作流的實用程序。用戶可以通過命令行啟動 AUTOGEN STUDIO 的 UI,并將工作流作為 API 端點執行,或將其打包為 Docker 容器進行大規模部署。
清單1:AUTOGEN STUDIO可以從PyPI(pip)安裝,UI從命令行啟動。
清單2:可以在python應用程序中導入工作流。
通過這些設計原則和系統架構,AUTOGEN STUDIO 為開發者提供了一個強大且易用的工具,簡化了多智能體系統的開發、調試和部署過程。
使用和評估
自 AUTOGEN STUDIO 發布以來,該工具包在 GitHub 上獲得了廣泛的關注和使用。在短短五個月內,AUTOGEN STUDIO 已被安裝超過 20 萬次,并收到了超過 135 個 GitHub 問題。這些問題反映了用戶在使用過程中遇到的各種痛點,并為工具的改進提供了寶貴的反饋。
主要的用戶反饋和相應的改進,用戶在定義、保存和重用組件時遇到了困難。為了解決這一問題,開發團隊實現了一個數據庫層,簡化了組件的管理和重用。用戶在創作組件時感到困難。為此,AUTOGEN STUDIO 增加了從描述中自動生成工具的功能,并集成了一個用于編輯工具的集成開發環境(IDE)。用戶在進行端到端測試時,組件經常失敗。為了解決這一問題,開發團隊在構建視圖中添加了一個測試按鈕,允許用戶在工作流中測試組件(如模型)。這些改進顯著提升了用戶體驗,使得 AUTOGEN STUDIO 更加易用和高效。
AUTOGEN STUDIO 提供了一個強大的平臺,支持開發者快速原型設計、測試和調試多智能體工作流。以下是一個典型的使用案例,展示了該工具的實際應用。
快速原型設計:開發者可以使用 AUTOGEN STUDIO 的拖放界面快速定義和組合多智能體工作流。例如,開發者可以定義一個生成式 AI 模型,添加相應的技能和工具,并將其組合成一個代理。然后,開發者可以將多個代理組合成一個工作流,以解決復雜任務。
測試和調試:在游樂場視圖中,開發者可以創建會話,附加工作流并運行任務。通過觀察視圖,開發者可以實時查看代理執行的消息和操作,并通過后期分析視圖查看任務的各種指標,如消息數量、成本、工具使用頻率和狀態。這些功能幫助開發者理解和調試多智能體系統的行為,改進系統性能。
部署和共享:一旦工作流經過測試和調試,開發者可以將其導出為 JSON 配置文件,并無縫集成到任何 Python 應用中,或作為 API 端點執行,或打包為 Docker 容器進行大規模部署。此外,開發者還可以將工作流和組件發布到模板庫,與社區共享,促進協作和創新。
圖3:AUTOGEN STUDIO倉庫中的GitHub問題圖(n=8個集群)。用戶反饋范圍從支持工作流創作工具(例如,配置和測試模型的能力)到一般安裝。
通過這些功能,AUTOGEN STUDIO 顯著降低了多智能體系統的開發門檻,使開發者能夠更輕松地配置、調試和優化這些系統,從而加速了這一領域的創新和應用。
新興設計模式和研究方向
定義和組合工作流
在多智能體系統中,配置和管理大量參數是一個復雜的任務。AUTOGEN STUDIO 采用了“定義和組合”工作流的方法,通過直觀的拖放界面,用戶可以首先獨立定義各個組件(如模型、技能、工具和記憶存儲),然后將這些組件組合成代理,并最終形成完整的多智能體工作流。這種方法不僅簡化了工作流的創建過程,還提高了開發者的理解和配置效率。AUTOGEN STUDIO 提供了定義和測試模型的工具、用于生成和編輯工具的集成開發環境(IDE),以及基于畫布的工作流可視化布局,支持拖放交互以關聯工作流中的實體。
調試和理解工具
多智能體工作流可能由于多種原因而失敗,從模型配置不當到代理指令不明確,再到工具配置錯誤或終止條件設置不當。為了幫助用戶調試和理解多智能體系統的行為,AUTOGEN STUDIO 提供了強大的調試工具。這些工具包括觀察視圖和后期分析視圖。觀察視圖允許用戶實時查看任務進展中代理執行的消息和操作,而后期分析視圖則可視化任務的各種指標,如消息數量、成本、工具使用頻率和狀態。這些工具幫助用戶識別和解決問題,改進系統性能。
導出和部署
盡管無代碼工具如 AUTOGEN STUDIO 能夠快速迭代和演示工作流,但開發者通常希望將這些成果集成到核心應用中。為此,AUTOGEN STUDIO 支持將多智能體工作流無縫導出為 JSON 配置文件,并集成到任何 Python 應用中。用戶還可以將工作流作為 API 端點執行,或打包為 Docker 容器進行大規模部署。這種無縫導出和部署功能使得開發者能夠輕松地將多智能體工作流應用于實際生產環境中,提升了工具的實用性和靈活性。
協作和共享
協作和共享是加速創新和改進多智能體系統的關鍵。AUTOGEN STUDIO 通過提供實時協作、版本控制和無縫共享的工具和功能,促進了用戶在多智能體工作流開發中的協作。用戶可以在模板庫中發布和共享他們的工作流、技能和代理,其他用戶可以導入、擴展和重用這些組件。這種社區驅動的方法不僅促進了知識和經驗的共享,還推動了多智能體系統的廣泛應用和創新。
通過這些新興設計模式和研究方向,AUTOGEN STUDIO 為多智能體系統的開發提供了一個強大且易用的平臺,顯著降低了開發門檻,促進了這一領域的快速發展和應用。
研究方向
在多智能體系統的開發過程中,評估代理的性能、可靠性和可重用性是至關重要的。離線評估工具可以幫助開發者在不影響實際運行的情況下,全面測試和分析代理的表現。這些工具可以回答以下問題:
- 如何衡量代理在不同任務中的性能?
- 如何評估代理的可靠性和穩定性?
- 如何理解代理的優缺點,并探索替代方案和結果?
通過開發這些離線評估工具,研究人員可以更好地理解代理的行為,優化其性能,并確保系統在實際應用中的可靠性。
多智能體系統的設計決策對其整體性能和效率有著深遠的影響。研究人員需要量化這些設計決策的影響,以確定最佳的系統配置。
這包括:
- 確定給定問題的最佳代理數量和組成。
- 分配職責和協調行動的最佳方式。
- 集中控制與分散控制、同質代理與異質代理之間的權衡。
通過量化這些設計決策的影響,研究人員可以優化多智能體系統的設計,提高其解決復雜任務的能力。
多智能體系統需要具備動態適應能力,以應對不斷變化的任務需求和環境條件。研究方向包括:
- 基于任務需求和可用資源動態生成代理。
- 調整工作流配置以實現最佳性能。
- 適應不斷變化的環境和用戶偏好。
此外,研究人員還需要探索如何利用人類監督和反饋來提高代理的可靠性、任務性能和安全性。這些優化方法將有助于多智能體系統在實際應用中更加高效和靈活。
通過這些未來研究方向的探索,AUTOGEN STUDIO 將進一步提升多智能體系統的開發和應用水平,推動這一領域的創新和發展。
結論
AUTOGEN STUDIO 是一個無代碼開發工具,旨在簡化多智能體系統的構建、調試和評估過程。其主要特點和貢獻包括:
無代碼界面:提供直觀的拖放界面,使開發者能夠輕松定義和組合多智能體工作流,降低了開發門檻。
交互式調試和評估:支持實時觀察和后期分析,幫助開發者理解和優化多智能體系統的行為和性能。
可重用組件庫:包含豐富的可重用和共享的代理組件,促進了標準化和最佳實踐的應用。
開源實現:作為開源項目,AUTOGEN STUDIO 已獲得廣泛的用戶基礎,展示了多智能體開發工具的設計模式和未來研究方向。
這些特點使得 AUTOGEN STUDIO 成為一個強大且易用的平臺,顯著降低了多智能體系統的開發復雜性,促進了這一領域的創新和應用。
未來的研究方向將進一步提升 AUTOGEN STUDIO 的功能和應用水平,推動多智能體系統的開發和優化。
離線評估工具:開發用于衡量代理性能、可靠性和可重用性的工具,將幫助開發者更好地理解和優化代理的行為。
多智能體系統設計決策的影響:量化多智能體系統設計決策的影響,有助于確定最佳的系統配置,提高系統的整體性能和效率。
優化多智能體系統:研究動態生成代理、調整工作流配置和適應環境變化的方法,將增強多智能體系統的靈活性和適應性。
通過這些研究方向的探索,AUTOGEN STUDIO 將進一步降低多智能體系統的開發門檻,提升其在實際應用中的性能和可靠性,推動這一領域的快速發展和廣泛應用。未來,隨著更多創新和改進的實現,AUTOGEN STUDIO 有望成為多智能體系統開發的標準工具,促進這一領域的持續進步和突破。(END)
參考資料:???https://arxiv.org/pdf/2408.15247??
本文轉載自 ??大噬元獸??,作者: FlerkenS
