如果你最近在 Windows 11 上折腾过 openclaw(原 clawdbot、Moltbot)的本地部署,应该会有同感:真正劝退人的往往不是概念本身,而是环境准备、依赖安装和一连串看不懂的报错。这篇手把手部署教程,不打算只丢几条命令给你,而是把每一步为什么要这么做、做完怎么确认成功、遇到问题怎么排查都讲清楚。目标只有一个:让你照着操作,能把 openclaw 当作一个常驻后台的私人 AI 助理真正跑起来,而不是停留在“能启动但不会用”的状态。
1. 先搞清楚 openclaw 是什么,再动手装
1.1 从 Moltbot 到 clawdbot 再到 openclaw:名字背后是定位变化
很多人第一次看到这三个名字会以为是三个项目,其实它们是同一个项目在不同阶段的迭代。Moltbot 是最早的形态,更像一个偏聊天和消息处理的机器人;到了 clawdbot 阶段,开始强调“钳子”一样的任务执行能力,能抓住任务、调用工具、操作文件;现在叫 openclaw,则更强调开放和可扩展,希望把整个框架开放出来,让普通用户也能自己配置模型、插件和自动化流程。
名字变化不只是换皮,它反映了一个趋势:早期这类工具只是“能对话”,现在则往“能干活”的方向走。你在本地跑起来的 openclaw,本质上是一个智能体框架,它会先理解你的指令,再拆解成步骤,然后通过工具去执行,比如读写文件、调用接口、整理资料、定时提醒。换句话说,它不是又一个聊天窗口,而是一个可以住在你电脑里的执行者。
1.2 它到底能解决什么问题
如果你已经有 ChatGPT 这类网页版助手,可能会觉得本地部署一个 openclaw 多此一举。但实际体验下来,最大的差异在“手脚”和“隐私”上。
- 数据不出电脑:聊天记录、任务数据、文件操作都留在本地,不经过第三方服务器。
- 能直接操作本地资源:读你指定目录的文件、保存网页内容、批量重命名、定时执行脚本。
- 可以完全自定义模型:换个模型、改个提示词、加个插件,都不受平台限制。
- 适合自动化场景:把重复性工作丢给它,比如整理下载文件夹、收集资料、生成日报草稿。
它的目标用户也很清晰:有一定动手能力的技术爱好者、需要处理大量本地信息的效率工作者、想研究智能体框架的开发者。如果你完全不想碰终端,只想要一个开箱即用的图形界面,那这篇部署教程可能仍旧值得看,因为部署本身并不复杂,真正复杂的是环境问题。
1.3 为什么在 Windows 11 上原生部署,而不是先开个子系统
很多同类项目教程默认你跑在 Linux 上,Windows 用户容易被建议去装 WSL。我在实际对比后觉得,如果你主力系统是 Windows 11,直接原生部署是更省事的选择。原生运行可以避免几个很隐蔽的坑:子系统的文件路径映射、端口转发延迟、内存占用翻倍、网络配置不一致。尤其是 openclaw 需要常驻后台,原生部署的资源开销更可控,任务管理器里能直接看到进程状态。
当然,如果你以后打算把这套东西迁到服务器上,那另说。本文所有操作都基于 Windows 11 自带的终端环境,路径也全部使用 Windows 风格,跟着走就行。
1.4 部署前先理解这 4 个核心组件
很多报错其实是没有搞清组件之间的关系。openclaw 这类框架通常由四块组成,在下手前先有个整体印象会快很多:
| 组件 | 作用 | 部署中对应什么 |
|---|---|---|
| 核心服务 | 负责接收指令、调度任务、管理会话状态 | 主程序,也就是你 clone 下来的项目 |
| 模型接口 | 负责理解和生成自然语言 | 本地推理服务或在线大模型 API |
| 工具/插件 | 让智能体能执行具体动作 | 文件操作、网络请求、命令执行等模块 |
| 记忆存储 | 保存对话、任务记录、长期状态 | data 目录,通常由本地数据库或文件承载 |
理解这张表之后,你能更清楚地知道:环境准备是为了让核心服务跑起来;配置模型是为了让它“会说话”;启用工具是为了让它“有手”。后面每一步都可以对号入座。
2. 环境准备:先别急着 clone,把地基打牢
2.1 硬件配置自检
部署 openclaw 本身对配置要求不算高,但如果你打算接入本地模型,那就另当别论。先按下面的表格做个判断:
| 配置项 | 最低要求 | 建议配置 | 说明 |
|---|---|---|---|
| 系统 | Windows 11 64 位,22H2 及以上 | 最新更新 | 旧版本可能在终端组件上有兼容问题 |
| 内存 | 8 GB | 16 GB 以上 | 使用本地模型时 16 GB 只是起步 |
| 磁盘 | 10 GB 可用空间 | 20 GB 以上 | 源码、依赖、模型文件、日志都会占空间 |
| 显卡 | 不需要 | 6 GB 显存以上 | 只有跑本地大模型时才有意义 |
建议在部署前先把 Windows 更新补丁打全,特别是终端相关的组件。很多奇怪报错最后都指向系统旧版本。
2.2 安装必要运行时:Git、Python、Node.js
openclaw 的核心通常是 Python 写的,Git 用来拉取源码,部分插件和前端界面会依赖 Node.js。最省事的安装方式是在 PowerShell 里用 Windows 自带的 winget 安装:
winget install --id Git.Git -e --source winget winget install --id Python.Python.3.12 -e --source winget winget install --id OpenJS.NodeJS.LTS -e --source winget如果你在运行时遇到“找不到命令”,大概率是安装时没有勾选“添加到 PATH”。Python 手动安装时一定要勾上Add Python to PATH,这是新手最容易忽略的一步。安装完成后,重新打开一个终端窗口,让环境变量生效。
2.3 配置 Git 和 pip,避免后期“下载地狱”
Windows 上 Git 有两个默认行为经常让人跑步烦:自动把换行符转成 Windows 风格,导致项目里的脚本在运行时报错;另一个是路径过长时直接拒绝操作。建议先执行两条全局配置:
git config --global core.autocrlf false git config --global core.longpaths truepip 默认源有时候下载很慢,尤其在依赖较多的情况下。这一步不需要写死某个镜像,只要把源切换成你所在网络环境下访问更快的那个就行。示例命令如下,里面的地址请替换为你常用的实际镜像地址:
pip config set global.index-url https://mirrors.example.com/pypi/simple如果你的网络访问默认源本来就很顺畅,完全可以跳过。注意不要同时配置多个源,否则容易出现下载到一半又跳回默认源的情况。
2.4 选一个“不折腾”的安装目录
这个细节看起来不起眼,但部署完再改目录会很麻烦。建议把项目放在一个纯英文、无空格、无特殊字符的路径下,比如D:\apps\openclaw。
原因有两个。第一,部分 Python 包在中文路径下会出现编码错误;第二,如果你把项目放到 OneDrive、桌面这类被系统自动同步的文件夹里,运行时文件锁冲突和同步延迟会让你非常难受。磁盘根目录下建一个 apps 目录,一劳永逸。
2.5 环境验证:三行命令确认地基是否稳
在 clone 项目之前,先跑一下三行命令:
python --version git --version node --version正常应该分别看到 Python 3.12.x、git version 2.x、node v20.x 之类的输出。任何一行报“不是内部或外部命令”,说明对应运行时没有正确加入 PATH。这一步多花两分钟,能省掉后面一大堆莫名其妙的报错。
3. 手把手部署 openclaw:从 clone 到启动成功的完整链路
3.1 获取源码,别直接拉默认分支
现在可以正式拉取源码了。在终端中执行:
git clone https://example.com/openclaw.git D:\apps\openclaw cd D:\apps\openclaw注意上面是占位地址,实际请使用官方发布页或代码托管平台提供的仓库地址。克隆完成后,不要急着直接跑,先看一下有哪些版本标签:
git tag然后切换到最新的稳定版本,比如:
git checkout tags/v1.4.0为什么要特意选稳定版本?默认分支每天都在提交,很可能你上午 clone 的代码和晚上已经不一样了,装到一半接口变了、依赖对不上,排查起来非常痛苦。标签版本是发布时验证过的,坑少得多。
3.2 创建 Python 虚拟环境并激活
这一步很多人会偷懒跳过,直接用全局 Python 装依赖,等到项目和系统里其他工具相互污染时再后悔。在项目根目录执行:
python -m venv .venv然后激活虚拟环境。Windows 11 的 PowerShell 下激活脚本在:
.\.venv\Scripts\Activate.ps1如果报错提示脚本被禁止执行,在当前窗口先放开策略再激活,只对当前终端窗口生效,不会修改系统设置:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass激活成功后,命令行前面会出现(.venv)的标识,这时候安装的所有依赖都会进入这个环境,不会污染全局。以后每次启动 openclaw 前,都要先激活这个环境,所以把它记成肌肉记忆会很省事。
3.3 安装依赖:根据安装方式决定命令
项目根目录通常会有requirements.txt或pyproject.toml。如果你只打算使用,推荐先安装固定依赖:
pip install -r requirements.txt如果你准备二次开发,或者希望以后openclaw命令可以直接全局调用,可以用可编辑模式安装:
pip install -e ".[all]"两条命令的区别在于:requirements.txt是固定依赖版本,稳定;-e模式会把项目本身作为包注册,方便开发调试。首次部署我建议用前者,少出问题。看到Successfully installed ...才算真正完成,不要看到日志滚动就以为成功了。
3.4 初始化配置:复制 .env 并填写关键项
配置模板一般会放在项目根目录的.env.example里。先复制一份成正式配置文件:
Copy-Item .env.example .env notepad .env里面最核心的几项是:
| 配置项 | 说明 | 示例 |
|---|---|---|
OPENCLAW_LANG | 界面和交互语言 | zh-CN |
OPENCLAW_MODEL_API_KEY | 模型服务的密钥 | sk-xxxx |
OPENCLAW_MODEL_BASE_URL | 模型 API 地址 | https://api.example.com/v1 |
OPENCLAW_MODEL_NAME | 实际调用的模型名 | your-model-name |
这里有个原则:.env里存放的是密钥和本机专属配置,绝对不要提交到 Git 仓库。部署完成后,记得检查一下.gitignore是否已经忽略.env,如果没有,手动加进去。
3.5 初始化数据目录
大多数项目会提供一个初始化命令,用来生成 data、logs、plugins 等目录和默认数据库。执行:
python -m openclaw init如果没有这个命令,看一下项目 README 里的常用命令。初始化完成后,项目目录下应该能看到data/、logs/之类的文件夹。这一步的意义在于让程序准备好“记忆空间”,否则启动后可能因为找不到数据目录直接退出。
3.6 启动服务并做第一次“体检”
现在可以正式启动了。在虚拟环境激活的状态下执行:
python -m openclaw run如果安装时用了-e模式,也可以直接执行openclaw run。看到类似Web UI started on http://127.0.0.1:8080的日志,说明主服务已经起来。这时候别急着关终端,打开浏览器访问http://127.0.0.1:8080,应该能看到 openclaw 的本地管理界面。
再做一个健康检查,新开一个 PowerShell 窗口执行:
curl http://127.0.0.1:8080/health如果返回{"status":"ok"}之类的内容,说明服务和端口都正常。到这一步,部署骨架就算搭完了。
4. 模型接入与中文使用质感优化
4.1 模型服务怎么选:本地推理还是在线 API
启动成功只是第一步,真正决定“好不好用”的是模型接入。两种方式差异很大:
| 对比项 | 在线大模型 API | 本地推理框架 |
|---|---|---|
| 成本 | 按量付费 | 一次投入硬件和模型文件 |
| 隐私 | 数据发送到第三方 | 完全本地 |
| 内存需求 | 低 | 16 GB 起步,越高越好 |
| 配置难度 | 简单 | 需要额外部署推理服务 |
| 响应速度 | 依赖网络 | 本地,相对稳定 |
如果你只是想让 openclaw 先跑起来,优先选在线 API,配置简单、效果稳定。如果内存和显卡足够,再考虑本地模型。记住一个原则:不要一上来就追求本地模型,先把链路跑通,再优化性能,否则报错来源太多,新手很难判断是 openclaw 的问题还是模型的问题。
4.2 配置模型接口的 4 个高频坑
在我见过的部署失败案例里,模型接口配置的报错概率最高。集中体现在四个方面:
- Base URL 多一个斜杠或少一个
/v1。不少 API 服务要求地址精确到版本路径,多一个字符就是 404。 - API Key 粘贴时带入换行或空格。看起来一模一样的 Key,实际上多了一个看不见的字符。
- 模型名填写不规范。模型真实名称和文档里展示的可能不完全一样,最好从服务商后台复制。
- 修改
.env后没重启服务。环境变量只在启动时加载,改完必须重启 openclaw 才能生效。
如果遇到 401,优先查 Key;遇到 404,优先查 Base URL 和模型名;遇到超时,先确认网络能不能正常访问 API。这组判断逻辑能覆盖大部分模型接入问题。
4.3 让中文回复更自然:System Prompt 与采样参数
openclaw 的默认行为不一定贴合中文使用习惯,尤其是回复长度和语气。你可以在配置里给它一个中文角色设定,类似:
你是一个运行在本地的中文 AI 助理。 回答要简短、准确、口语化,不要长篇大论。 涉及命令操作前,先说明你打算做什么,等确认后再执行。这段提示词会直接影响可读性。如果觉得回复内容太发散,可以调低采样温度。一般中文任务设置temperature=0.3到0.7之间比较合适。温度越低,回答越稳定;越高,越有创造性但越容易跑偏。
4.4 让 openclaw 真正“干活”:工具权限怎么开
如果只接模型,openclaw 充其量是个带记忆的聊天机器人。要让它执行任务,就得在配置文件里开启对应工具。常见配置大概长这样:
tools: enabled: - file_ops - http_client - shell这里要特别提醒:工具权限越大,风险越高。file_ops和http_client可以满足大多数日常自动化场景,shell等于把命令执行权交给了模型,新手阶段建议先关掉,也不要让 openclaw 以管理员权限运行。安全边界比功能多少重要得多。
4.5 记忆存储与多会话配置
会话记录和长期任务状态都会写入 data 目录。这个目录就是 openclaw 的“记忆”,需要定期备份。Windows 实时防护有时会反复扫描数据目录里的文件,导致响应卡顿,建议把项目目录加入杀毒软件排除列表。
如果你同时有工作和个人两套使用场景,可以通过多份配置文件或启动参数隔离会话,避免数据混在一起。具体的配置字段可以在项目文档里搜 profile 或 multi-user,按需开启。
5. 启动之后必须做的检查与高频报错排查
5.1 服务是否真的活了?先看日志和端口
很多人启动时报错后不知道去哪里找原因,最直接的路径是先看日志文件。openclaw 一般会把运行日志写到logs/目录下,查看最后几十行:
Get-Content .\logs\app.log -Tail 50同时确认进程和端口状态:
Get-Process | Where-Object { $_.ProcessName -like "*openclaw*" } netstat -ano | findstr :8080如果进程存在但端口没监听,说明服务可能卡在启动中间状态;如果进程不存在,问题大概率在启动早期。把这个顺序养成习惯,比瞎猜报错来源高效得多。
5.2 端口占用怎么办
启动时最常出现的报错是Address already in use或者提示 8080 端口被占用。先查是谁占用了端口:
Get-NetTCPConnection -LocalPort 8080拿到 OwningProcess 对应的 PID 后,在任务管理器里确认进程身份,再决定是否结束它:
Stop-Process -Id PID如果你有另一个服务固定占用 8080,也可以在 openclaw 配置里改默认端口,避开冲突,没必要强行抢回来。
5.3 依赖安装阶段的两类经典报错
部署过程中 pip 安装失败很常见,但原因基本可以归成两类。
一类是缺少 C/C++ 编译工具。报错信息里通常会出现“C++ 构建工具”之类的字样。解决办法是安装 Windows 下的 C++ 生成工具,安装时勾选“使用 C++ 的桌面开发”工作负载,然后重新安装依赖。
另一类是网络下载超时或中断。可以给 pip 增加超时和重试参数再试一次:
pip install --timeout 120 --retries 5 -r requirements.txt如果还是失败,换个镜像源再装。不要反复删除虚拟环境重来,先确认失败的那一个包装上没装上,再决定下一步,删环境是最后手段。
5.4 模型调用 401、404、超时:一张表说清楚
| 现象 | 原因 | 处理方式 |
|---|---|---|
| 401 Unauthorized | API Key 错误或不完整 | 手动重新复制完整 Key,检查空格 |
| 404 Not Found | Base URL 或模型名不正确 | 核对地址是否带/v1,模型名是否精确 |
| 连接超时 | 网络无法访问 API,或服务端响应慢 | 先 ping 域名,再确认是否有系统代理干扰 |
| 环境变量不生效 | 修改.env后没有重启 | 重启 openclaw 服务,确认日志加载了新配置 |
这套排查逻辑可以通用到几乎所有模型接入场景。记住:每次改动配置后,要同时看 openclaw 启动日志和模型请求日志,两者能帮你定位问题在前半段还是后半段。
5.5 开机自启、内存占用和日志轮转
想让 openclaw 真正成为“贾维斯”,就得让它开机自动运行。可以在 Windows 任务计划程序里建一个启动任务,调用一个启动脚本。脚本内容类似:
@echo off cd /d D:\apps\openclaw call .venv\Scripts\activate python -m openclaw run >> logs\app.log 2>&1然后在 PowerShell 里注册计划任务:
schtasks /Create /TN "OpenClaw" /TR "D:\apps\openclaw\run.bat" /SC ONSTART /RL LIMITED内存方面,如果你发现常驻后占用偏高,可以调低并发 worker 数量,比如在.env里设置OPENCLAW_MAX_WORKERS=2,牺牲一点并发换取稳定。长期使用后日志文件会越来越大,建议定期清理历史日志,或者在任务计划里加一个压缩归档的命令。
5.6 升级版本前,先做 3 件小事
openclaw 迭代很快,但升级前一定要先稳住当前环境。我的习惯是升级前备份三样东西:.env配置、data数据目录、plugins插件目录。然后git fetch --tags查看新版本说明,确认没有破坏性变更后再执行升级。升级完成后,如果有数据迁移命令就顺手跑一下。这样做的好处是,万一新版本有问题,你还能退回旧版本,不至于把已经跑通的环境搞坏。
最后再分享一个我的使用习惯:刚把 openclaw 跑起来时,我也喜欢一直开着终端盯输出,结果一关窗口服务就没了。后来我把它注册成计划任务,所有日志写进文件,才真正体会到“常驻助理”和“临时跑个程序”的区别。所以在你自己配置时,把“日志可见、自动启动、配置可回滚”这三件事放在最前面,比急着装一堆插件有用得多。