引言
在AI智能体领域,Monica团队近期发布的Manus被誉为全球首个通用型AI智能体。该项目推出后迅速爆红,邀请码一号难求,随之而来的是各路开发者快速构建了众多类似的开源替代方案。其中,MetaGPT团队的5位工程师仅用3小时就开发完成了一个开源版本------OpenManus,短短几天时间便获得超过3万的GitHub星标,再次引发行业广泛关注。本文将深入解析OpenManus的核心技术原理、架构设计和实际使用体验,带领读者一起探索这个备受瞩目的开源AI智能体框架。
OpenManus项目全面概述
OpenManus是一个完全开源的通用AI智能体框架,其核心理念是"No fortress, purely open ground"(无堡垒,纯开放之地)。
项目核心特点:
- 完全开源,无需任何邀请码即可立即使用
- 支持多种复杂任务类型的智能处理
- 提供强大的浏览器自动化能力
- 内置Python代码执行环境
- 实现了高效的多智能体协作流程
- 提供丰富且可扩展的工具调用机制
OpenManus的核心技术原理
精心设计的架构体系
OpenManus采用了高度模块化、分层的架构设计,大量运用了面向对象的设计模式和最佳实践。系统按照模块职责清晰划分为多个功能层次:
- 应用层:主入口和运行文件(main.py、run_flow.py等)
- 智能体层:实现各种代理的核心行为(app/agent/)
- 工具层:提供各种功能工具的实现(app/tool/)
- 基础设施层:配置管理、日志系统、LLM接口等
项目目录结构清晰直观:
app/
:核心应用代码agent/
:各类智能体实现(Manus、Browser、Tool call等)tool/
:工具集合实现(Python执行器、浏览器操作、文件处理等)flow/
:多智能体协作的流程管理系统prompt/
:存储系统提示模板和指令集
config/
:配置文件目录examples/
:示例代码和使用案例workspace/
:工作区文件夹,用于存储智能体生成的所有文件
OpenManus的工作流程详解
OpenManus的工作流程主要遵循"plan->action->review->action->review..."的循环模式,直到触发结束条件。具体流程如下:
-
用户输入处理阶段:
- 用户输入prompt后,系统自动创建智能体实例并传递用户指令
- 智能体将用户输入存储到内部记忆系统(Memory)中
-
任务计划制定阶段:
- 专门的规划智能体调用LLM针对prompt进行系统化的任务拆分
- 将复杂问题科学地拆解成一系列逻辑连贯的子任务序列
-
思考与行动循环阶段:
- 思考(Think):分析当前状态和历史记录,智能选择最合适的工具
- 行动(Act):精确执行选定的工具完成特定任务
- 观察(Observe):全面收集工具执行的所有结果数据
- 更新记忆:将执行结果记录到内部记忆系统
-
结果输出阶段:
- 当满足终止条件(达到最大步数或任务完成标志)时,返回完整结果给用户
以下是OpenManus核心工作流程的详细流程图:

核心代码实现解析
在agent/planning.py
文件中,OpenManus通过以下关键代码创建初始任务计划:
python
async def create_initial_plan(self, request: str) -> None:
"""Create an initial plan based on the request."""
logger.info(f"Creating initial plan with ID: {self.active_plan_id}")
messages = [
Message.user_message(
f"Analyze the request and create a plan with ID {self.active_plan_id}: {request}"
)
]
self.memory.add_messages(messages)
response = await self.llm.ask_tool(
messages=messages,
system_msgs=[Message.system_message(self.system_prompt)],
tools=self.available_tools.to_params(),
tool_choice=ToolChoice.AUTO,
)
# ... 后续处理代码
而在agent/toolcall.py
文件中,实现了智能体思考和行动的核心功能:
python
async def think(self):
"""Process current state and decide next actions using tools"""
# ... 让LLM智能选择最合适的工具执行任务
response = await self.llm.ask_tool(
messages=self.messages,
system_msgs=[Message.system_message(self.system_prompt)]
if self.system_prompt
else None,
tools=self.available_tools.to_params(),
tool_choice=self.tool_choices,
)
# ... 后续处理代码
async def act(self):
"""Execute tool calls and handle their results"""
# ... 调用具体的工具执行任务
for command in self.tool_calls:
result = await self.execute_tool(command)
# ... 后续处理代码
OpenManus详细安装与使用指南
安装OpenManus环境
OpenManus提供了两种便捷的安装方法,强烈推荐使用uv方式进行安装。
方法一:使用conda环境管理
bash
conda create -n open_manus python=3.12
conda activate open_manus
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
pip install -r requirements.txt
方法二:使用uv包管理工具(推荐方式)
本文测试环境为Windows 11系统,因此下面脚本使用的是Windows PowerShell命令。不过Linux/macOS用户也可参考注释中的对应命令。
bash
# 安装uv工具
# Linux/macOS系统使用:
# curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows PowerShell使用:
iwr -useb https://astral.sh/uv/install.ps1 | iex
# 安装OpenManus项目
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
uv venv --python 3.12
# source .venv/bin/activate # Unix/macOS系统使用
.venv\Scripts\activate # Windows系统使用
uv pip install -r requirements.txt
# 安装浏览器自动化工具(可选但推荐)
playwright install
为什么强烈推荐使用uv?
uv是一款现代化的Python包管理工具,相比传统的pip和conda,它具有以下显著优势:
- 极速安装效率:uv采用Rust语言编写,安装依赖包的速度比传统pip快5-10倍
- 智能依赖解析:uv能更准确地解析和处理复杂的依赖关系网络
- 并行下载与安装:uv支持多线程并行下载和安装包,大幅提高配置效率
- 高效缓存机制:uv拥有更智能的缓存策略,有效减少重复下载
- 一体化虚拟环境管理:uv集成了虚拟环境创建和管理功能
- 最小化依赖冲突:uv的先进依赖解析算法可以有效减少依赖冲突问题
对于大型复杂项目如OpenManus,使用uv可以显著减少环境配置时间,并有效降低依赖冲突的风险。
配置OpenManus连接大语言模型
OpenManus需要正确配置LLM API才能正常使用。详细步骤如下:
- 创建个人配置文件:
bash
cp config/config.example.toml config/config.toml
- 编辑
config/config.toml
添加您的API密钥和自定义设置:
toml
# 全局LLM配置
[llm]
model = "gpt-4o" # 默认使用OpenAI的gpt-4o模型
base_url = "https://api.openai.com/v1"
api_key = "sk-..." # 替换为您的OpenAI API密钥
max_tokens = 4096
temperature = 0.0
值得特别注意的是,虽然官方文档默认推荐使用OpenAI的gpt-4o模型,但只要遵守OpenAI接口协议规范的其他API服务商也完全可用。在本文测试中,我成功将配置更换为常用的API供应商OpenRouter,并成功调用了目前Agent能力最强的大语言模型Claude 3.7 Sonnet。
只需按照下面的示例修改配置文件中的相关参数即可轻松完成替换:
toml
[llm]
model = "anthropic/claude-3.7-sonnet" # 使用的大语言模型
base_url = "https://openrouter.ai/api/v1" # API服务端点URL
api_key = "sk-or-..." # 替换为您的OpenRouter API密钥
max_tokens = 8192 # 响应中的最大token数量
temperature = 0.0 # 控制生成结果的随机性
OpenManus实战测试与效果展示
安装配置完成后,只需执行一行简单命令即可立即运行OpenManus:
bash
python main.py
为了与原版Manus的运行效果进行直观对比,我在Manus上选取了一个Tesla股票分析案例作为测试基准。如下图所示,Manus通过系统规划、数据搜集、综合分析等一系列步骤,最终生成了一份完整的专业分析报告。

