1. OpenManus 基础介绍
OpenManus 由 MetaGPT 团队创立的一个开源项目,于2025年3月发布。
OpenManus 是一个简洁通用的 Agent 框架,通过可插拔的 Tools 和 Prompt 组合设计,支持 Computer Use、Browser Use 和 Planning Use 等多种工具调用能力。
OpenManus 网址:https://github.com/mannaandpoem/OpenManus
2. OpenManus 支持的三种模式
2.1. 单代码模式
- 通过 python man.py 启动
- 异步执行 main 函数, 接收提示词作为参数,调用 Mnaus().run 函数执行实际逻辑
2.2. flow 流程模式
- 通过 python run_flow.py 启动
- 异步执行 run_flow() 函数, 接收提示词作为参数,执行过程分为两步:
- 通过 FlowFactory.create_flow() 创建 flow 对象;
- 调用 flow.execute(prompt) 执行实际逻辑
2.3. MCP 模式
- 通过 python run_mcp_server.py 启动 mcp 服务端
- 通过 python run_mcp.py 启动 mcp 客户端
- 异步执行 run_mcp 函数,支持三种场景:
- 单代理模式(--prompt):执行 MCPRunner().run_single_prompt()
- 交互模式(--interactive):执行 MCPRunner().run_interactive()
- 其他:执行 MCPRunner().run_default()
- 支持两种连接方式:
- stodio:stdio(Standard Input/Output,标准输入输出)来进行交互的。客户端通过启动服务器子进程,并利用标准输入(stdin)和标准输出(stdout)建立双向通信。这种模式导致 MCP 客户端与服务器之间存在强耦合,且每个服务器进程只能与启动它的客户端通信(1:1 的关系)
- sse:SSE(Server-Sent Events,服务器发送事件)协议进行通信,使服务器能够作为一个独立运行的进程,支持多个客户端的灵活连接、使用和断开。基于 SSE 的服务器和客户端可以是完全解耦的进程,甚至运行在不同的节点上,从而提供更高的灵活性和扩展性。
3. OpenManus 包图
- app/ -- 包含所有核心组件的主应用程序包
- agent/ -- 包含处理任务执行逻辑的代理实现
- flow/ -- 管理代理之间的高级工作流和编排
- mcp/ -- MCP协议的 服务端实现
- prompt/ -- 提示词相关的实现
- sandbox/ -- 沙箱环境的实现
- tool/ -- 工具集
- bedrock.py -- Amazon bedrock相关
- config.py -- 配置管理
- exceptions.py -- 异常管理
- llm.py -- LLM 通信接口实现
- logger.py -- 日志管理
- schema.py -- 数据模型和架构定义
- 入口函数:
- main.py -- 运行单个代理的简单入口函数
- run_flow.py -- 在流程中运行代理的入口函数
- run_mcp.py -- 运行 MCP 客户端的入口函数