OpenManus-通过源码方式本地运行OpenManus,含踩坑及处理方案,chrome.exe位置修改
前言:最近 Manus 火得一塌糊涂啊,OpenManus 也一夜之间爆火,那么作为程序员应该来尝尝鲜
1、前期准备
- FastGithub:如果有科学上网且能正常访问 github 则不需要下载此软件,此软件是提供国内直接访问 github
- Git:通过 git 远程拉去 github 代码,当然也可以不用安装
- Anaconda或者- Miniconda:python 依赖管理工具
- 科学上网:如果想去谷歌搜索,则需要支持访问 google.com,如果不需要,则配置访问路径为 百度,请往下看
2、进入 github 下载源码
点我进入OpenManus 仓库
阅读官方提供的文档:OpenManus 中文文档
2.1、下载源码
下载源码分两种方式:
- 第一种是安装了 Git 的,直接通过命令
git clone https://github.com/mannaandpoem/OpenManus.git
- 第二种是直接下载 zip 包
 下载 ZIP 包直接点击
2.2、准备工作
- 创建 python 虚拟环境
# 创建虚拟环境
conda create -p D:\dev\py_repo\open_manus python=3.12
# 激活这个环境
conda activate open_manus
- 支持 function calling 的大模型 API key
这里推荐使用 阿里云百炼平台,百炼开通后180天内送一定额度的 token,基本上是属于免费级别的
获得 API-KEY
 
 
- 获取模型
每个模型都有相应的说明,注意看每个模型的注意事项描述,如果说明了不支持 Function calling 的模型,是无法使用到 OpenManus 中的
 
 比如这个图片中,deepseek-r1 模型就不支持 Function calling
亲测有效的是 qwen-plus 模型,qwq-32b 也是支持的,不过我没亲测
3、使用 PyCharm 打开源码,并配置虚拟环境
这一步主要是为了阅读源码和启动源码,如果不需要阅读源码的可以直接跳过本步骤
-  配置解释器 
 启动 PyCharm 打开源码,并配置刚刚设置的 open_manus conda 环境,我这里已经配置过了,没有配置过第一步显示的是 Add interpreter
  
-  选择虚拟环境 
  
 选择好以后,点击 OK ,等待环境的初始化和加载,大概也就 10 来分钟左右
4、配置 OpenManus 环境
- 如果是 PyCharm 启动,则直接手动复制 /config/config.example.toml将复制出来的文件名改为config.toml即可
# Global LLM configuration
[llm]
model = "qwen-plus"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "sk-.................................."
max_tokens = 4096
temperature = 0.0
model :一定要是支持 function calling 的模型
base_url:百炼云平台的接口地址,只要是百炼的模型,接口地址几乎是相同的,不用修改
api_key:这个就是之前注册的 api-key,直接复制接口
其他的都不用修改
- 如果是通过 CMD 启动的,则使用命令复制文件,然后将正确的内容填写进去即可
cp config/config.example.toml config/config.toml
5、依赖拉取
5.1、激活环境
PyCharm 打开 terminal 窗口,激活 conda 环境,注意这里一定要是在项目的根目录下才可以
conda activate open_manus
5.2、安装依赖
pip install -r .\requirements.txt
完整命令截图如下:
 
6、各种踩坑
6.1、不支持 function calling
不支持 tool call,选择支持 function calling 的模型
<400> InternalError.Algo.InvalidParameter: The tool call is not supported.
6.2、模型名字错误
检查模型的名字,是否拼写错误
'The model `xxxxxx` does not exist or you do not have access to it.'
6.3、google_search 无法调用
⚠️ Tool 'google_search' encountered a problem: HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: /search?q=Google+homepage&num=12&hl=en&start=0&safe=active (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000020960CF1520>, 'Connection to www.google.com timed out. (connect timeout=5)'))
- 方式1:科学上网全局代理,或者切换稳定的谷歌代理站点
- 方式2:添加配置,有大佬提交了 pr,支持百度搜索
[llm]
model = "qwen-plus"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "sk-.................................."
max_tokens = 4096
temperature = 0.0# 添加此项代码,走百度搜索
search_agent_config = "baidu"
6.4、循环打印日志 playwright install 
 
