OpenManus源码分析与实践

OpenManus是什么:

由于Manus不开源(邀请码最高炒到了5万人民币),OpenManus是MetaGPT团队产出的开源类Manus的多智能体框架。

OpenManus github链接:

github.com/mannaandpoe...

OpenManus代码目录结构:

OpenManus源码分析:

main.py文件是程序入口文件,运行该文件,执行流程如下:

1.创建Manus这个agent

2.运行agent.run(prompt)方法

Manus类继承关系:

OpenManus采用了清晰的分层架构设计,层次化设计体现了良好的面向对象思想,通过继承关系构建了一个灵活可扩展的智能体框架,其核心架构包括以下几个层次:

lua 复制代码
BaseAgent <-- ReActAgent <-- ToolCallAgent <-- Manus

代理层:分层设计的智能体系统

  1. BaseAgent: 代理的基础类,提供状态管理、内存管理和执行循环。
  2. ReActAgent: 实现思考-行动模式的代理基类,定义了think和act抽象方法。
  3. ToolCallAgent: 处理工具调用的代理,能够解析LLM返回的工具调用并执行。
  4. Manus: 最终用户使用的代理类,集成了多种工具,包括Python执行、Google搜索、浏览器操作和文件保存。

工具层:可插拔的能力扩展机制

OpenManus的一大技术亮点是其工具系统的设计。通过BaseTool抽象基类,项目实现了一套统一的工具接口,使得添加新工具变得简单直观。

这种设计有几个显著优势:

  1. 统一接口:所有工具都实现相同的接口,使得工具调用代码简洁一致。

  2. 参数验证:利用Pydantic的类型检查功能,确保工具参数的正确性。

  3. 可组合性:通过ToolCollection类,可以轻松组合多个工具,形成工具集。

OpenManus智能体默认集成了多种强大工具:
  1. PythonExecute():执行python代码的工具,使用的是exec内建工具执行代码
  2. GoogleSearch():执行google搜索的工具,检索问题相关的网站地址,默认10个地址
  3. BrowserUseTool():使用browser_use提供的浏览器工具,打开、浏览和使用网页,让OpenManus具备了与网页交互的能力,这是现代智能体的关键功能之一。
  4. FileSaver():文件保存工具,用来将最终回复的内容写到文件中
  5. Terminate():判断任务运行结束的工具

OpenManus的prompt:

ini 复制代码
name: str = "Manus"
description: str = (
    "A versatile agent that can solve various tasks using multiple tools"
)
system_prompt = "You are OpenManus, an all-capable AI assistant, aimed at solving any task presented by the user. You have various tools at your disposal that you can call upon to efficiently complete complex requests. Whether it's programming, information retrieval, file processing, or web browsing, you can handle it all."

next_step_prompt = """You can interact with the computer using PythonExecute, save important content and information files through FileSaver, open browsers with BrowserUseTool, and retrieve information using GoogleSearch.

PythonExecute: Execute Python code to interact with the computer system, data processing, automation tasks, etc.

FileSaver: Save files locally, such as txt, py, html, etc.

BrowserUseTool: Open, browse, and use web browsers.If you open a local HTML file, you must provide the absolute path to the file.
  • SYSTEM_PROMPT:定义了AI助手的身份和能力范围,设定用户期望,并引导 AI 以全能型助手的身份响应用户请求。
  • NEXT_STEP_PROMPT:列出了AI助手可用的工具及其功能,指导 AI 如何选择和使用工具,并要求AI在使用工具后提供反馈和下一步建议。

OpenManus执行过程程序流程图:ReAct模式的优雅实现

OpenManus的流程是一个比较典型的ReAct的Agent模式,中间Step()的部分就是Agent Loop的过程。

OpenManus技术创新与开源价值:

OpenManus虽然是一个在短短3小时内开发的项目,但其分层架构、工具系统、ReAct执行流程和提示词工程等技术亮点展示了令人印象深刻的技术创新:

  1. 多代理协作框架:通过BaseFlow类,OpenManus支持多个智能体协作,这是处理复杂任务的关键。BaseFlow 是一个抽象基类,用于支持多个Agent的执行流程管理。它提供了Agent集合的管理、主要Agent的指定以及流程执行的基础框架。子类必须实现 execute 方法来定义具体的流程执行逻辑。

  2. 异步编程模式:项目大量使用Python的异步编程特性,提高了执行效率,特别是在处理网络请求和工具调用时。

  3. 类型安全设计:利用Pydantic和Python的类型注解,确保了代码的健壮性和可维护性。

4.支持自定义模型接入(如GPT-4、Claude 3.5、qwen-max)

  1. 开放生态系统:作为开源项目,OpenManus允许社区贡献新工具和功能,形成丰富的生态系统。

Manus、OpenManus技术对比

与商业产品Manus相比,OpenManus虽然功能可能不够完善,但其开源性质和无需邀请码的特点,使其成为开发者学习和实验智能体技术的理想平台。正如项目文档所述:

Manus通过多智能体协作+工程化封装实现了AI代理的通用化突破,但其技术壁垒可能被开源项目(如OpenManus)快速追赶。

这一观点在OpenManus的源码中得到了验证。通过分析其架构和实现,我们可以看到,现代智能体技术的核心在于工具调用、多步骤规划和提示词工程,而这些OpenManus都已经实现。

OpenManus实践

相关推荐
wave7778 小时前
浅读deer-flow源代码,梳理流程
agent·ai编程
GitLqr9 小时前
AI洞察 | DeepSeek-V3.1发布,自进化智能体诞生!
llm·agent·deepseek
聚客AI12 小时前
📈超越Prompt Engineering:揭秘高并发AI系统的上下文工程实践
人工智能·llm·agent
Code_流苏14 小时前
DeepSeek V3.1深度解析:一个模型两种思维,迈向Agent时代的第一步!
开源·agent·思维·模型设计·deepseek·深度思索·dpv3.1
吾鳴17 小时前
AI智能体搭建平台全景指南:从入门到选型
agent
潘锦18 小时前
Multi-Agent 系统的主从架构
架构·agent·ai编程
AlfredZhao1 天前
手把手教你打造一个更懂你的AI翻译助手!
ai·agent·翻译·智能体·translation
AI大模型2 天前
SwanLab入门深度学习:Qwen3大模型指令微调
程序员·llm·agent
AI大模型2 天前
Anything LLM+LM Studio+SearXNG实现私有模型开启联网功能
程序员·llm·agent