一、背景知识
1、Manus是啥?
借用Manus官网的话说,Manus是一款通用的AI助手,旨在实现将人类的想法转化为行动并准确实现,从而解放双手,像真人思考一样帮助人类处理工作和生活中的各类任务。
2、OpenManus又是啥?
从名字上来说不难猜测,OpenManus其实就是该开发团队在研究了Manus的设计原理后快速复现并开源了的Manus”平替“,这里为啥加引号我稍后再说。这里有人可能要问了,为啥要搞一个开源平替出来呢?因为Manus需要邀请码才能注册体验,邀请码获取难度较高,也曾有人高价售卖,普通用户想体验目前还没办法。
OpenManus的出现源于MetaGPT团队对AI Agent领域技术革新的快速响应与开源理念的深度实践。2025年3月7日,MetaGPT团队依托其自2023年起积累的多智能体研发经验,仅用三小时完成技术复刻并开源该项目。此举旨在通过开放架构降低技术门槛,为开发者提供可快速部署的Multi-Agent框架,支持复杂任务拆解与智能体协作。
3、”极智引擎“为啥写这篇文章?
哈哈,各位粉丝股东们,浪费大家几秒钟时间解释下,不想看这里的可以直接跳到章节二哈,和文章无关。这几天有点忙没来得及测试OpenManus,这两天空余时间鼓捣了下给大家出这期手把手教程,并分享下心得体会,相信不会电脑的小白也可以成功部署。
4、“硅基流动”是啥?
“硅基流动”是一家专注于人工智能基础设施研发的公司,主要提供深度学习框架优化、大模型训练/推理加速等技术服务,属于AI底层技术工具开发者。
5、“Git”是啥?
Git 是一个分布式版本控制系统,用于高效管理文件变更,尤其适合代码和文本类项目的协作开发。它的核心功能包括:
记录变更:跟踪文件每次修改(谁改的、何时改的、改了什么)
版本回溯:随时回退到任意历史版本
分支管理:支持并行开发不同功能而不冲突
协作同步:多人可同时修改并通过合并机制整合代码
⭐特点:分布式架构(每个用户都有完整仓库)、轻量级分支、高效处理大型项目,由 Linux 之父 Linus Torvalds 为管理 Linux 内核开发而创建。常与 GitHub/GitLab 等代码托管平台配合使用。
6、“Conda”是啥?
Conda 是一个跨平台的包管理与环境管理工具,主要用于Python生态但支持多语言,能快速安装、更新软件包,并创建隔离的虚拟环境(如同时管理不同项目所需的依赖版本),通过自动解决依赖冲突简化科学计算和数据分析的工作流程,常与Anaconda/Miniconda发行版配合使用。
二、准备工作
1、硅基流动注册及密钥生成
(1)访问硅基流动官网进行手机号登陆
(2)配置密钥
点击”API密钥“按钮
点击”新建API密钥“
弹出框中给密钥写一些描述,我这里写的是" openmanus “,这个随便写,就是个备注,然后” 新建密钥 “。
然后如下图所示点击标*号的密钥串即可复制密钥
说明:大家在配置密钥后调用硅基流动接口的时候会产生一定的费用,硅基流动默认会给新注册的用户内置一些API调用的费用,大家如果只是测试玩玩儿的话,可以省着点用,OpenManus运行时会进行大量的接口调用,还是会消耗一些费用的,不过基本OpenManus单次拆分20个步骤运行的情况下在也就消耗几毛钱,大家留意一下就好。
2、Miniconda虚拟环境下载安装
(1)访问ANACONDA官网下载链接:Download Anaconda Distribution | Anaconda,按下图1、2、3步骤依次填写个人有限点击同意授权协议并提交后,你的个人邮箱会收到对应的ANACONDA的下载链接。
也可不填写个人信息直接点击链接Download Now | Anaconda进行下载,访问链接后如下图:
考虑大多数人不是经常进行软件开发,所以这里就直接部署mini版本,下滑页面找到Miniconda这个板块,如下图:
点击Miniconda这个超链接,选择与你自己环境所匹配的安装包进行下载,我这里选择的是Windows 64位的安装包(安装包只有89MB,很小),如下图所示:
然后就是正常安装应用程序的步骤了,如下图:
简易不要将软件安装到C盘目录,大家可以修改一下将Miniconda安装到除C盘外的任意位置,我这里是放到了D盘根目录:
另外还需要勾选为conda配置环境变量的选项,不然安装完后还得手动配置:
(2)安装完成后大家可以点击”Win“键,在开始菜单里搜索框中输入" powershell ",然后
输入" Set-ExecutionPolicy -ExecutionPolicy RemoteSigned “后回车,再输入” y "后回车:
关闭上图所示命令行窗口,接下来点击键盘上”Win“+"R"键盘组合,在弹出的输入框中输入”powershell“然后点击确定,如下图:
这时会弹出一个命令行窗口,输入”conda“命令后若看到如下输出,就说明conda环境安装完毕。
至此conda环境配置完毕!
3、Git下载安装
(1)下载Git官网Git
根据自己的环境下载对应的安装包,我这里是Windows环境,直接下载Windows的安装包并开始部署。
(2)安装Git
安装提示也是同Miniconda一样,一路next即可,不想考虑那么多的股东可以直接一路next,但是这里还是建议安装目录可以改到非C盘。安装完成后,执行git -version验证是否安装成功,若出现如下图所示版本号,恭喜你,所有准备工作均已完成:
三、光速部署及配置OpenManus(不需要科学上网、不需要科学上网、不需要!!!重要的事情说三遍)
终于进入正题了,由于考虑了部分股东可能是小白,所以花了一些时间给大家教学准备运行环境。博主生怕各位学不会,看都看到这里了,各位股东请准备好传统美德” 一键三连 “。
按照第二章节中给大家介绍过的方式打开powershell,然后按照如下步骤按顺序执行bash命令。
1、创建新的conda环境
首先在你想要部署虚拟环境的目录下创建一个自己命名的文件夹,最好是英文的,不然有时会报错。然后再切换到对应目录执行如下命令:
切换目录的命令,假设你是在D盘创建了个文件夹叫ENV,那你可以执行如下命令切换到ENV目录:
cd D:\ENV
然后你就会看到你的Powershell窗口中一闪一闪的光标前边就变成了你已经切换成功的目录名,说明切换成功:
conda create -n open_manus python=3.12
conda activate open_manus
执行完如上命令后你的命令行应该类似下图这样:
2、克隆仓库(就是把OpenManus的代码下载到本地)
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
3、安装依赖(不需要魔法)
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
这一步很多朋友看到的文章会说,这里需要魔法才可以下载,其实就是有部分资源需要连接外网。但是,作为开发专业的我来说,当然知道咱们国内有很多镜像源可用,也不是啥高深的知识点,这里使用的是阿里的镜像源成功下载所有依赖,如下图所示:
4、OpenManus配置修改(解决OpenManus默认配置中使用Google搜索以及大模型选择的问题,这个一定得改哈,敲重点!!!)
首先,在你OpenManus的config目录下找到config.example.toml这个文件,然后复制一份重命名为config.toml
修改文件中的配置为如下图所示:
大家也可以直接复制我写好的:
# Global LLM configuration
[llm]
model = "Qwen/QwQ-32B"
base_url = "https://api.siliconflow.cn/v1"
api_key = "替换成你自己硅基流动的Key"
max_tokens = 10000
temperature = 0.0
# [llm] #AZURE OPENAI:
# api_type= 'azure'
# model = "YOUR_MODEL_NAME" #"gpt-4o-mini"
# base_url = "{YOUR_AZURE_ENDPOINT.rstrip('/')}/openai/deployments/{AZURE_DEPOLYMENT_ID}"
# api_key = "AZURE API KEY"
# max_tokens = 8096
# temperature = 0.0
# api_version="AZURE API VERSION" #"2024-08-01-preview"
# Optional configuration for specific LLM models
[llm.vision]
model = "Qwen/Qwen2.5-72B-Instruct"
base_url = "https://api.siliconflow.cn/v1"
api_key = "替换成你自己硅基流动的Key"
然后,要想让你的OpenManus具备调用浏览器的能力,还需还要在刚才的Powershell命令行执行" playwright install "命令下载相应的工具:
执行如下命令进行baidusearch依赖安装
pip install baidusearch -i https://mirrors.aliyun.com/pypi/simple
然后就是搜索引擎切换了,国内默认不可以访问google,所以这里我将配置文件中的代码修改成了使用Baidu搜索,具体操作如下:
找到OpenManus\app\agent目录下的manus.py文件,如下图:
编辑manus.py文件,代码修改如下图所示,几个标红框的位置需要将原来的Google上搜索切换为Baidu搜索:
大家也可以直接复制我写好的:
from pydantic import Field
from app.agent.toolcall import ToolCallAgent
from app.prompt.manus import NEXT_STEP_PROMPT, SYSTEM_PROMPT
from app.tool import Terminate, ToolCollection
from app.tool.browser_use_tool import BrowserUseTool
from app.tool.file_saver import FileSaver
from app.tool.baidu_search import BaiduSearch
from app.tool.python_execute import PythonExecute
class Manus(ToolCallAgent):
"""
A versatile general-purpose agent that uses planning to solve various tasks.
This agent extends PlanningAgent with a comprehensive set of tools and capabilities,
including Python execution, web browsing, file operations, and information retrieval
to handle a wide range of user requests.
"""
name: str = "Manus"
description: str = (
"A versatile agent that can solve various tasks using multiple tools"
)
system_prompt: str = SYSTEM_PROMPT
next_step_prompt: str = NEXT_STEP_PROMPT
# Add general-purpose tools to the tool collection
available_tools: ToolCollection = Field(
default_factory=lambda: ToolCollection(
PythonExecute(), BaiduSearch(), BrowserUseTool(), FileSaver(), Terminate()
)
)
max_steps: int = 20
为OpenManus编写网页搜索的函数,在OpenManus\app\tool目录下新建一个名为”baidu_search.py“的文件,并将如下代码粘贴到该文件中并保存退出:
import asyncio
from typing import List
from baidusearch.baidusearch import search
from app.tool.base import BaseTool
class BaiduSearch(BaseTool):
name: str = "Baidu_search"
description: str = """执行百度搜索并返回相关链接列表。
当您需要在网上查找信息、获取最新数据或研究特定主题时,请使用此工具。
该工具会返回与搜索查询匹配的 URL 列表。
"""
parameters: dict = {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "(required) 要提交给百度的搜索查询语句。",
},
"num_results": {
"type": "integer",
"description": "(optional) 要返回的搜索结果数量。默认为 10。",
"default": 10,
},
},
"required": ["query"],
}
async def execute(self, query: str, num_results: int = 10) -> List[str]:
"""
Execute a Baidu search and return a list of URLs.
Args:
query (str): The search query to submit to Baidu.
num_results (int, optional): The number of search results to return. Default is 10.
Returns:
List[str]: A list of URLs matching the search query.
"""
# Run the search in a thread pool to prevent blocking
loop = asyncio.get_event_loop()
links = await loop.run_in_executor(
None, lambda: list(search(query, num_results=num_results))
)
return links
然后切换到提示词目录”OpenManus\app\prompt\“
如下图所示编辑manus.py文件
至此,恭喜你,OpenManus就部署完毕了,你可以调用OpenManus来实现你想要的工作了。
5、运行测试
一行命令运行 OpenManus:
python main.py
官方提示,如需体验开发中版本,可运行(但我这里只是运行了python main.py做测试,体验版还未测试):
python run_flow.py
案例一:运行python main.py后,不出意外的话,你将看到如下画面,我在Enter your prompt(可以理解成,请输入你的问题或请输入你想要交给我的任务)这里输入了” 请列出今天的微博热搜 “
然后他就开始按步骤帮我搜索,如下图所示(这里解释下Executing step这里指的是预计完成你给他的任务需要的步骤大约需要20步,但不是所有任务都需要20步,我看有的博主那里显示是30步):
在工具调用的过程中工具也打开了浏览器进行搜索,如下图:
案例二:当然了,我也换了一些别的需求让他帮我做,例如:帮我指(这里打错字了,但大模型有纠错能力,问题不大)定一份去北京的旅游攻略,要尽可能参考互联网数据,要详细
然后大模型会进行多轮的对话来调用各种工具来实现我交给他的任务,最终大模型输出如下结果,大家可参考下:
案例三:“信息安全等级保护条例”搜索
需求:打开浏览器,在浏览器中帮我搜搜最新的“信息安全等级保护条例”,并参考优质的解读方案帮我解读一下,以markdown格式展示给我
工具执行过程中输出的结果如下,可以看到还是根据搜索结果大模型进行了排版输出,有一定的参考意义:
四、OpenManus的实现思路
1、极简可插拔框架
OpenManus 的设计强调模块化和可扩展性,构建了一个精简的 Agent 框架,支持工具(Tools)和提示词(Prompt)的可插拔组合。这种设计允许根据不同场景需求,灵活组合不同的工具,创造新的 Agent,而无需修改内部逻辑。
2、规划能力
OpenManus 继承了 Manus 的规划优势,通过使用 Planning Tool 实现任务分解,处理复杂问题。
3、工具调用
OpenManus 集成了多种工具(Tools),如 Baidu、Bing、Google 搜索、文件保存等,使 Agent 能够根据任务需求调用相应工具,执行特定操作。
4、开源与社区协作
OpenManus 的开源性质鼓励社区参与和协作,利用开源社区的力量不断优化和扩展其功能,提升智能体的能力。
五、思考
OpenManus整体体验下来的感觉是,确实是有agent的感觉,但是也确实是短时间速成的一个产品,运行过程中还是经常在问一些问题的时候,大模型陷入疯狂纠错的循环中,最终的输出结果也差强人意。但是,还是很推荐大家可以把这个当作是学习人工智能的一个不错的工具,分析分析代码大家也可以对它的代码进行调优,让自己本地的OpenManus更加智能,期待OpenManus的团队后续持续更新,开发更多效能提升,解放双手的好工具好功能。
还有一点就是我这里使用的是OpenManus调用硅基流动的接口进行测试,期间工具会频繁调用轨迹流动的接口,会产生一定的费用。硅基流动注册的时候默认会赠送一部分的接口调用费用,大家如果只是想测试用用的话,可以省着点用,尽可能让工具帮你做一些自己真正想要实现的工作。
今天的分享就到此结束,要关注更多前沿科技,效能提升,请一键三连:关注、转发、点赞本频道,微信公众号“极智引擎”也会同步发布最新前沿科技,欢迎大家多多关注。我将持续关注前沿科技,给大家分享更多科技干货,我是多多,多多学习的多多,拜了个拜。