五分鐘讀懂Manus平替:深度解析OpenManus 如何重新定義Multi Agent? 原創(chuàng)
最近,AI圈子里有個(gè)詞兒特別火——Agent(智能體)。隨著大模型在推理與生成上的能力不斷提升,Agent技術(shù)也迎來(lái)了它的“高光時(shí)刻”。特別是3月初,Manus展示的多智能體Demo,直接讓整個(gè)行業(yè)沸騰了。緊接著,國(guó)內(nèi)的DeepWisdom MetaGPT團(tuán)隊(duì)和CAMEL AI團(tuán)隊(duì)也迅速跟進(jìn),開(kāi)源了OpenManus和OWL,瞬間在社交媒體和GitHub上掀起了一股多智能體技術(shù)的熱潮。
今天,我們就來(lái)聊聊這個(gè)開(kāi)源項(xiàng)目OpenManus,看看它到底有什么魔力,能在短短幾天內(nèi)收獲過(guò)萬(wàn)Star。
3小時(shí)上線初版
OpenManus的研發(fā)團(tuán)隊(duì)在1小時(shí)內(nèi)實(shí)現(xiàn)了核心功能,3小時(shí)內(nèi)上線了初版本。我覺(jué)得這種高效并非偶然,而是源于團(tuán)隊(duì)在多智能體框架上的長(zhǎng)期技術(shù)積累,以及系統(tǒng)內(nèi)部設(shè)計(jì)的高度抽象和可組合性。
OpenManus的核心設(shè)計(jì)思路非常清晰:極簡(jiǎn)、可插拔、工具驅(qū)動(dòng)。它通過(guò)Prompt(提示詞)和Tools(工具)的組合,快速“拼裝”出新的Agent,賦予其處理不同類型任務(wù)的能力。這種設(shè)計(jì)不僅降低了開(kāi)發(fā)門(mén)檻,還讓Agent的定制變得異常靈活。
設(shè)計(jì)理念
OpenManus本質(zhì)上是一個(gè)多智能體系統(tǒng)(Multi-Agent System)。與單一大模型的“大而全”不同,多智能體系統(tǒng)通過(guò)“規(guī)劃—執(zhí)行—反饋”的循環(huán),逐步解決復(fù)雜的現(xiàn)實(shí)問(wèn)題。它的設(shè)計(jì)思路可以概括為以下幾點(diǎn):
- 極簡(jiǎn)可插拔框架OpenManus的核心是一個(gè)精簡(jiǎn)的Agent框架,強(qiáng)調(diào)模塊化和可擴(kuò)展性。通過(guò)Prompt和Tools的自由組合,開(kāi)發(fā)者可以快速定義Agent的行為邏輯和功能。比如,Prompt決定了Agent的思考方式,而Tools則提供了具體的行動(dòng)能力(如代碼執(zhí)行、搜索、文件操作等)。
- 工具驅(qū)動(dòng)的ReAct AgentOpenManus基于ReAct(Reason + Act)模式,以工具為核心驅(qū)動(dòng)Agent的行動(dòng)。Prompt引導(dǎo)Agent的推理和邏輯,而Tools則賦予Agent行動(dòng)能力。這種設(shè)計(jì)讓Agent不僅能“想”,還能“做”。
- 規(guī)劃能力處理復(fù)雜任務(wù)OpenManus延續(xù)了Manus的多智能體規(guī)劃優(yōu)勢(shì),通過(guò)PlanningTool對(duì)用戶需求進(jìn)行高層規(guī)劃。它將復(fù)雜任務(wù)分解為線性的子任務(wù)計(jì)劃,顯著提升了任務(wù)的成功率。這種“先規(guī)劃,后執(zhí)行”的思路,在處理長(zhǎng)鏈任務(wù)時(shí)尤為有效。
- 動(dòng)態(tài)Agent分配與工具調(diào)度當(dāng)一個(gè)任務(wù)被拆解為多個(gè)子任務(wù)后,系統(tǒng)會(huì)根據(jù)任務(wù)類型,動(dòng)態(tài)分配給預(yù)先定義或適配的Agent。這種“臨時(shí)分配 + 工具協(xié)作”的機(jī)制,最大化利用了多模型、多工具的組合優(yōu)勢(shì),提高了系統(tǒng)的靈活性和效率。
工作流程
OpenManus的運(yùn)行流程非常清晰,可以概括為以下幾個(gè)步驟:
- 用戶需求輸入用戶在前端或命令行中輸入復(fù)雜需求,比如“寫(xiě)一段代碼并自動(dòng)部署到服務(wù)器上”。
- PlanningTool規(guī)劃系統(tǒng)調(diào)用PlanningTool,對(duì)需求進(jìn)行分析與分解,形成一個(gè)線性結(jié)構(gòu)的任務(wù)序列。比如,將需求拆解為“分析需求→編寫(xiě)代碼→測(cè)試修復(fù)→部署驗(yàn)證”。
- 任務(wù)分配與執(zhí)行系統(tǒng)根據(jù)任務(wù)類型,動(dòng)態(tài)分配給最合適的Agent。每個(gè)Agent采用ReAct循環(huán)與Tools交互,完成子任務(wù)。
- 結(jié)果匯總與狀態(tài)更新子任務(wù)執(zhí)行完畢后,系統(tǒng)會(huì)將結(jié)果進(jìn)行總結(jié)與壓縮,存入共享內(nèi)存。如果任務(wù)順利完成,進(jìn)入下一子任務(wù);如果失敗,系統(tǒng)會(huì)進(jìn)行自動(dòng)調(diào)試或重新規(guī)劃。
- 整體產(chǎn)出所有子任務(wù)執(zhí)行完畢后,系統(tǒng)對(duì)整體結(jié)果進(jìn)行匯總并返回給用戶。
架構(gòu)
OpenManus的工程結(jié)構(gòu)非常簡(jiǎn)潔,截止到目前核心僅包含約30個(gè)文件,依賴庫(kù)也相對(duì)簡(jiǎn)單(如pydantic、openai、playwright等)。它的架構(gòu)由四個(gè)主要模塊構(gòu)成:
- 核心多智能體框架(Agent)采用清晰的繼承層次,自底向上逐步增強(qiáng)功能。從BaseAgent到ReActAgent,再到ToolCallAgent,最后到Manus,每一層都通過(guò)定制Prompt和Tools賦予Agent不同的能力。
- 工具層(Tools)工具模塊是OpenManus的行動(dòng)基礎(chǔ),包括Python執(zhí)行、網(wǎng)絡(luò)搜索、文件讀寫(xiě)、任務(wù)規(guī)劃等。每個(gè)工具都繼承自BaseTool,具有高度的可擴(kuò)展性。
- 提示詞模塊(Prompt)Prompt模塊包含了各種Agent使用的指令模板,定義了Agent的行為邏輯和思考方式。
- 執(zhí)行流程模塊(Flow)Flow模塊負(fù)責(zé)任務(wù)的高層編排和執(zhí)行流程管理,確保任務(wù)按計(jì)劃逐步完成。
不同模型實(shí)測(cè)效果
通過(guò)測(cè)試,我發(fā)現(xiàn)不同模型在OpenManus的使用效果差異明顯:
模型 | 工具調(diào)用能力 | 中文理解 | 執(zhí)行效率 | 我的評(píng)分 |
DeepSeek-v3 | 優(yōu)秀,支持完整函數(shù)調(diào)用 | 極佳 | 快速 | ★★★★★ |
Claude-3.5 | 良好,少量格式問(wèn)題 | 很好 | 中等 | ★★★★☆ |
Qwen-Turbo | 中等,需要特殊處理 | 極佳 | 快速 | ★★★★☆ |
GPT-4o | 優(yōu)秀,工具調(diào)用穩(wěn)定 | 良好 | 較慢 | ★★★★☆ |
GPT-4o-mini | 不穩(wěn)定,經(jīng)常需要重試 | 中等 | 快速 | ★★★☆☆ |
踩坑記錄
1. google_search 無(wú)法調(diào)用
?? Tool 'google_search' encountered a problem: HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: /search?q=Google+homepage&num=12&hl=en&start=0&safe=active (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000020960CF1520>, 'Connection to www.google.com timed out. (connect timeout=5)'))
解決方式:
- 科學(xué)上網(wǎng)全局代理,或者切換穩(wěn)定的谷歌代理站點(diǎn)
- 已經(jīng)有issue提供了pr, 支持將google search替換成baidu搜索
2. 缺少瀏覽器組件
Error: Browser action 'navigate' failed: BrowserType.launch: Executable doesn't exist at C:\Users\admin\AppData\Local\ms-playwright\chromium-1148\chrome-win\chrome.exe
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated. ║
║ Please run the following command to download new browsers: ║
║ ║
║ playwright install ║
║ ║
║ <3 Playwright Team ║
╚════════════════════════════════════════════════════════════╝
需要先下載瀏覽器組件
python -m playwright install chromium
pip install playwright
如果依然安裝失敗,可以嘗試:
pip install --no-deps -r requirements.txt
# 對(duì)于playwright,我使用這個(gè)方法成功解決了問(wèn)題
pip install playwright==1.40.0 --no-build-isolation
playwright install chromium
# 如果仍然遇到問(wèn)題,嘗試手動(dòng)安裝核心依賴
pip install pydantic==2.5.2 langchain==0.1.6 beautifulsoup4==4.12.3
3. conda環(huán)境
我用的版本是python3.10,沒(méi)有使用python3.12, 沒(méi)有出現(xiàn)一些issue中提到的conda環(huán)境問(wèn)題
總結(jié)
當(dāng)面對(duì)高度復(fù)雜、邏輯交織的任務(wù)時(shí),OpenManus 的任務(wù)規(guī)劃能力有時(shí)會(huì)顯得力有不逮。以涉及多部門(mén)協(xié)同、多環(huán)節(jié)銜接的大型項(xiàng)目為例,系統(tǒng)在梳理任務(wù)優(yōu)先級(jí)和優(yōu)化執(zhí)行順序時(shí),可能會(huì)出現(xiàn)偏差,從而導(dǎo)致任務(wù)執(zhí)行過(guò)程中出現(xiàn)資源浪費(fèi)、進(jìn)度延誤等問(wèn)題,影響整體效率。
此外,在實(shí)際測(cè)試中,OpenManus 偶爾會(huì)在任務(wù)執(zhí)行過(guò)程中出現(xiàn)卡頓或報(bào)錯(cuò),尤其是在多任務(wù)并行且負(fù)載較高的情況下,這種現(xiàn)象更為突出。
本文轉(zhuǎn)載自公眾號(hào)AI 博物院 作者:longyunfeigu
原文鏈接:??https://mp.weixin.qq.com/s/2Wm3nGzSNU6EWpKrzUfJLw??
