五分鐘讀懂Manus平替:深度解析OpenManus 如何重新定義Multi Agent? 原創
最近,AI圈子里有個詞兒特別火——Agent(智能體)。隨著大模型在推理與生成上的能力不斷提升,Agent技術也迎來了它的“高光時刻”。特別是3月初,Manus展示的多智能體Demo,直接讓整個行業沸騰了。緊接著,國內的DeepWisdom MetaGPT團隊和CAMEL AI團隊也迅速跟進,開源了OpenManus和OWL,瞬間在社交媒體和GitHub上掀起了一股多智能體技術的熱潮。
今天,我們就來聊聊這個開源項目OpenManus,看看它到底有什么魔力,能在短短幾天內收獲過萬Star。
3小時上線初版
OpenManus的研發團隊在1小時內實現了核心功能,3小時內上線了初版本。我覺得這種高效并非偶然,而是源于團隊在多智能體框架上的長期技術積累,以及系統內部設計的高度抽象和可組合性。
OpenManus的核心設計思路非常清晰:極簡、可插拔、工具驅動。它通過Prompt(提示詞)和Tools(工具)的組合,快速“拼裝”出新的Agent,賦予其處理不同類型任務的能力。這種設計不僅降低了開發門檻,還讓Agent的定制變得異常靈活。
設計理念
OpenManus本質上是一個多智能體系統(Multi-Agent System)。與單一大模型的“大而全”不同,多智能體系統通過“規劃—執行—反饋”的循環,逐步解決復雜的現實問題。它的設計思路可以概括為以下幾點:
- 極簡可插拔框架OpenManus的核心是一個精簡的Agent框架,強調模塊化和可擴展性。通過Prompt和Tools的自由組合,開發者可以快速定義Agent的行為邏輯和功能。比如,Prompt決定了Agent的思考方式,而Tools則提供了具體的行動能力(如代碼執行、搜索、文件操作等)。
- 工具驅動的ReAct AgentOpenManus基于ReAct(Reason + Act)模式,以工具為核心驅動Agent的行動。Prompt引導Agent的推理和邏輯,而Tools則賦予Agent行動能力。這種設計讓Agent不僅能“想”,還能“做”。
- 規劃能力處理復雜任務OpenManus延續了Manus的多智能體規劃優勢,通過PlanningTool對用戶需求進行高層規劃。它將復雜任務分解為線性的子任務計劃,顯著提升了任務的成功率。這種“先規劃,后執行”的思路,在處理長鏈任務時尤為有效。
- 動態Agent分配與工具調度當一個任務被拆解為多個子任務后,系統會根據任務類型,動態分配給預先定義或適配的Agent。這種“臨時分配 + 工具協作”的機制,最大化利用了多模型、多工具的組合優勢,提高了系統的靈活性和效率。
工作流程
OpenManus的運行流程非常清晰,可以概括為以下幾個步驟:
- 用戶需求輸入用戶在前端或命令行中輸入復雜需求,比如“寫一段代碼并自動部署到服務器上”。
- PlanningTool規劃系統調用PlanningTool,對需求進行分析與分解,形成一個線性結構的任務序列。比如,將需求拆解為“分析需求→編寫代碼→測試修復→部署驗證”。
- 任務分配與執行系統根據任務類型,動態分配給最合適的Agent。每個Agent采用ReAct循環與Tools交互,完成子任務。
- 結果匯總與狀態更新子任務執行完畢后,系統會將結果進行總結與壓縮,存入共享內存。如果任務順利完成,進入下一子任務;如果失敗,系統會進行自動調試或重新規劃。
- 整體產出所有子任務執行完畢后,系統對整體結果進行匯總并返回給用戶。
架構
OpenManus的工程結構非常簡潔,截止到目前核心僅包含約30個文件,依賴庫也相對簡單(如pydantic、openai、playwright等)。它的架構由四個主要模塊構成:
- 核心多智能體框架(Agent)采用清晰的繼承層次,自底向上逐步增強功能。從BaseAgent到ReActAgent,再到ToolCallAgent,最后到Manus,每一層都通過定制Prompt和Tools賦予Agent不同的能力。
- 工具層(Tools)工具模塊是OpenManus的行動基礎,包括Python執行、網絡搜索、文件讀寫、任務規劃等。每個工具都繼承自BaseTool,具有高度的可擴展性。
- 提示詞模塊(Prompt)Prompt模塊包含了各種Agent使用的指令模板,定義了Agent的行為邏輯和思考方式。
- 執行流程模塊(Flow)Flow模塊負責任務的高層編排和執行流程管理,確保任務按計劃逐步完成。
不同模型實測效果
通過測試,我發現不同模型在OpenManus的使用效果差異明顯:
模型 | 工具調用能力 | 中文理解 | 執行效率 | 我的評分 |
DeepSeek-v3 | 優秀,支持完整函數調用 | 極佳 | 快速 | ★★★★★ |
Claude-3.5 | 良好,少量格式問題 | 很好 | 中等 | ★★★★☆ |
Qwen-Turbo | 中等,需要特殊處理 | 極佳 | 快速 | ★★★★☆ |
GPT-4o | 優秀,工具調用穩定 | 良好 | 較慢 | ★★★★☆ |
GPT-4o-mini | 不穩定,經常需要重試 | 中等 | 快速 | ★★★☆☆ |
踩坑記錄
1. google_search 無法調用
?? 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)'))
解決方式:
- 科學上網全局代理,或者切換穩定的谷歌代理站點
- 已經有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
# 對于playwright,我使用這個方法成功解決了問題
pip install playwright==1.40.0 --no-build-isolation
playwright install chromium
# 如果仍然遇到問題,嘗試手動安裝核心依賴
pip install pydantic==2.5.2 langchain==0.1.6 beautifulsoup4==4.12.3
3. conda環境
我用的版本是python3.10,沒有使用python3.12, 沒有出現一些issue中提到的conda環境問題
總結
當面對高度復雜、邏輯交織的任務時,OpenManus 的任務規劃能力有時會顯得力有不逮。以涉及多部門協同、多環節銜接的大型項目為例,系統在梳理任務優先級和優化執行順序時,可能會出現偏差,從而導致任務執行過程中出現資源浪費、進度延誤等問題,影響整體效率。
此外,在實際測試中,OpenManus 偶爾會在任務執行過程中出現卡頓或報錯,尤其是在多任務并行且負載較高的情況下,這種現象更為突出。
本文轉載自公眾號AI 博物院 作者:longyunfeigu
原文鏈接:??https://mp.weixin.qq.com/s/2Wm3nGzSNU6EWpKrzUfJLw??
