卡卷网
当前位置:卡卷网 / 每日看点 / 正文

Manus发布一天后迅速出现OpenManus、OWL 等复刻项目,怎么做到的?

作者:卡卷网发布时间:2025-03-10 21:24浏览数量:100次评论数量:0次

萌新来答,请多指教~

非常感谢大家对OpenManus的支持,1 天涨 10k star,致敬开源

OpenManus 项目链接:github.com/mannaandpoem

Manus发布一天后迅速出现OpenManus、OWL 等复刻项目,怎么做到的?  第1张

首先,我非常感谢 @向劲宇 能邀请我一起来参与这个 OpenManus 开源项目。听完楼上向劲宇讲的故事后,我感到很激动。但实际上,3月6日那天下午五点多,我们还在开组会,我一边忙着处理公司手头的一些事情,比如软件工程 Benchmark 和经验学习的学术工作。开完组会后,我整个人感觉特别疲惫,只想吃完饭赶紧回家。


组会结束后,劲宇一直在那儿一个劲儿地跟我说,我们可以这样搞,那样搞,肯定能达到 Manus 的效果。我当时觉得劲宇就像一只苍蝇在我耳边嗡嗡作响,实在是太烦了,好想吃完晚饭就回家。
因为我第一次看 Manus 的演示视频时,没能完整看到视频结尾,所以当时我并不知道 Manus 是一个多智能体系统。从视频中的交互过程来看,我下意识地以为它是一个单智能体系统,于是非常震惊:一个单智能体为什么能达到这么好的效果?它是怎么规划的,怎么做到的?这也引出了我在开发 OpenManus 中的一个疑问:规划到底该怎么用,是给单智能体用,还是给多智能体用?

之后在吃晚饭时,我们聊了一下 Manus 的技术方案,最终我确认它是通过外部的规划来协调多智能体的。晚饭之后,就开始了 OpenManus 的开发。


3月7日凌晨四点多,劲宇提到我还在改代码。其实那时候,我正躺在床上睡觉,很开心也很激动自己发布了一个大约 70 star 的项目,躺在床上睡不着,脑子里想着明天会发生什么,接下来该怎么优化 OpenManus。然后我突然想起来代码里似乎有一个 BUG,于是立马起床打开电脑,在 OpenManus 上修复了一个 BUG。当然,项目里还有很多 BUG,希望开源社区能和我们一起贡献力量,完善这个 OpenManus 项目。


和劲宇不同的是,我完全没想过 OpenManus 会爆火。3月7日早上九点我就起床了,十点到公司正常上班。

背景

Manus 是一款通用的AI 智能体产品,从用户示例中展示了卓越的用户体验,整体交互给人感觉很不错。但从技术方案上来说,Manus使用了大量的业内共识的核心基础技术。在那天晚饭过程中,我们讨论了Manus的产品形态和技术路线,然后我们整体使用了三个小时左右的时间,开发出来 OpenManus 这个开源项目。


除开工程上的卓越工作,让我们分析Manus的算法实现:
Manus 是一个多智能体系统,它首先先使用PlanningTool做规划,形成一个包含多个任务的线性结构的计划,然后顺序执行每一个任务并动态分配给相应的 Agent。Agent 在执行每个任务的过程中,以 ReAct 循环的形式调用工具以完成每一个任务。

  1. 规划能力:Manus 将 PlanningTool 规划工具引入多智能体框架。在这里我想说一下 Planning 规划的重要性,Claude-3.7 在 SWEBench 上达到了,70% 解决率的效果,此前是49% 的 解决率。一部分提升来源于模型,另一部分就来源于规划。而从我们之前的工作,Data Interpreter 也可以证明规划在处理现实问题中的重要性和有效性。
    我们不仅会在多智能体上加入规划能力,也会尝试在单智能体上加上规划能力。
  2. 工具使用能力:猜测:Manus应该是Claude+一些其它自己post train的模型。Manus在工程上做了很大程度上的优化,这增强了它在不同场景下的工具使用能力。

目的