因此,在OpenManus的命令行交互界面中,我输入了完全相同的指令:"帮我做一下Tesla的股票投资分析报告,以Markdown格式输出"。随后,OpenManus立即开始执行任务规划,自动启动浏览器搜集相关资料,最后成功撰写了一份结构完整的专业分析报告。
下图展示了OpenManus工作过程的实时截图,可以清晰看到OpenManus自动打开了浏览器并主动搜集Tesla相关财务数据和市场信息:

最终,OpenManus按照用户要求将分析结果以Markdown格式保存到了workspace目录下。我使用Markdown Preview Enhanced插件在Cursor编辑器中打开了生成的文件,效果如下图所示。不难发现,OpenManus生成的报告在结构组织和内容质量上与原版Manus的效果高度相似。

OpenManus多模型性能测试与成本分析
借助OpenRouter的灵活接口,我得以自由切换不同大语言模型来执行相同的股票分析任务。下面是详细的测试结果记录:
-
GPT-4o测试:
- 实验结果:20步操作后卡死,重复困在某个特定步骤上
- 任务完成情况:任务未能成功完成
- API调用成本:0.6美元
-
Claude 3.7 Sonnet测试:
- 实验结果:仅用17步顺利完成所有任务
- 任务完成质量:生成的分析报告专业度高,内容丰富
- API调用成本:0.912美元
-
Gemini Flash 2.0测试:
- 实验结果:同样用17步完成全部任务
- 任务完成质量:生成的报告质量一般,部分分析深度不足
- API调用成本:仅需0.028美元,极具成本优势
需要说明的是,20步操作是OpenManus的默认最大尝试步数限制。通过以上对比测试可以清晰看出,OpenManus与不同大语言模型的适配效果存在明显差异。即便是高端的GPT-4o模型也不能保证每次都能成功执行完整流程,而Claude 3.7 Sonnet在任务完成效率和输出质量上表现最为出色,但成本也相对较高。从性价比角度考虑,Gemini Flash 2.0虽然输出质量稍逊,但其极低的调用成本使其成为预算有限场景下的理想选择。
应用前景与发展趋势
随着AI智能体技术的迅猛发展,以下几个方向将成为行业未来发展的重点:
- 多模态交互能力:智能体将能同时处理文本、图像、音频等多种输入和输出
- 更强大的推理能力:通过工具链优化和新型架构提升智能体的理解和推理能力
- 自主学习与适应:智能体将具备从交互中学习和改进自身能力的特性
- 更低的使用门槛:简化部署流程,降低技术门槛,实现更广泛的应用
OpenManus作为一个开源项目,有望在这些趋势中保持活跃发展,并通过社区协作不断完善功能。
结论与展望
OpenManus作为一个纯开源的通用AI智能体框架,充分展示了如何构建一个功能强大且架构优雅的智能体系统。它采用了模块化、分层的设计理念,具有出色的可扩展性和灵活性,同时该项目也在持续优化中,未来表现值得期待。
随着人工智能领域的快速发展,智能体技术将在更多场景中发挥关键作用。OpenManus作为一个开源的通用智能体框架,为研究人员和开发者提供了一个极具价值的起点和参考实现,非常值得AI领域从业者深入研究和关注。