1.1 核心定位
OpenManus 是一个多功能AI代理框架,通过组合工具链实现复杂任务自动化。其核心功能包括:
- 多工具联动
:支持 Python 执行、网页搜索、文件操作、浏览器控制等工具 - 智能流程规划
:内置规划代理(Planning Agent)自动拆解任务 - LLM 驱动交互
:基于 GPT-4 等模型实现自然语言交互 - 跨平台兼容性
:支持 Docker 部署和多种操作系统
二、代码架构深度解析
2.1 核心模块结构
2.2 关键组件详解
代理层(Agent)
Manus类( app/agent/manus.py):class Manus(ToolCallAgent):
available_tools = ToolCollection(
PythonExecute(), WebSearch(), BrowserUseTool(), FileSaver(), Terminate()
)规划代理( app/agent/planning.py):class PlanningAgent(ToolCallAgent):
async def act():
# 执行工具并更新计划状态
工具层(Tool)
基础工具抽象: class BaseTool:
name: str
description: str
async def execute(self, **kwargs): ...具体工具实现: class WebSearch(BaseTool):
async def execute(self, query):
# 调用搜索引擎API
流程控制
流程工厂( app/flow/flow_factory.py):class FlowFactory:
@staticmethod
def create_flow(flow_type):
if flow_type == FlowType.PLANNING:
return PlanningFlow(agents=agents)
三、开发流程实战指南
3.1 快速启动步骤
# 推荐使用 uv 安装(片段4)
uv pip install -r requirements.txt
python run_flow.py
3.2 核心执行流程
3.3 配置关键点
API 密钥配置( config/config.toml):[llm]
model = "gpt-4o"
api_key = "sk-..."浏览器配置( app/config.py):class Config:
def browser_config(self) -> BrowserSettings:
# 返回浏览器设置参数
四、典型应用场景
4.1 日本旅行规划案例
用户输入:
需要制定4月15-23日从西雅图出发的7日日本行程,预算2500-5000美元,包含历史遗迹、文化体验(剑道、茶道)和奈良鹿等元素,需生成带地图和日语短语的HTML手册。
执行流程:
- 规划阶段
:
使用 WebSearch查询景点信息PythonExecute处理预算计算 - 执行阶段
: BrowserUseTool访问旅游网站 FileSaver保存生成的HTML手册 - 输出结果
: await tool.execute(save_path="/output/travel_plan.html") 代理-工具协作:
class Manus(ToolCallAgent):
async def act():
tool = self.available_tools.get("WebSearch")
result = await tool.execute(query)流程执行器:
async def run_flow():
flow = FlowFactory.create_flow(FlowType.PLANNING)
await flow.execute(user_prompt)
示例输出:
五、代码结构深度解析
5.1 目录结构图
5.2 核心类关系
六、进阶开发技巧
6.1 新增工具开发
# 新建 tool/my_tool.py
classMyTool(BaseTool):
name ="my_tool"
asyncdefexecute(self, param):
# 实现工具逻辑
return"执行结果"
# 注册到代理
classCustomAgent(Manus):
available_tools.add_tool(MyTool())
6.2 自定义提示词
# 修改 prompt/manus.py
SYSTEM_PROMPT = "您现在是旅游规划专家..."
NEXT_STEP_PROMPT = "优先使用WebSearch获取最新景点信息..."
七、生态与社区
7.1 依赖管理
八、总结
OpenManus 通过模块化设计和强大的工具链,实现了从简单查询到复杂任务的全流程自动化。其核心优势在于:
- 灵活的代理架构
:支持多种代理类型和工具组合 - 清晰的执行流程
:从规划到执行的完整生命周期管理 - 丰富的扩展性
:通过插件机制实现功能扩展
通过本文的深度解析,开发者可以快速掌握该项目的核心原理和开发方法,实现从理解到实践的完整跨越。