我觉得Manus产品交互做的挺好的,有很多技术也值得学习,至于OpenManus我们这边目前效果还很有限,我们没有单独调效果。
OpenManus 前期目标打算达到原始 Manus 的相同的效果,后续会依靠庞大的开源社区不断优化 Computer Use, Browser Use 和 Planning Use,以及工具调用的能力,从而给带来OpenManus更高的智能涌现~

方法

基础技术沉淀 & Insight

  1. 一个极简的Agent框架,应该是可插拔的Tools和 Prompt的组合,之后我们沿着这个思路,写了一个完整的Agent迷你框架。
  2. 而决定一个ReAct Agent( Reason和Act)的效果的关键是提示词引导和工具使用,在 OpenManus 中,Prompt控制了Agent整体的行为逻辑,Tools给定了Agent的行动空间,二者被定义就能完整诠释一个ReAct Agent。我在 React Agent 的基础上,基于Function Call 实现了一个轻量的 ToolCall Agent,它以更格式化的方式去选择和执行工具。OpenManus 也是基于 ToolCall Agent 去做的。
  3. 可插拔的优点是可组合,我可以把几个不同场景下的Tools组合到一起来创造一个新的Agent,定义也很方便,不需要单独写内部逻辑,只需要修改动作空间(Tools)。Tools本身就该是可组合的,我们的工作是把抽象做的更干净。提供丰富的工具集合,支持多种Agent 通过装备工具集可以灵活扩展在不同场景下的能力。
  4. 规划能力: OpenManus 继承了 Manus 的规划优势,通过 PlanningTool 实现任务分解,可以处理现实世界中的复杂问题。

OpenManus 工作流程

首先,OpenManus在接收到用户需求后,会使用PlanningTool形成一个包含多个任务的线性结构的计划,写入至一个 plan 的 markdowns 文件中去,然后OpenManus查看这个 Plan,从中依次取出每个任务,在执行任务时,会将该任务分配给最适合处理该任务的 Agent,这些 Agents 装备了不同的工具集,在处理不同任务时,有不同的优势。
注:Agent 分配是在执行每个任务时临时被分配的。这种动态分配的方式让系统更灵活,能够根据任务的具体需求和上下文选择最合适的 Agent。目前使用正则匹配对 Agent 进行任务的分配,如果没匹配到,则使用默认配置的 Agent 去执行任务。
未来,我们也会考虑让 LLM 去将任务分配给某个 Agent。但每次执行任务时都使用 LLM 识别意图并分配Agent,会增加计算成本和延迟。

我使用 LLM 为 OpenManus 项目生成了以下的类图和流程图,待后续更新。

  • 类图

Manus发布一天后迅速出现OpenManus、OWL 等复刻项目,怎么做到的?  第2张

  • 流程图

Manus发布一天后迅速出现OpenManus、OWL 等复刻项目,怎么做到的?  第3张

后续工作

我们前期会进行以下的工作,来提升 OpenManus 的效果

  1. 增强Planning能力
  2. 引入标准化评测 - 采用GAIA和SWE-Bench作为基准,持续评估和优化性能
  3. 拓展模型适配 - 从Claude-3-5扩展到DeepSeek V2.5,优化低成本应用场景
  4. 实现容器化部署 - 简化安装和使用流程
  5. 丰富示例库 - 增加更多实用案例,包含成功和失败示例的分析
  6. 前后端开发 - 提供UI 界面,提高用户体验
  7. RAG 模块集成 - 提供外部知识库以增强效果

作为一个小型但充满热情的团队,我们诚挚邀请有志同道合的开发者加入Contribute或参与运营。若您有兴趣,请通过以下链接填写申请,我们将每天查看并回复! 加入OpenManus团队:deepwisdom.feishu.cn/sh 期待与您共同打造更强大的OpenManus!


参考

  1. OpenManus: github.com/mannaandpoem
  2. Manus: manus.im/
  3. claude-computer-use: anthropic.com/news/3-5-
  4. claude-3-7-sonnet: anthropic.com/news/clau
  5. OpenHands: github.com/All-Hands-AI
  6. browser-use: github.com/browser-use/
  7. Data Interpreter: arxiv.org/pdf/2402.1867
END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码