新手保姆教程 手把手带体验OpenManus

一. 背景知识

3 月 7 日,国内 DeepWisdom MetaGPT 团队 3 小时内上线初版本openManus。

openManus是Manus的开源复刻版。

在Manus还没能大规模开放之前,我们可以先本地部署openManus并一睹为快。

项目地址:github.com/mannaandpoe...

github.com/mannaandpoe...

阅读对象

  • 新手用户
  • 使用国内的模型
  • 可能解决不了魔法网络问题
  • 操作系统面向 Windows 10 / 11

教程目标

  • 搭建可以正常运行的 OpenManus 环境

  • 知道如何做对应的模型配置

  • 了解一些 OpenManus 的基本原理

系统架构

二、模块设计

2.1 TODO1:安装部署

部署环境准备

方式一:使用 conda

  1. 创建新的 conda 环境:
bash 复制代码
# 第一步:创建专属AI空间
conda create -n open_manus python=3.12
conda activate open_manus


# To activate this environment, use
#
#     $ conda activate open_manus
#
# To deactivate an active environment, use
#
#     $ conda deactivate

//conda activate mofa
# 第二步:克隆开源库
# 分支说明:
# main: 仅保留核心代码,是一个极简框架,可以比较容易兼容到其它场景
# front-end:加入了前端代码,可以有运行界面展示,大家玩的时候可以拉这个
# mcp: 基于mcp协议的openmanus在这个分支。
git clone [email protected]:watchpoints/OpenManus.git
cd OpenManus

# 切换分支
# 1. 查看远程分支
# git branch -r
# 2. 切换 front-end 分支
# git checkout -b front-end origin/front-end
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

# 备注, 如果上面的清华源 一直安装不了依赖,可以尝试下面的腾讯源命令执行,再安装依赖
# pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple

# 安装依赖            
pip install -r requirements.txt
# 过程可能有点久,耐心等待
# 这个过程如果有红色错误,请重新执行命令重试
# 安装 playwright
pip install playwright
playwright install

配置大模型

OpenManus 需要配置使用的 LLM API,请按以下步骤设置:

  1. config 目录创建 config.toml 文件

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

  1. 编辑 config/config.toml 添加 API 密钥和自定义设置:

DeepSeek 官方1

目前只支持 deepseek-chat 模型 , 也就是 DeepSeek-V3 , DeekSeek-R1 由于不支持 tools 功能,目前不支持(但但是有其他厂商微调了带 tools 功能 R1, 后续跟进一下)

申请API

访问 platform.deepseek.com/api_keys 创建一个 Api Key后复制保存下来,如果忘记了,重新创建一个即可.

