第 0 篇:OpenManus 深度分析与文档系列计划
系列 :OpenManus 源码级深度解读(Master 分支)
分析对象 :FoundationAgents/OpenManus(前身 mannaandpoem/OpenManus)
版本锚点 :master @
3309bf4e416fb1c74b008f3e86494439a31bad53(2026-08-22 推送,58k+ stars)文档参考 :DeepWiki 自动生成文档 https://deepwiki.com/FoundationAgents/OpenManus(8 大章 43 页)
阅读本文你将了解: 本系列如何切分、每一篇讲什么、每篇对应哪些源码入口(先配入口再下笔)、官方/DeepWiki 章节与本系列的覆盖映射。
1. 系列定位
OpenManus 是 MetaGPT 社区核心成员在 2025 年初用 3 小时 完成的开源通用 Agent 框架原型,如今已演化为 58k stars 的成熟项目。它用 约 4700 行核心 Python 代码 实现了一套完整的 think-act 循环、多 Agent 协作、工具生态、MCP 集成与沙箱执行体系------是学习"Agent Harness 工程"的最佳解剖标本之一:体量足够小可以打穿每一行,架构又足够完整覆盖了 ReAct、Planning、MCP、沙箱四大主题。
本系列遵循"四视角"方法论(架构 / 源码 / 生产 / 进阶),所有结论锚定 完整仓库相对路径:行号,版本锁定 master @ 3309bf4,保证可复现。
2. 仓库内核地图(源码镜像实测)
om-src/
├── main.py / run_mcp.py / run_flow.py / sandbox_main.py # 四条入口
├── app/
│ ├── agent/ # Agent 层:base → react → toolcall → manus/mcp/browser/swe/data_analysis/sandbox_agent
│ ├── flow/ # 编排层:base → planning(PlanningFlow 多 Agent 编排)
│ ├── llm.py # LLM 门面(776 行,单例 + 多供应商 + token 预算)
│ ├── bedrock.py # AWS Bedrock 适配
│ ├── config.py # 配置单例(tomllib 加载 config.toml)
│ ├── schema.py # Message/Memory/AgentState/ToolCall 数据契约
│ ├── prompt/ # 各 Agent 的 system_prompt / next_step_prompt
│ ├── tool/ # 工具生态:base/tool_collection + 20+ 工具实现
│ │ ├── mcp.py # MCPClients / MCPClientTool
│ │ ├── sandbox/ # 沙箱侧工具(shell/files/browser/vision)
│ │ ├── search/ # 多引擎搜索(Google/Bing/Baidu/DuckDuckGo)
│ │ └── chart_visualization/ # Python→Node.js 图表管线
│ ├── mcp/server.py # 内置 MCP Server(把 OpenManus 工具暴露为 MCP 服务)
│ └── sandbox/core/ # 本地 Docker 沙箱(manager/sandbox/terminal)
├── protocol/a2a/ # A2A (Agent-to-Agent) 协议接入
└── tests/ # 沙箱与工具测试
3. 篇目规划:DeepWiki 章节 ↔ 源码入口 ↔ 篇目(三列索引)
DeepWiki 为该仓库自动拆分了 8 大章 43 页(章节树于 2026-09-05 实测抓取)。按"一个二级章节簇 = 一篇"的合并判据(内聚共享同一条源码主链路),映射为 7 篇正文 + 收尾:
| 篇目 | DeepWiki 章节 | 源码入口(file:line) | 覆盖视角 |
|---|---|---|---|
| 01 执行引擎全景:think-act 循环 | 1-introduction / 1.1~1.3 / 3.1 | app/agent/base.py:116、app/agent/react.py:33、app/agent/toolcall.py:39、app/agent/manus.py:41、main.py:17 | 架构/源码 |
| 02 配置系统与多供应商 LLM 封装 | 2-configuration / 4-llm-integration | app/config.py:197、app/llm.py:174、app/llm.py:45、app/bedrock.py:1 | 源码/生产 |
| 03 工具生态:BaseTool 与 ToolCollection | 5-tool-ecosystem / 5.1 / 5.4 / 5.6 | app/tool/base.py:78、app/tool/tool_collection.py:9、app/tool/python_execute.py:1、app/tool/str_replace_editor.py:1 | 源码/进阶 |
| 04 浏览器、搜索与数据可视化管线 | 5.2 / 5.3 / 5.5 | app/tool/web_search.py:1、app/tool/crawl4ai.py:1、app/tool/chart_visualization/data_visualization.py:1、app/agent/browser.py:1 | 架构/生产 |
| 05 MCP 集成:客户端、服务端与工具桥接 | 6-mcp / 6.1~6.3 | app/tool/mcp.py:1、app/mcp/server.py:1、app/agent/manus.py:83 | 源码/进阶 |
| 06 沙箱系统:Docker 本地沙箱与 Daytona | 7-sandbox / 7.1~7.3 | app/sandbox/core/sandbox.py:1、app/sandbox/core/manager.py:1、app/daytona/sandbox.py:1、app/agent/sandbox_agent.py:1 | 架构/生产 |
| 07 编排与规划:PlanningFlow 多 Agent 协作 | 1.3 / 3.4 / 8-architecture-patterns | app/flow/planning.py:45、app/flow/base.py:9、app/tool/planning.py:1、run_flow.py:11 | 架构/进阶 |
| 99 收尾总结与设计思想提炼 | 8-developer-guide / 8.1~8.5 | 全系列汇总 | 综合 |
章节覆盖率口径:DeepWiki 8 大章全部覆盖;43 个子页按内聚合并进 7 篇正文(5.2/5.3/5.5 合并为 04 篇,6.x 整章并入 05 篇,7.x 整章并入 06 篇,8.x 拆入 07 与 99 篇),覆盖率 = 8/8 章、43/43 页(含合并)。
4. 环境准备
- Python 3.12+(
setup.py:43要求),uv venv --python 3.12 && uv pip install -r requirements.txt - 配置:
cp config/config.example.toml config/config.toml(不创建时框架自动回退读取 example,见app/config.py:217-226) - 可选:Docker(本地沙箱)、Daytona API Key(云沙箱)、MCP server 配置(
config/mcp.example.json)
5. 批次交付计划
- 批次 1(本轮):00 计划 + 01 样板篇(打穿 Agent 执行引擎)→ 过门禁 → 确认标准
- 批次 2:02、03(配置/LLM 与工具生态)
- 批次 3:04、05(浏览器搜索可视化与 MCP)
- 批次 4:06、07、99(沙箱、编排、收尾)