2025-03-10 22:07:44.834 | INFO     | app.agent.base:run:137 - Executing step 1/30
2025-03-10 22:07:48.030 | INFO     | app.agent.toolcall:think:53 - ✨ Manus's thoughts: 
2025-03-10 22:07:48.030 | INFO     | app.agent.toolcall:think:54 - 🛠️ Manus selected 1 tools to use
2025-03-10 22:07:48.031 | INFO     | app.agent.toolcall:think:58 - 🧰 Tools being prepared: ['browser_use']
2025-03-10 22:07:48.031 | INFO     | app.agent.toolcall:execute_tool:140 - 🔧 Activating tool: 'browser_use'...
ERROR    [browser] Failed to initialize Playwright browser: BrowserType.launch: Executable doesn't exist at C:\Users\admin\AppData\Local\ms-playwright\chromium-1148\chrome-win\chrome.exe
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated.       ║
║ Please run the following command to download new browsers: ║
║                                                            ║
║     playwright install                                     ║
║                                                            ║
║ <3 Playwright Team                                         ║
╚════════════════════════════════════════════════════════════╝
2025-03-10 22:07:48.464 | INFO     | app.agent.toolcall:act:113 - 🎯 Tool 'browser_use' completed its mission! Result: Observed output of cmd `browser_use` executed:
Error: Browser action 'navigate' failed: BrowserType.launch: Executable doesn't exist at C:\Users\admin\AppData\Local\ms-playwright\chromium-1148\chrome-win\chrome.exe
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated.       ║
║ Please run the following command to download new browsers: ║
║                                                            ║
║     playwright install                                     ║
║                                                            ║
║ <3 Playwright Team                                         ║
╚════════════════════════════════════════════════════════════╝
2025-03-10 22:07:48.476 | INFO     | app.agent.base:run:137 - Executing step 2/30
首先这个问题是缺少了浏览器,那么需要先下载浏览器组件
python -m playwright install chromiumpip install playwright
安装不上,那么就暴力安装
- 下载 chromium
下载地址:https://playwright-verizon.azureedge.net/builds/chromium/1148/chromium-win64.zip
- 解压后放入指定目录
根据错误日志可以看到,程序去这个路径下面寻找
Browser action 'navigate' failed: BrowserType.launch: Executable doesn't exist at C:\Users\admin\AppData\Local\ms-playwright\chromium-1148\chrome-win\chrome.exe,那么就直接把浏览器复制到这个路径下即可

6.5、其他踩坑
如果你遇到了其他坑,就去这里面搜索问题:
https://github.com/mannaandpoem/OpenManus/issues
总能找到问题的解决办法
7、补充
2025-03-11补充
deepseek-r1 模型均不可用
deepseek-r1 不管是阿里云百炼平台,还是 deepseek 官网,都是不支持 Function calling 的,亲测结果
 
 deepseek官网唯一支持 Function calling 的模型 deepseek-chat 在官方的描述如下:
 
 deepseek-chat 模型亲测有效:
提示词:搜索整理昨天的所有AI相关的最新咨询,整理成markdown文件,文件名为:news_ai
经过漫长的等待,最终得到了如下的结果:超时了
修改 chrome.exe 位置
修改位置需要修改源代码,有三处地方需要修改
- /app/config.py 文件
第四行代码和第 26 行代码修改
 
from typing import Dict, Optional  # ,Optional 为添加项class LLMSettings(BaseModel):model: str = Field(..., description="Model name")base_url: str = Field(..., description="API base URL")api_key: str = Field(..., description="API key")max_tokens: int = Field(4096, description="Maximum number of tokens per request")temperature: float = Field(1.0, description="Sampling temperature")api_type: str = Field(..., description="AzureOpenai or Openai")api_version: str = Field(..., description="Azure Openai version if AzureOpenai")chrome_instance_path: Optional[str] = Field(None, description="Local Chrome installation path") # 为添加项
- browser_use_tool.py 修改
将 _ensure_browser_initialized 函数替换为如下代码
    async def _ensure_browser_initialized(self) -> BrowserContext:"""Ensure browser and context are initialized."""if self.browser is None:# 舍弃本句代码# self.browser = BrowserUseBrowser(BrowserConfig(headless=False))# 新增如下代码llm_config = config.llm['default']chrome_instance_path = llm_config.chrome_instance_pathprint(chrome_instance_path)self.browser = BrowserUseBrowser(BrowserConfig(headless=False, chrome_instance_path=chrome_instance_path))if self.context is None:self.context = await self.browser.new_context()self.dom_service = DomService(await self.context.get_current_page())return self.context