llm\] model = "deepseek-chat" base_url = "[api.deepseek.com/v1](https://link.juejin.cn?target=https%3A%2F%2Fapi.deepseek.com%2Fv1 "https://api.deepseek.com/v1")" api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx" max_tokens = 8192 temperature = 0.0 硅基流动 例子:白嫖党可选(去[cloud.siliconflow.cn/account/ak](https://link.juejin.cn?target=https%3A%2F%2Fcloud.siliconflow.cn%2Faccount%2Fak "https://cloud.siliconflow.cn/account/ak") )申请一个, 每天100万token测试的话是够了 #### 全局 LLM 配置 ```ini # 全局 LLM 配置 [llm] model = "Qwen/QwQ-32B" base_url = "https://api.siliconflow.cn/v1" api_key = "sk-yerbwxyadeiwumvzbfdwawdzsvaouusksbkcrjlibdwrfjmt" # 替换为真实 API 密钥 max_tokens = 4096 temperature = 0.0 # 可选特定 LLM 模型配置 [llm.vision] model = "gpt-4o" base_url = "https://api.openai.com/v1" api_key = "sk-..." # 替换为真实 API 密钥 ``` #### **快速启动** 一行命令运行 OpenManus: python main.py 然后通过终端输入你的创意! 如需体验不稳定的开发版本,可运行: python run_flow.py **浏览器版本运行:(我们体验的话是用了一个简易的前端版本)** 1 python app.py #### 2.2 Todo2 OpenManusWeb ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/a508e42d91bb457eaacd682148710ebc~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgd2F0Y2hwb2ludHM=:q75.awebp) 最新版本需要 front-end 分支才是带 Web UI,可以下载对应分支的源码,或者使用 git 切换分支 ```ruby git拉取fork远程分支代码 git remote add upstream https://github.com/mannaandpoem/OpenManus.git git checkout -b front-end upstream/front-end # 安装依赖 pip install -r requirements.txt # 运行 web ui python app.py # 运行完成后正常会自动打开浏览器,如果没有打开,请访问 http://localhost:5172/ ``` 或者执行下载【下面这个方式执行不过放弃了,不过他们文档设计思路可以借鉴,就是他们基础架构】 [github.com/YunQiAI/Ope...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2FYunQiAI%2FOpenManusWeb%2Fblob%2Fdev_web_app%2FDEVELOPMENT_LOG.md "https://github.com/YunQiAI/OpenManusWeb/blob/dev_web_app/DEVELOPMENT_LOG.md") [github.com/YunQiAI/Ope...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2FYunQiAI%2FOpenManusWeb%2Fblob%2Fdev_web_app%2Fapp%2Fweb%2FREADME.md "https://github.com/YunQiAI/OpenManusWeb/blob/dev_web_app/app/web/README.md") ```java git clone [email protected]:wangcy6/OpenManusWeb.git pip install -r requirements.txt //Web Interface python web_run.py http://127.0.0.1:8000/ ``` ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/05ef059b648e478c95e76f9761789a54~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgd2F0Y2hwb2ludHM=:q75.awebp) ## 三、FQA #### 3.1 我是用window11+wsl2方式启动 在通过web浏览器访问出现 gio: [http://localhost:8000](https://link.juejin.cn?target=http%3A%2F%2Flocalhost%3A8000 "http://localhost:8000"): Operation not supported 本人Windows 11 家庭中文版系统从Microsoft Store中安装Ubuntu系统 WSL2的镜像网络模式:带来更流畅的Linux开发体验 ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d16b457e98ac4ae2a0b8db1786f34c71~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgd2F0Y2hwb2ludHM=:q75.awebp) 不停的重试 #### 3.2 在centos服务器能执行吗? * 我在window +wsl2尝试一下 查询很慢 没有返回结果 * #### 3.3 如何通过trae远程编码远程访问 【】 [docs.trae.ai/docs/ssh-re...](https://docs.trae.ai/docs/ssh-remote "https://docs.trae.ai/docs/ssh-remote") 如何Ttace 通过SSH 访问 window11 WSL2 问题描述: 本人Windows 11 家庭中文版系统从Microsoft Store中安装Ubuntu系统 WSL2的镜像网络模式: 安装[docs.trae.ai/docs/ssh-re...](https://docs.trae.ai/docs/ssh-remote%E6%95%99%E7%A8%8B "https://docs.trae.ai/docs/ssh-remote%E6%95%99%E7%A8%8B") 程序下面错误 ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/74e55c34318848408e80a00bf52545cb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgd2F0Y2hwb2ludHM=:q75.awebp) 初步定位: ping 192.168.3.26 ip没有问题 telnet 192.168.3.26 22 正在连接192.168.3.26...无法打开到主机的连接。 在端口 22: 连接失败 解决步骤: * Win11将WSL做SSH服务器,实现通过局域网SSH远程连接到WSL ```bash sudo apt install openssh-server sudo vim/etc/ssh/sshd_config 取消注释 #Port 22 行以指定SSH端口(默认为22)。 取消注释 #PasswordAuthentication yes 行以允许密码认证。 # 启动ssh密钥登录 RSAAuthentication yes PubkeyAuthentication yes sudo service ssh start ``` * Mirror模式下WSL2的SSH远程连接 WSL2 环境信息: 首先,在C://User//[.wslconfig](https://link.juejin.cn?target=https%3A%2F%2Fzhida.zhihu.com%2Fsearch%3Fcontent_id%3D254097863%26content_type%3DArticle%26match_order%3D1%26q%3D.wslconfig%26zhida_source%3Dentity "https://zhida.zhihu.com/search?content_id=254097863&content_type=Article&match_order=1&q=.wslconfig&zhida_source=entity")文件中,通过以下方式进行设置就会得到镜像模式的WSL。 ```ini [wsl2] networkingMode=mirrored [experimental] hostAddressLoopback=false ``` | hostAddressLoopback\*\* | 布尔 | FALSE | 仅当 wsl2.networkingMode 设置为 mirrored 时才适用。 如果设置为 True,将会允许容器通过分配给主机的 IP 地址连接到主机,或允许主机通过此方式连接到容器。 始终可以使用 127.0.0.1 环回地址,此选项也允许使用所有额外分配的本地 IP 地址。 仅支持分配给主机的 IPv4 地址。 | |-------------------------|----|-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| 如果不开启`hostAddressLoopback` 则无法在镜像模式下从外部访问到wsl。包括在windows WSL主机中,也同样无法依靠访问到wsl。但是如果将修改为`localhost`则可行。 #### 优势 * IPv6 支持 * 使用 `localhost` 地址 `127.0.0.1` 从 Linux 内部连接到 Windows 服务器。 * 不支持 IPv6 `localhost` 地址 `::1` * 改进了 VPN 的网络兼容性 * 多播支持 * 直接从局域网 (LAN) 连接到 WSL 通过localhost可以直接访问 **设置 SSH 通过密钥登录** cd .ssh touch authorized_keys chmod 600 authorized_keys window测试连接wsl2通过 ssh [email protected] //连接到window11 安装的 wsl主机 Ubuntu 20.04+ 结果: trae配置 ```bash Host 127.0.0.1 HostName 127.0.0.1 User money ForwardAgent yes ``` \[experimental\] hostAddressLoopback=true ### 参考资料 * [OpenManus 新手保姆教程 - 初级入门](https://link.juejin.cn?target=https%3A%2F%2F404digital.feishu.cn%2Fdocx%2FTO6WdA64OoDsevxo4Zpc7HuCn4g "https://404digital.feishu.cn/docx/TO6WdA64OoDsevxo4Zpc7HuCn4g")

相关推荐
EngineerSuTao5 分钟前
Flask的app.run()里发生了什么
后端·python·flask
Asthenia04126 分钟前
进程与线程区别 / Java线程状态 / 同步方法与代码块差异 / Monitor线程同步原理 / 死锁解析 / 多线程访问资源避免死锁
后端
Asthenia041225 分钟前
模块引用/ pass/ 模块包/ range/xrange/ dict/items/ is/ func引用/ any/all/ 列表值/ 排序
后端
计算机学姐30 分钟前
基于SpringBoot的名著阅读网站
java·vue.js·spring boot·后端·mysql·spring·intellij-idea
努力的小雨31 分钟前
Spring AI 增加混元 embedding 向量功能
后端
慕容靖翾35 分钟前
CSS语言的排序算法
开发语言·后端·golang
Asthenia04121 小时前
装饰器 / Lambda / Tuple-List / except / match-search / 全局变量 / 引号 / 参数 / 类-实例变量
后端
阳光照进我心窝1 小时前
Laravel 模型静态方法实现
后端
喵个咪1 小时前
Ent代码生成工具链
后端·go
SimonKing1 小时前
XXL-JOB:揭秘定时机制
java·后端·架构