本地部署OpenManus及原理介绍

概述:

最近Minaus特别火,随后开源社区就有项目尝试复刻Minaus,项目名称为OpenManus,原理是用推理模型为决策者,将我们输入的问题进行分解后调用本地工具执行。

OpenManus安装:

本人在Ubuntu桌面版本上安装运行,因为涉及调用浏览器的工具需要有图形桌面支持;Windows上没有试过。

OpenManus的搜索工具默认访问外网,最好有外部网络。

本人在云厂商上开云电脑进行验证,选择香港或海外区域。

安装参考:

GitHub - mannaandpoem/OpenManus: No fortress, purely open ground. OpenManus is Coming.

#安装conda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
ln -s /root/miniconda3/bin/conda /usr/local/bin/conda
ln -s /root/miniconda3/bin/activate /usr/local/bin/activate

#准备python环境
conda create -n open_manus python=3.12
source activate open_manus

#下载代码
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus

#安装,安装过程中如果有组件版本报错可以根据报错提示修改requirements.txt
pip install -r requirements.txt


#安装用到的工具
playwright install-deps
playwright install

配置后端模型,推荐使用阿里云百炼平台的模型,理由是现在还有免费的api调用,即使收费也算便宜(当前deepseek的api已经不让申请了);到阿里云百炼平台获取自己的API-KEY

配置模型:

cp config/config.example.toml config/config.toml

#编辑config.toml为如下:
# Global LLM configuration
[llm]
model = "qwen-plus"                    #模型可以到阿里帮助文档中选:https://help.aliyun.com/zh/model-studio/developer-reference/compatibility-of-openai-with-dashscope
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1" 
api_key = "sk-..."                     #这里填上上文获取的key 
max_tokens = 4096                    
temperature = 0.0                   

[llm.vision]
model = "qwen-plus"                    #模型可以到阿里帮助文档中选:https://help.aliyun.com/zh/model-studio/developer-reference/compatibility-of-openai-with-dashscope
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "sk-..."                     #这里填上上文获取的key 
max_tokens = 4096
temperature = 0.0

运行使用:

#启动
python main.py 
INFO     [browser_use] BrowserUse logging setup complete with level info
INFO     [root] Anonymized telemetry enabled. See https://docs.browser-use.com/development/telemetry for more information.
Enter your prompt: 用python写贪食蛇代码,并运行

原理:

简单的介绍小OpenManus的原理

main.py中最重要的两段代码:

agent = Manus()
    
agent.run(prompt)

初始化Manus并且run

Manus继承类ToolCallAgent,ToolCallAgent继承ReActAgent,ReActAgent继承BaseAgent

BaseAgent中的run是一个循环,循环调用self.step(),直到任务结束或者步数达到20步

ReActAgent中定义self.step()中包括think和ack两部分

ToolCallAgent中定义think就是调用大模型把我们输入的提示增加一些修饰后发给大模型,并告诉大模型有哪些工具集,让模型帮忙决策调用什么工具集;根据模型返回结果进行调用,并在第二轮将工具执行结果也发送给模型,让模型进行调整,继续执行直到完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codemillion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值