我在 Windows 上折腾 Openclaw 踩过的坑,基本都能写一本小册子了。先说结论:Openclaw 这套开源的 Agent 托管框架,能把微信、飞书、Discord 这些渠道统一接到大模型后面,还能配上工具调用和 Skill 技能,确实是目前圈子里的热门玩法。但它的官方文档默认你是 Linux 用户,Windows 下跑起来全靠自己摸索。这篇就专门写给想在 Windows 上装 Openclaw 的人,目标是让你少走弯路,用相对体面的方式把它跑起来,而不是去下载来路不明的“一键整合包”。
这篇文章适合三类人:第一次听说 Openclaw、想试试但不知道从哪下手的新手;在 Windows 上装到一半卡住、来回看报错的老哥;以及已经把服务跑起来、但想搞清楚模型切换和微信接入细节的进阶玩家。我会从原理讲到实战,再给一份排错清单,你照着操作就行。
1. 装之前先搞清楚:Openclaw 在 Windows 下到底是怎么运作的
1.1 先花两分钟理解 Openclaw 的架构
Openclaw 本质上是一个“消息中转 + 任务编排”的智能体服务。它的工作方式可以理解成一个大厅:微信、飞书、邮件、网页客服这些渠道像客人一样从不同的门进来,大厅里的服务生(Core Agent)听明白需求后,再去调用后台的大模型、工具、记忆库,最后把结果从原路送回去。
这套架构决定了它在 Windows 上需要哪些零件:
- 运行时环境:Python 3.10 以上,因为核心代码是 Python 写的。
- 依赖服务:Redis,用来存会话状态和记忆数据。
- 可选容器环境:Docker Desktop,方便做隔离部署和快速启停。
- 版本管理工具:Git,用来拉取源码和后续升级。
理解了这四样东西,你就能明白为什么很多 Windows 用户会卡在“装好了却起不来”这个环节——八成是 Redis 没跑起来,或者 Python 版本不对。记住这个依赖链,后面排查问题会非常有用。
1.2 Windows 下手动安装的三大难点及应对思路
很多人在 Windows 上装 Openclaw 失败,通常不是步骤错,而是卡在这三件事上:
第一,官方脚本默认面向 Linux/macOS,Windows 下 PowerShell 和 CMD 的兼容性没那么好。应对思路是:不硬套官方一键脚本,而是用“半手动”的方式,把每个环节拆开执行,哪里出错处理哪里。
第二,Redis 在 Windows 上没有官方安装包,很多人一看到“Redis 未连接”就懵了。应对思路:使用第三方维护的 Windows 移植版,或者用 Docker 跑一个 Redis 容器,二选一。
第三,Openclaw 依赖的某些 Python 包(比如涉及 AI 推理的库)在 Windows 下编译容易出问题。应对思路:优先使用预编译的 wheel 包,避免从源码编译。
说白了,“优雅”不是指一个命令装完所有东西,而是你清楚地知道每个组件装在哪、为什么这么装,出了问题能快速定位。我见过太多人直接下载网上的“Openclaw 离线整合包”,结果环境变量混乱、版本冲突,出了问题完全不知道从哪排查。自己手动装一遍,反而是最省心的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备:把 Windows 打磨成适合 Openclaw 的“工位”
2.1 安装 Git:拉取源码的第一步
Git 是 Openclaw 源码的基本来源。Windows 下安装 Git 推荐用 winget 命令,这是最省事的方式。在 PowerShell 里执行:
powershell复制winget install --id Git.Git -e --source winget
如果你所在的网络访问外网速度不太理想,也可以直接去 Git 官网下载安装包,或者使用国内的开源镜像站,下载速度会快很多。
安装完成后,打开新的 PowerShell 窗口验证一下:
powershell复制git --version
这里要提醒一个细节:安装 Git for Windows 时,在“Adjusting your PATH environment”这一步,建议选择“Git from the command line and also from 3rd-party software”。这个选项会把 Git 加入系统 PATH,后面在任意目录下都能直接执行 git 命令,不用每次找路径。
安装选项里还有一个容易忽略的地方:“Checkout as-is, commit as-is”,也就是行尾符转换选默认的“Checkout Windows-style, commit Unix-style line endings”。如果选错,拉下来的脚本文件在运行时可能因为换行符问题报各种奇怪的错。
2.2 安装 Python 和虚拟环境:给 Openclaw 一个干净的房间
Openclaw 依赖 Python 3.10 及以上版本,我建议直接上 3.11 或 3.12,太老的版本可能会遇到依赖包不兼容的问题。
还是用 winget:
powershell复制winget install --id Python.Python.3.11 -e --source winget
安装时务必勾选“Add python.exe to PATH”,否则后面执行 python 命令会提示找不到。
装完验证一下:
powershell复制python --version
然后我强烈建议你创建一个独立的虚拟环境,别把 Openclaw 的依赖直接装到系统 Python 里。因为 Openclaw 涉及的依赖包非常多,直接装全局环境,很容易和你之后其他项目产生版本冲突。
powershell复制mkdir C:\OpenClaw
cd C:\OpenClaw
python -m venv venv
.\venv\Scripts\Activate.ps1
看到命令行前面出现 (venv) 就说明激活成功。之后所有 Openclaw 相关操作都在这个虚拟环境里进行,干净又隔离。
2.3 安装 Redis:Openclaw 的“记忆仓库”
Redis 对 Openclaw 来说相当于是短期记忆库,存会话、缓存、临时状态都靠它。Windows 下没有官方 Redis,但社区有维护良好的移植版,微软的 tporadowski/redis 项目就是一个很常用的选择,支持 Windows 服务方式运行。
下载对应系统的 MSI 安装包,安装时可以勾选“Add Redis to PATH”。安装完成后,先手动启动服务验证:
powershell复制redis-server --service-start
再验证连接:
powershell复制redis-cli ping
看到 PONG 就说明 Redis 正常。如果是用 Docker 跑 Redis,只需要在 Docker Desktop 启动的状态下执行:
powershell复制docker run -d --name openclaw-redis -p 6379:6379 redis:7-alpine
两条路线二选一即可。我个人更推荐直接装 Windows 版,因为不用依赖 Docker Desktop 常驻内存,折腾成本更低。Redis 的内存占用很小,作为后台服务常驻也没问题。
2.4 安装 Docker Desktop:可选项,但建议装一个
如果后面想用 Docker 方式部署 Openclaw 和 Redis,或者想玩其他周边工具,Docker Desktop 就是必备的了。Windows 下安装 Docker Desktop 前,需要确保 BIOS 里开启了虚拟化,并且在“Windows 功能”里打开“适用于 Linux 的 Windows 子系统”和“虚拟机平台”。
安装完成后,在设置里把资源限制调一下,比如内存给 4GB 以上。对于 Openclaw 这种没有重型本地推理需求的服务,4GB 足够用了。
提示:如果你只是想跑 Openclaw,不用本地跑大模型,Docker Desktop 不是必需的。但装了它,很多服务的安装和隔离会方便很多,比如 Redis、Postgres 都能一条命令启动,我个人建议还是值得装的。
3. 核心实操:源码方式安装 Openclaw 全流程
3.1 拉取 Openclaw 源码
环境备齐后,正式开始。我用的是“git clone 源码 + 手动创建虚拟环境 + 安装依赖”的方式,这也是官方安装脚本背后做的事情。如果你看到官方的安装脚本支持 --git-install-type 这类参数,它本质上就是在控制源码的获取方式,比如指定用 git 还是直接下载压缩包。Windows 下手动操作反而更直观,每一步出错都能看出来。
在刚才的 C:\OpenClaw 目录下执行:
powershell复制git clone https://github.com/openclaw/openclaw.git
cd openclaw
如果你访问 GitHub 速度不太理想,也可以使用 gitee 等国内代码托管平台的镜像仓库来拉取,但需要注意镜像的同步频率,选择更新时间最新的那个。
拉完代码后,先看看项目根目录下的文件结构。你至少应该能看到 install.py、main.py、requirements.txt、config.example.yaml(或 .env.example)这些关键文件。如果缺文件,大概率是拉取不完整,重新 clone 一次。
3.2 创建虚拟环境并安装依赖
这一步是最容易踩坑的地方。Openclaw 的依赖安装命令在 Windows 下可能会因为缺少构建工具而报错,尤其是一些需要编译的 C 扩展。
回到项目根目录,确认虚拟环境处于激活状态:
powershell复制cd C:\OpenClaw\openclaw
python -m venv ..\venv
..\venv\Scripts\Activate.ps1
然后安装依赖。为了加快速度,建议使用国内 PyPI 镜像:
powershell复制pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
如果安装过程中提示类似“Microsoft Visual C++ 14.0 is required”的错误,说明系统缺少 C++ 构建工具。这时有两个选择:一是安装 Visual Studio Build Tools,需要勾选“使用 C++ 的桌面开发”工作负载;二是尽量找对应包在 Windows 下的预编译 wheel 文件,大部分常用包都能在 PyPI 上找到现成的 .whl 文件,直接下载后 pip install 文件名.whl 即可。
安装完成后可以核对一下关键包是否就位:
powershell复制pip list | findstr "openclaw fastapi redis"
看到几个核心包,说明依赖基本装全了。
3.3 初始化配置文件
Openclaw 启动前需要一份配置文件,里面写着模型提供商的信息、渠道配置、端口等。打开项目根目录,你会看到一个示例配置文件,比如 config.example.yaml 或 .env.example。复制一份出来:
powershell复制copy config.example.yaml config.yaml
然后编辑 config.yaml,核心要改的有这几项:
- 模型提供商:这里填你的大模型 API 信息。比如 OpenAI 兼容接口,就需要填
provider: openai_compatible、model: 模型名、api_key: sk-xxx、base_url: https://api.siliconflow.cn/v1之类的。我用的是硅基流动的接口,因为它的 OpenAI 兼容模式做得比较稳,而且注册就送体验额度,适合测试。 - Redis 配置:如果是本地 Redis,填
host: 127.0.0.1、port: 6379即可。 - Web 服务端口:默认通常是 8080,如果被占用可以改其他端口,建议改成 18080 之类的非常用端口,避免和本地其他开发服务冲突。
填完配置就可以启动了。
3.4 启动 Openclaw 并验证
启动方式很简单:
powershell复制python main.py
第一次启动会拉取一些模型元数据,稍微等一会儿。看到日志里出现类似 OpenClaw service started 或者 Uvicorn running on http://127.0.0.1:18080 的字样,就说明服务起来了。
打开浏览器访问 http://127.0.0.1:18080,如果能打开一个 Dashboard 管理界面,说明 Openclaw 的核心进程已经正常运转。接下来可以先用网页自带的对话测试窗口试一轮,确认大模型链路通畅。
这里有个实战小技巧:如果你在 Windows 上双击 main.py 或者关掉 PowerShell 窗口之后服务就停了,那是正常的,因为进程直接挂在终端上。想要让 Openclaw 在后台常驻,可以用 PowerShell 的计划任务,或者更简单粗暴的方式:用 pythonw main.py 启动,这样就不会弹出黑窗口。不过 pythonw 方式下日志看不到,排查问题不方便,我建议调试期还是老老实实用 python main.py。
3.5 Docker 方式备用:一条命令跑起来
除了源码方式,Windows 下还有一种更省心的部署思路:用 Docker Compose。Openclaw 项目自带 docker-compose.yml,里面定义了 Openclaw 和依赖服务(比如 Redis)的编排。只要 Docker Desktop 在运行,执行:
powershell复制docker compose up -d
Docker 会自动拉取镜像、创建容器,然后后台运行。这种方式的好处是环境隔离得非常干净,不污染宿主机。缺点是你没法直接用调试器看 Python 代码,改配置也需要进容器或者用挂载卷的方式映射出来。
我个人的建议:如果你只是想把 Openclaw 用起来,Docker 方式最省心;如果你是想二次开发、调试自己的 Skill,那源码方式更合适。两种方式可以共存,但别同时监听同一个端口。
4. 模型接入与渠道配置:装完能跑还不够
4.1 配置大模型 API:让 Openclaw 开口说话
Openclaw 本身不包含大模型,它得接一个外面的模型 API 才能干活。模型配置主要在 config.yaml 里,核心思路就一句话:“让 Openclaw 通过 OpenAI 兼容接口去访问任何一家大模型服务商”。
目前国内比较好用的兼容服务商有硅基流动、DeepSeek 开放平台、阿里云百炼等,它们基本都提供 OPENAI_BASE_URL 和 OPENAI_API_KEY 两件套。以硅基流动为例:
yaml复制model:
provider: openai_compatible
base_url: https://api.siliconflow.cn/v1
model: deepseek-ai/DeepSeek-V3
api_key: 你的API密钥
改完配置后记得重启服务。如果模型名写错,启动时不会报错,但一问话就会在日志里看到 404 model not found 之类的错误。这里要特别小心,不同的服务商对模型名要求不一样,一定要去服务商的模型列表页复制准确的模型 ID。
4.2 用 ccswitch 和 gateway 切换模型:动态调整不再重启
跑起来之后你会发现,不同任务需要不同模型:日常闲聊用便宜快的,深度推理用聪明但贵的。Openclaw 社区里比较流行的方案是用 ccswitch 这类模型切换工具,或者通过内置的 gateway 配置来动态切换。
ccswitch 的机制其实不复杂:它把多个模型的信息注册到一个本地路由表里,Openclaw 每次发请求时,可以通过消息里特定的指令选择走哪条路由。比如你在对话中发送 /model deepseek-reasoner,后续问题就会交给推理模型处理;发送 /model deepseek-chat,又切回快速模型。
社区里有个高频问题:“Openclaw gateway 改用模型后不生效怎么办?”我实测下来的原因是:切换模型后,网关配置在服务进程内存里有缓存,需要清掉 Redis 里的模型路由缓存,或者干脆重启一次 Openclaw 服务。虽然不是每次都需要重启,但如果是刚升级版本,重启一次是最干净的。
4.3 微信渠道接入:一个容易翻车的环节
Openclaw 最吸引人的功能之一就是接入微信。但这里必须说实话:接入个人微信号是存在风控风险的,我强烈不建议你用任何非官方的个人号协议去接。官方推荐的方式是使用企业微信的机器人或者微信公众号的服务器回调,这两种方式走的是正规 API,稳定性和合规性都有保障。
以企业微信机器人为例,流程大致是:在企业微信后台创建机器人,拿到 Webhook 地址,然后在 Openclaw 配置里填入对应的回调地址和 Token,两者建立连接。公众号方式则需要一台有公网地址的服务器,或者用内网穿透工具把本地的 Openclaw 端口暴露出去。
社区里有些人反馈“微信插件触发了服务端风控或会话残留”,这类问题绝大多数是因为使用了个人号协议,频繁登录、异常 IP 等原因触发了平台的安全机制。解决办法就四个字:正规接入。走官方 API 渠道,基本不会遇到这种问题。如果已经遇到了,先把渠道停掉,清理掉 Redis 里的会话缓存,再重新连接官方渠道,不要抱着侥幸心理继续用个人号协议。
5. 常见问题与排查技巧实录
5.1 高频问题速查表
这部分是我的经验总结,基本覆盖了 Windows 下 Openclaw 安装和运行的绝大多数坑。
| 问题现象 | 常见原因 | 排查方法 |
|---|---|---|
| pip 安装依赖时超时或速度极慢 | 默认源访问不稳定 | 换国内 PyPI 镜像,加 -i https://pypi.tuna.tsinghua.edu.cn/simple |
| 启动时报 Redis 连接错误 | Redis 服务没启动 | 执行 redis-cli ping,确认返回 PONG |
| 提示 Microsoft Visual C++ 14.0 required | Windows 缺少 C++ 构建工具 | 安装 Build Tools,或改用预编译 wheel 包 |
| 启动后网页打不开 | 端口被占用或服务没起来 | netstat -ano | findstr :18080 看端口监听情况 |
| 对话时报 401 错误 | API Key 填错或模型 ID 写错 | 核对 config.yaml 中的 key 和模型名,确认服务商侧有效 |
| 日志提示 model not found | 模型名不对 | 从服务商模型列表页复制完整模型 ID |
| Windows Defender 拦截了 Python 进程 | 识别误报 | 在 Windows 安全中心加入排除项,或添加防火墙放行规则 |
| 每次启动都很慢 | 依赖包加载时间长 | 改用 Docker 部署,利用镜像缓存加速启动 |
| Git 拉取源码卡住 | 网络访问不稳定 | 使用国内镜像仓库,或尝试多次拉取 |
5.2 说几个比较有代表性的排查案例
第一个案例:有次我在一台新笔记本电脑上装 Openclaw,Python 和 Redis 都正常,但一启动就报 ModuleNotFoundError: No module named 'xxx'。后来排查了很久,发现问题是:我用 PowerShell 激活了虚拟环境,但执行 python 时调用的还是系统 PATH 里那个全局 Python。解决方法是确认 (venv) 标记真的出现在命令行前面,然后手动执行 Get-Command python 查看解释器路径,确保指的是 C:\OpenClaw\venv\Scripts\python.exe。
第二个案例:Docker Desktop 安装了但服务一直起不来,打开 Docker Desktop 看日志,提示 WSL 2 installation is incomplete。这个问题的根源是系统里存在旧版的 WSL 内核。解决方法是去微软官网下载最新版本的 WSL 内核更新包,或者直接在管理员 PowerShell 里执行 wsl --update,然后重启电脑。
第三个案例:有一次 Openclaw 跑起来了,微信机器人也连接成功,但每隔一两个小时就掉线。后来发现是电脑休眠导致网络连接中断。Windows 默认的电源计划会让电脑在长时间无操作后睡眠,Redis、Openclaw、微信长连接全部断了。解决方法是把电源计划改成“高性能”,同时打开“网络适配器”设置里的“允许计算机关闭此设备以节约电源”,把这个选项关掉。
第四个案例:有人在 Windows 安全日志里看到大量来自 Java 进程的网络连接告警,以为是中毒了,其实是因为电脑上装了其他 Java 工具,端口被扫描是正常现象。但如果 Openclaw 的端口被不明进程占用,一定要优先排查,执行 netstat -ano | findstr :18080 拿到 PID,再在任务管理器里确认进程身份。凡是来源不明的进程占用端口,默认当风险处理。
5.3 升级和卸载 Opencclaw 的正确姿势
说完了安装和排错,最后提一下升级和卸载。这两个操作做不好,一样会有隐患。
升级 Openclaw 时,不要只 git pull 拉新代码就完事。依赖包可能也变了,所以正确的升级顺序是:
powershell复制git pull origin main
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
然后重启服务。如果升级后出现配置报错,建议先把旧的 config.yaml 备份,再用新的示例文件生成一个,手动把之前的自定义项填回去,这样能排查是配置变更导致的报错还是代码 bug。
卸载 Openclaw 相对简单,但有三件事不能漏:第一,停掉正在运行的服务进程(Ctrl+C 或者关掉终端);第二,卸载 Redis 服务(如果用的是 Windows 服务方式,执行 redis-server --service-uninstall);第三,手动删除虚拟环境和项目目录。如果你创建过 Windows 计划任务来守护 Openclaw,还要记得把计划任务一并删掉,否则系统每次开机都会尝试启动一个已经不存在的程序。
最后聊点实在的
我在实际使用过程中的体会是:Openclaw 在 Windows 上能不能跑得舒服,七八成取决于环境基础是否扎实。很多人上来就照着一篇看不懂的教程硬抄,出了问题就换一篇教程,最后环境乱成一锅粥。与其这样,不如先花半小时把 Git、Python、Redis 这三样东西的原理和安装逻辑搞清楚,再动手装 Openclaw,你会发现后面的一切都顺理成章。
再分享一个小技巧:把 Openclaw 的启动方式做成一个 PowerShell 脚本,比如在 C:\OpenClaw 下建一个 start.ps1,内容就是激活虚拟环境、进入项目目录、执行 python main.py。以后每次启动只需要右键用 PowerShell 运行这个脚本,省去重复敲命令的功夫。如果你希望开机自动运行,用“任务计划程序”创建一条开机触发任务,指向这个脚本就行。
这篇文章是按 Windows 11 + Python 3.11 + Redis Windows 移植版这条路子写的,稍微改改也适用于 Windows 10。如果你照着操作下来还遇到其他奇奇怪怪的问题,欢迎在评论区把报错日志贴出来,我看到会尽量帮你分析。
