微軟開源AI Agent大更新,重塑智能體!多層級更強架構
今天凌晨,微軟宣布其開源AI Agent AutoGen 發布0.4版本,全面重新設計的庫,在代碼穩定性、魯棒性、通用性和可擴展性方面更好,可以開發前沿高級AI Agent應用。
開源地址:https://github.com/microsoft/autogen
自微軟開源AutoGen以來在github已獲得超37000顆星,成為AI Agent領域應用最多的框架之一。由于開發者的快速增長,也帶來了API效率低下以及調試和干預功能有限等難題。
同時開發者對AI Agent自動化行為的可觀測性、控制能力、多層級Agent之間的協作有了更高的需求。所以,微軟對AutoGen 進行了大更新,發布0.4版本一次性解決所有問題。
0.4版本亮點功能
異步消息傳遞:Agent之間的通信采用了異步消息機制,不需要等待其他Agent的響應就可以繼續自動執行任務。這種全新模式非常適合事件驅動的應用程序,Agent可以響應特定事件或條件觸發的動作。
同時也保留了傳統的請求/響應模式,一個Agent發送請求并等待另一個Agent的回應。
模塊化和可擴展性:用戶可以輕松地使用自定義Agent、工具、內存和模型等,將不同的功能模塊組合起來,構建出滿足特定業務場景的Agent系統。例如,可以通過注冊不同的Agent類型和工具,來實現特定的自動化功能。
可觀測性和調試:內置的指標跟蹤、消息追蹤和調試工具,能夠對Agent交互和工作流程進行監控和控制。可以清楚記錄Agent工作流程中的每個步驟,包括大模型調用、工具使用、中間輸出、內存狀態和提示模板等。
這對于醫療診斷、法律分析、金融投資等,需要對Agent的運行流程進行精準追溯的行業非常有幫助。
可擴展性和分布式:用戶可以設計復雜的、分布式的Agent網絡,可以在組織邊界之間無縫運行。通過分布式架構,可以將不同的Agent部署在不同的服務器或云平臺上,實現資源的合理分配和高效利用。
內置和社區擴展:擴展模塊通過高級模型客戶端、Agent、多Agent團隊和Agent型工作流程工具增強了框架的功能。社區支持允許開源開發者管理自己的擴展,可以基于框架開發出更多具有特定功能的Agent或工具,并分享給其他開發者使用。
對于一些常見的功能需求,開發者可以直接使用社區提供的擴展模塊,無需從頭開始開發,極大降低了開發的難度和門檻。
跨語言支持:AutoGen 現在允許不同編程語言編寫的Agent之間進行互操作。例如,Python編寫的Agent可以與.NET 編寫的Agent協同工作。這項功能極大地拓寬了AutoGen的應用范圍,并消除了由于編程語言差異造成的障礙
除了新增功能之外,微軟對AutoGen的基礎架構也進行了重塑,包括核心、Agent聊天和擴展。
核心,事件驅動Agent系統的基石;Agent聊天,基于核心層構建的任務驅動的高級API,具有群聊、代碼執行、預構建Agent等功能;擴展,核心接口實現了和第三方集成,例如,Azure代碼執行器和OpenAI模型等。
在UI方面也進行了大量更新:通過UI進行交互式反饋,添加用戶Agent以實現在團隊運行期間實時的用戶輸入和指導;
消息流可視化,通過直觀的UI界面理解Agent通信,該界面映射消息路徑和依賴關系;可視化拖拽界面,使用拖放組件到位置并配置它們的關系和屬性的界面,可視覺化設計Agent。
集成Magentic-One
Magentic-One也是微軟開源的一款多層級通用AI Agent,現在也集成在了AutoGen中。
Magentic-One是一個多層級架構,分別由Orchestrator、WebSurfer、FileSurfer、Coder和ComputerTerminal 5個AI Agent組成。
每個專業Agent都擁有自己的技能集和知識庫,能夠在各自的領域內高效運作。但它們并非孤立工作,而是通過 Orchestrator 進行協調,確保所有活動都是連貫且符合最終目標。
Orchestrator負責整個任務的規劃、進度跟蹤及錯誤恢復。當接收到一個任務時,會深度分析任務需求,并根據需要分配給其他四個專業Agent不同的子任務。
?
這些專業Agent分別擅長處理特定類型的任務,WebBrowser Agent 能處理網頁瀏覽相關的操作,FileNavigatorAgent 管理本地文件系統的導航,Code WriterAgent負責編寫和執行Python 代碼片段,ComputerTerminal則允許執行操作系統級別的命令,從而為更高層次的任務提供底層支持。
在 Magentic-One 架構中,異步事件驅動是一個很重要功能。傳統上,許多系統依賴于同步請求-響應模式,其中每次調用都需要等待結果返回才能繼續下一步驟。而異步方法允許系統中的組件并發運行,在任何時候接收新輸入或觸發動作,而不會阻塞其他部分的工作。
例如,當 Orchestrator 分配了一個涉及下載網頁內容并從中提取信息的任務給WebBrowserAgent 后可以立即開始加載頁面,同時 Orchestrator 和其他Agent繼續處理其他任務。
一旦頁面加載完成并且所需的數據被提取出來,WebBrowserAgent 就會向 Orchestrator 發送通知,告知任務已完成并將結果傳遞回去。這種方式使得 Magentic-One 能夠更有效地管理資源,減少等待時間,并更好地應對高并發場景下的挑戰。
除了異步事件驅動架構外,Magentic-One 的另一個顯著特點是其高度模塊化的設計。這意味著每個Agent都可以被視為獨立的功能單元,具有明確的職責范圍和接口定義。結構簡化了系統的構建流程,因為開發者只需關注單個Agent的功能實現,而不必擔心與其他部分的交互細節。
更重要的是,模塊化促進了代碼重用和技術共享,已經存在的Agent可以直接應用于新的項目中,或者稍加修改就能適應不同的應用場景。
此外,Magentic-One 的模塊化設計也帶來了極大的可擴展性。隨著技術的進步或業務需求的變化,可以輕松地添加新的Agent或更新現有Agent的功能,而不需要對整個系統進行大規模改造。例如,如果發現某個領域內的任務變得更加復雜,可以通過引入專門針對該領域的Agent來增強系統的處理能力。
本文轉自 AIGC開放社區 ,作者:AIGC開放社區
