OpenManus 深度解读:无邀请码的通用 AI Agent 实践
基于 OpenManus 官方仓库实际代码,解读其简洁架构、工具层、浏览器自动化与 MCP 扩展方式,并给出本地部署与竞品对比。
2025 年初,Manus AI 凭借"邀请码"机制制造了稀缺感。OpenManus 由 MetaGPT 团队核心成员发起,承诺任何人都可以在本地跑起功能完整的通用 Agent,无需邀请码。
三种运行模式
python main.py:通用单 Agent 对话python run_mcp.py:MCP 工具版python run_flow.py:实验性多 Agent 流程
安装部署
推荐 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/FoundationAgents/OpenManus.git
cd OpenManus
uv venv --python 3.12
source .venv/bin/activate
uv pip install -r requirements.txt
playwright install
配置 LLM
cp config/config.example.toml config/config.toml
编辑 [llm] 段填入 model / base_url / api_key。支持 Anthropic、OpenAI、Azure、Bedrock、Ollama 等。
架构拆解
app/agent/base.py:BaseAgent维护 state 和 memoryapp/agent/manus.py:通用ManusAgent,组合本地工具与 MCPapp/tool/:PythonExecute、BrowserUseTool、Crawl4AITool、StrReplaceEditor、bash、mcp、ask_human、terminateapp/schema.py:包含Memory消息列表(非持久化)
Memory 说明
OpenManus 没有独立的 app/memory 模块。Memory 是 app/schema.py 中的简单消息列表,带 max_messages 截断,支持 base64 图片。不提供长期持久化或跨会话检索。
浏览器能力
BrowserUseTool 基于 browser-use + Playwright;Crawl4AITool 负责结构化提取。
MCP 扩展
配置在 config.toml 的 [mcp] 段:
[mcp]
server_reference = "app.mcp.server"
server_reference 指向一个 Python 模块。启动:
python run_mcp.py
# 或 sse 模式
python run_mcp.py --connection sse --server-url http://localhost:8000/sse
与 Claude Desktop 的 JSON 配置方式不同,OpenManus 偏向"内嵌 Python MCP Server 模块"。
实战:技术调研
指令"研究 OpenManus 与 LangGraph 架构差异" → Agent 用浏览器打开仓库/文档 → Crawl4AI 提取正文 → Memory 保存中间结果 → 最终写入 Markdown。
竞品对比
| 维度 | OpenManus | LangGraph | CrewAI |
|---|---|---|---|
| 范式 | ReAct Tool-Call | 状态机图 | 角色任务派发 |
| 浏览器 | 开箱即用 | 需手动集成 | 需手动集成 |
| 工具扩展 | 本地工具 + MCP 模块 | Tool Node | Tool 装饰器 |
| 上下文 | 内存消息列表 | checkpoint | 基础历史 |
| 断点续传 | 不支持 | 原生 | 不支持 |
| 上手难度 | 低 | 中 | 低 |
核心差异化:开箱即用的浏览器能力 + 极低上手门槛。
适用场景
适合:网页调研、多步骤自主任务、本地原型验证、学习 Agent 原理。 不适合:强事务一致性生产流、复杂多角色协作、需要跨会话持久记忆。
OpenManus-RL
团队与 UIUC 合作推出 OpenManus-RL,用 GRPO 等 RL 方法提升规划与工具选择能力。
核心价值:不是让 Agent 无所不能,而是让 Agent 立即可用。