- config.toml 新增配置项
[llm]
model = "qwen-plus"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "sk-xxxxxx"
chrome_instance_path = "D:\\software\\chrome-win\\chrome.exe"   # 此项为新增配置项
max_tokens = 4096
temperature = 0.0
亲测有效
相关文章:
 
OpenManus-通过源码方式本地运行OpenManus,含踩坑及处理方案,chrome.exe位置修改
前言:最近 Manus 火得一塌糊涂啊,OpenManus 也一夜之间爆火,那么作为程序员应该来尝尝鲜 1、前期准备 FastGithub:如果有科学上网且能正常访问 github 则不需要下载此软件,此软件是提供国内直接访问 githubGit&#…...
 
【性能测试】Jmeter下载安装、环境配置-小白使用手册(1)
本篇文章主要包含Jmeter的下载安装、环境配置 添加线程组、结果树、HTTP请求、请求头设置。JSON提取器的使用,用户自定义变量 目录 一:引入 1:软件介绍 2:工作原理 3:安装Jmeter 4:启动方式 …...
HTML星球大冒险之路线图
第一章:欢迎来到 HTML 星球! 1.1 宇宙的基石:HTML 是什么? 🌍 比喻:HTML 是网页世界的「乐高积木」,用标签搭建一切可见内容🎯 目标:理解 HTML 的作用,掌握…...
 
初识大模型——大语言模型 LLMBook 学习(一)
1. 大模型发展历程 🔹 1. 早期阶段(1950s - 1990s):基于规则和统计的方法 代表技术: 1950s-1960s:规则驱动的语言处理 早期的 NLP 主要依赖 基于规则的系统,如 Noam Chomsky 提出的 生成语法&…...
 
LabVIEW伺服阀高频振动测试
在伺服阀高频振动测试中,闭环控制系统的实时性与稳定性至关重要。针对用户提出的1kHz控制频率需求及Windows平台兼容性问题,本文重点分析NI PCIe-7842R实时扩展卡的功能与局限性,并提供其他替代方案的综合对比,以帮助用户选择适合…...
 
AI编程工具-(七)
250309,10这几天都在用通义灵码搞做建模分析。 感想,指令越具体,实现效果越好。 依然是之前的时许数据,这几天分析效果没有提升。 画的几个有意思的图表和效果 主要觉得这图好看,提示词不复杂。 预测效果 预测准确性提升不大聊…...
 
什么是一致性模型,在实践中如何选择?
一、一致性模型 1、强一致性(Strong Consistency) ①定义:强一致性意味着在分布式系统中的每个读取操作,都能读取到最近写入的数据。也就是说,所有节点都始终保持相同的数据状态。 ②特点:写操作对所有节点立即可见,所有的读取操作在任何节点上都能看到最新的写入。 …...
Python项目-智能家居控制系统的设计与实现
1. 引言 随着物联网技术的快速发展,智能家居系统已经成为现代家庭生活的重要组成部分。本文将详细介绍一个基于Python的智能家居控制系统的设计与实现过程,该系统能够实现对家庭设备的集中管理和智能控制,提升家居生活的便捷性和舒适度。 2…...
RDP连接无法复制粘贴问题的排查与解决指南
RDP连接无法复制粘贴问题的排查与解决指南 问题描述注意事项排查原因检查RDP剪贴板进程是否正常检查组策略设置检查权限和安全设置检查网络连接 解决方式重启rdpclip.exe进程启用RDP剪贴板重定向调整组策略设置检查并调整安全设置更新驱动程序和系统检查网络连接使用其他远程连…...
 
