OpenManus 源码学习
以 ReAct/工具调用循环为核心,支持浏览器、代码执行、沙箱和 MCP 的通用任务 Agent。这不是 API 速查表,而是一条可以重复走的源码路线:每天用 30 分钟,从一个真实相对路径出发,先用类比建立直觉,再把它接回整条运行链路。
开篇 · 这是个什么项目
OpenManus 可以先想成一间能上网写代码的数字助理。它的代码不是一堆孤立文件:入口接到需求,核心对象做判断,工具或模型完成工作,状态把结果交给下一个环节。
架构全景(动起来看)
发光扫过的每一层都是一次任务可能经过的站点。不同仓库命名不同,但「接入 → 编排 → 核心能力 → 资源」的责任边界很相似。
怎么使用这份教程
每天 30 分钟
6 讲,每讲先问问题,再给本质和大白话。
真实相对路径
所有路径都从项目根目录算,不把你的机器路径写进源码引用。
先验证再推理
每页都有可复制 bash 命令;文件版本变化时以本地实际内容为准。
可迁移方法
学会从入口、数据结构、循环和扩展点读任何 AI 项目。
CLI 入口与资源清理
main.py:跟踪 Manus.create、run 与 cleanup。
配置对象如何装配
app/config.py:认识模型、工作目录和 MCP 配置来源。
状态、消息与 Memory
app/schema.py:理解运行中最重要的数据对象。
BaseAgent 的步进循环
app/agent/base.py:阅读状态转换、最大步数与卡住检测。
ToolCallAgent 的思考与执行
app/agent/toolcall.py:理解 LLM 工具调用的循环骨架。
Manus 默认能力装配
app/agent/manus.py:查看默认工具和 MCP 工具动态加入。
系统提示词控制策略
app/prompt/manus.py:理解提示词如何约束下一步行动。
Tool 基类和参数契约
app/tool/base.py:学习怎样定义可供模型调用的工具。
ToolCollection 的工具注册
app/tool/tool_collection.py:理解名称查找、schema 输出与执行分发。
Python 执行工具
app/tool/python_execute.py:阅读代码执行、结果收集和错误返回。
浏览器工具与上下文
app/tool/browser_use_tool.py:连接浏览器动作与下一轮上下文。
PlanningFlow 的任务规划
app/flow/planning.py:理解计划生成、更新和执行顺序。
FlowFactory 选择运行模式
app/flow/flow_factory.py:学习流程实例化入口。
SWE 专项 Agent
app/agent/swe.py:比较通用 Agent 与软件工程 Agent 的差异。