LLMs之Agent:Magentic-One的簡介,、安裝和使用方法、案例應(yīng)用之詳細(xì)攻略
相關(guān)文章《Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasks》翻譯與解讀
Magentic-One的簡介Magentic-One 是微軟開發(fā)的一個(gè)通用型多智能體系統(tǒng),用于解決開放式的 Web?和文件系統(tǒng)任務(wù),。它旨在構(gòu)建能夠完成人們?cè)诠ぷ骱蜕钪杏龅降?span style="color:#ff0000;">各種任務(wù)的智能體,。 該系統(tǒng)在多個(gè)具有挑戰(zhàn)性的基準(zhǔn)測試中取得了與現(xiàn)有最先進(jìn)方法相當(dāng)?shù)男阅堋?/p> 1、特點(diǎn)>> 多智能體架構(gòu):采用一個(gè)協(xié)調(diào)者 (Orchestrator) 智能體和四個(gè)專業(yè)智能體協(xié)同工作,。 2,、架構(gòu)組成上圖展示了 Magentic-One 多Agent團(tuán)隊(duì)如何完成 GAIA 基準(zhǔn)中的一項(xiàng)復(fù)雜任務(wù)。Magentic-One 的 Orchestrator Agent制定計(jì)劃,將任務(wù)委派給其他Agent,并跟蹤目標(biāo)的進(jìn)展情況,根據(jù)需要?jiǎng)討B(tài)修改計(jì)劃,。Orchestrator 可以分別將任務(wù)委派給 FileSurfer Agent以讀取和處理文件,、WebSurfer Agent以操作 Web 瀏覽器,或 Coder 或 Computer Terminal Agent以編寫或執(zhí)行代碼。 Magentic-One 的工作基于多Agent架構(gòu),其中首席 Orchestrator Agent負(fù)責(zé)高級(jí)規(guī)劃,、指導(dǎo)其他Agent并跟蹤任務(wù)進(jìn)度,。Orchestrator 首先制定一個(gè)計(jì)劃來解決任務(wù),在維護(hù)的任務(wù)分類賬中收集所需的事實(shí)和有根據(jù)的猜測。在計(jì)劃的每個(gè)步驟中,Orchestrator 都會(huì)創(chuàng)建一個(gè)進(jìn)度分類賬,在其中自我反思任務(wù)進(jìn)度并檢查任務(wù)是否完成。如果任務(wù)尚未完成,它會(huì)為 Magentic-One 的其他Agent之一分配一個(gè)子任務(wù)來完成,。在分配的Agent完成其子任務(wù)后,Orchestrator 會(huì)更新進(jìn)度分類賬并繼續(xù)執(zhí)行,直到任務(wù)完成,。如果 Orchestrator 發(fā)現(xiàn)進(jìn)度不夠,它可以更新任務(wù)分類賬并創(chuàng)建新計(jì)劃。如上圖所示;Orchestrator 的工作因此分為一個(gè)外循環(huán)(更新任務(wù)分類賬)和一個(gè)內(nèi)循環(huán)(更新進(jìn)度分類賬),。 Magentic-One 由以下成分組成: >> 協(xié)調(diào)者:負(fù)責(zé)任務(wù)分解和規(guī)劃的首席Agent,指導(dǎo)其他Agent執(zhí)行子任務(wù),跟蹤總體進(jìn)度,并根據(jù)需要采取糾正措施 >> WebSurfer:這是一個(gè)基于 LLM 的Agent,能夠熟練地指揮和管理基于 Chromium 的 Web 瀏覽器的狀態(tài),。對(duì)于每個(gè)傳入請(qǐng)求,WebSurfer 都會(huì)在瀏覽器上執(zhí)行操作,然后報(bào)告網(wǎng)頁的新狀態(tài)。WebSurfer 的操作空間包括導(dǎo)航(例如訪問 URL,、執(zhí)行 Web 搜索);網(wǎng)頁操作(例如單擊和鍵入);以及閱讀操作(例如總結(jié)或回答問題),。WebSurfer 依賴于瀏覽器的可訪問性樹和標(biāo)記集提示來執(zhí)行其操作。 >> FileSurfer:這是一個(gè)基于 LLM 的Agent,可命令基于 markdown 的文件預(yù)覽應(yīng)用程序讀取大多數(shù)類型的本地文件,。FileSurfer 還可以執(zhí)行常見的導(dǎo)航任務(wù),例如列出目錄內(nèi)容和瀏覽文件夾結(jié)構(gòu),。 >> 編碼員:這是一個(gè)基于 LLM 的Agent,通過其系統(tǒng)提示專門用于編寫代碼、分析從其他Agent收集的信息或創(chuàng)建新的工件,。 >> ComputerTerminal:最后,ComputerTerminal 為團(tuán)隊(duì)提供了訪問控制臺(tái) shell 的權(quán)限,可以在其中執(zhí)行 Coder 的程序,并可以安裝新的編程庫,。 總的來說,Magentic-One 的Agent為 Orchestrator 提供了解決各種開放式問題所需的工具和功能,以及自主適應(yīng)和在動(dòng)態(tài)且不斷變化的網(wǎng)絡(luò)和文件系統(tǒng)環(huán)境中運(yùn)行的能力。 雖然我們?yōu)樗蠥gent使用的默認(rèn)多模態(tài) LLM 是 GPT-4o,但 Magentic-One 與模型無關(guān),可以整合異構(gòu)模型以支持不同的功能或滿足完成任務(wù)時(shí)的不同成本要求,。例如,它可以使用不同的 LLM 和 SLM 及其專用版本來為不同的Agent提供支持,。我們建議為 Orchestrator Agent使用強(qiáng)大的推理模型,例如 GPT-4o。在 Magentic-One 的不同配置中,我們還嘗試使用 OpenAI o1-preview 作為 Orchestrator 的外循環(huán)和 Coder,而其他Agent則繼續(xù)使用 GPT-4o,。 3,、安全注意事項(xiàng)強(qiáng)烈建議在 Docker 容器中運(yùn)行 Magentic-One,并進(jìn)行日志監(jiān)控和人工監(jiān)督,以最大限度地降低風(fēng)險(xiǎn),例如防止智能體采取危險(xiǎn)行為或遭受提示注入攻擊。 用 Magentic-One 需要與為人類設(shè)計(jì)的數(shù)字世界進(jìn)行交互,這本身就存在風(fēng)險(xiǎn),。為了將這些風(fēng)險(xiǎn)降至最低,請(qǐng)考慮以下預(yù)防措施: >> 使用容器:在docker容器中運(yùn)行所有任務(wù),以隔離Agent并防止直接系統(tǒng)攻擊,。 >> 虛擬環(huán)境:使用虛擬環(huán)境運(yùn)行Agent并阻止它們?cè)L問敏感數(shù)據(jù)。 >> 監(jiān)控日志:在執(zhí)行期間和執(zhí)行后密切監(jiān)控日志,以檢測和減輕危險(xiǎn)行為,。 >> 人工監(jiān)督:在循環(huán)中運(yùn)行示例,以監(jiān)督Agent并防止出現(xiàn)意外后果,。 >> 限制訪問:限制Agent對(duì)互聯(lián)網(wǎng)和其他資源的訪問,以防止未經(jīng)授權(quán)的操作。 >> 保護(hù)數(shù)據(jù):確保Agent無法訪問可能被泄露的敏感數(shù)據(jù)或資源,。不要與Agent共享敏感信息,。請(qǐng)注意,Agent可能偶爾會(huì)嘗試冒險(xiǎn)行動(dòng),例如招募人員提供幫助或在無人參與的情況下接受 cookie 協(xié)議。始終確保Agent受到監(jiān)控并在受控環(huán)境中運(yùn)行,以防止出現(xiàn)意外后果,。此外,請(qǐng)注意 Magentic-One 可能容易受到網(wǎng)頁的提示注入攻擊,。 注意:該項(xiàng)目代碼目前正在移植到 AutoGen AgentChat,建議等待移植完成后再進(jìn)行構(gòu)建。 Magentic-One的安裝和使用方法1,、安裝克隆代碼庫git clone https://github.com/microsoft/autogen.git cd autogen/python uv sync ?--all-extras source .venv/bin/activate 安裝 Magentic-Onecd packages/autogen-magentic-one pip install -e . 安裝Playwrightplaywright install --with-deps chromium 需要安裝 Docker示例代碼可能下載文件,、執(zhí)行代碼和與網(wǎng)頁交互,請(qǐng)確保在安全的環(huán)境中運(yùn)行。 運(yùn)行命令: python examples/example.py --logs_dir ./logs (指定日志目錄) python examples/example.py --logs_dir ./logs --hil_mode (啟用人工參與模式) python examples/example.py --logs_dir ./logs --save_screenshots (保存瀏覽器截圖) 2,、聊天完成客戶端的環(huán)境配置需要配置環(huán)境變量才能使用 create_completion_client_from_env 函數(shù),該函數(shù)讀取環(huán)境變量來返回合適的 ChatCompletionClient,。 T1、Azure OpenAI 服務(wù)需要設(shè)置 CHAT_COMPLETION_PROVIDER='azure' 和 CHAT_COMPLETION_KWARGS_JSON (包含端點(diǎn)、模型等信息),。 T2,、OpenAI需要設(shè)置 CHAT_COMPLETION_PROVIDER='openai' 和 CHAT_COMPLETION_KWARGS_JSON (包含 API 密鑰和模型信息)。 可選Bing API 密鑰:如果需要使用 Web 搜索功能,則需要設(shè)置 BING_API_KEY,。 Magentic-One的案例應(yīng)用1,、Magentic-One 的多智能體團(tuán)隊(duì)如何完成 GAIA 基準(zhǔn)測試中的復(fù)雜任務(wù)協(xié)調(diào)者創(chuàng)建計(jì)劃,將任務(wù)委派給其他智能體,并跟蹤進(jìn)度,根據(jù)需要?jiǎng)討B(tài)修改計(jì)劃。 協(xié)調(diào)者可以將任務(wù)委派給 FileSurfer,、WebSurfer,、Coder 或 ComputerTerminal 智能體來執(zhí)行不同的子任務(wù)。 |
|