IDEA与Maven使用-学习记录(持续补充...)
1. 下载与安装 以ideaIU-2021.3.1为例,安装步骤: 以管理员身份启动ideaIU-2021.3.1修改安装路径为:D:\Program Files\JetBrains\IntelliJ IDEA 2021.3.1勾选【创建桌面快捷方式】(可选)、【打开文件夹作为项目】&…...
Go 语言封装 HTTP 请求的 Curl 工具包
文章目录 Go 语言封装 HTTP 请求的 Curl 工具包🏗️ 工具包结构简介核心结构体定义初始化函数 🌟 功能实现1. 设置请求头2. 构建请求3. 发送请求4. 发送 GET 请求5. 发送 POST 请求6. 发送 PUT 请求7. 发送 DELETE 请求8. 读取响应体 💡 实现…...
 
RK3568 SD卡调试记录
文章目录 1、环境介绍2、概念理清3、原理图查看4、dts配置5、验证6、SD卡启动6.1、启动优先级6.2、启动流程6.2.1、Maskrom(Boot ROM)启动优先级6.2.2、Pre-loader(SPL)启动优先级 6.3、如何从sd卡启动?6.3.1、制作sd启动卡6.3.2、sd卡启动 7、总结 1、环境介绍 硬…...
高效获取历史行情数据:xtquant的实战应用
高效获取历史行情数据:xtquant的实战应用 🚀量化软件开通 🚀量化实战教程 在量化交易领域,历史行情数据是构建和测试交易策略的基础。无论是回测策略的有效性,还是进行市场分析,高质量的历史数据都是不可…...
 
【python爬虫】酷狗音乐爬取练习
注意:本次爬取的音乐仅有1分钟试听,仅作学习爬虫的原理,完整音乐需要自行下载客户端。 一、 初步分析 登陆酷狗音乐后随机选取一首歌,在请求里发现一段mp3文件,复制网址,确实是我们需要的url。 复制音频的…...
阿里云 DataWorks面试题集锦及参考答案
目录 简述阿里云 DataWorks 的核心功能模块及其在企业数据治理中的作用 简述 DataWorks 的核心功能模块及其应用场景 解释 DataWorks 中工作空间、项目、业务流程的三层逻辑关系 解释 DataWorks 中的 “节点”、“工作流” 和 “依赖关系” 设计 解释 DataWorks 中 “周期任…...
 
uniapp+Vue3 开发小程序的下载文件功能
小程序下载文件,可以先预览文件内容,然后在手机上打开文件的工具中选择保存。 简单示例:(复制到HBuilder直接食用即可) <template><view class"container-detail"><view class"example…...
Apache Log4j 2
目录 1. Apache Log4j 2 简介 1.1 什么是Log4j 2? 1.2 Log4j 2 的主要特性 2. Log4j 2 的核心组件 2.1 Logger 2.2 Appender 2.3 Layout 2.4 Filter 2.5 Configuration 3. Log4j 2 的配置 4. Log4j 2 的使用示例 4.1 Maven 依赖 4.2 示例代码 4.3 输出…...
 
4.2.2 ArrayList类
ArrayList类与List类的用法差不多,提供的方法也差不多。但是与List不同的是,ArrayList可以包含任意类型的数据,但是相应的,要使用包含的数据,就必须对数据做相应的装箱和拆箱(关于装箱和拆箱,请…...
L1-088 静静的推荐
L1-088 静静的推荐 - 团体程序设计天梯赛-练习集 (pintia.cn) 题解 这里代码很简单,但是主要是循环里面的内容很难理解,下面是关于循环里面的内容理解: 这里 n 10 表示有 10 个学生,k 2 表示企业接受 2 批次的推荐名单&#…...
 
普及听力保健知识竞赛
普及听力保健知识竞赛 热点指数:★★★ 日期:3月3日 关键词:爱耳护耳、听力健康、耳部保健、听力科普 适合行业:医疗健康、健康护理、教育培训、公益组织 推荐功能:答题、H5宣传 宣传方向:广泛普及听力…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
 
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
 
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
 
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
 
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
 
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
 
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
