
教程 · 维护
OpenClaw 升级、回滚与彻底卸载
龙虾更新挺勤,新版本常带新功能和修复,但“升级”这两个字总让人犯怵——怕升坏、怕丢数据。其实只要顺序对、升级前留个底,翻车也能两分钟退回去。好消息是,现在的 OpenClaw 自带升级、回滚、卸载命令,不用再像老教程那样手动 git pull 装依赖。这篇按备份、升级、锁版本、回滚、彻底卸载的顺序讲,每步带命令。
升级前:先备份,30 秒的保险
正常升级不会动你的配置和数据——它们都在 ~/.openclaw/ 里(openclaw.json、.env、各 agent 的凭据、工作区),升级换的只是代码。但万一总有。龙虾自带一条备份命令,打出来的归档带版本号和校验:
mkdir -p ~/Backups/openclaw
openclaw backup create --output ~/Backups/openclaw --verify
顺手记下当前版本号,回滚时要用:
openclaw --version # 记下这个号,万一要退回
归档里有你的 API key 和频道凭据,放的位置要跟 ~/.openclaw 一样小心,别丢进公共网盘。
升级:一条命令
不管你当初是用一键脚本、npm 还是源码装的,升级都是同一条命令。它会自己识别安装方式、拉最新版、跑一遍 openclaw doctor 体检、再把后台的 Gateway 重启:
openclaw update
怕它做什么没数,先预演一遍,它只打印计划不真动:
openclaw update --dry-run
升完跑一条最小任务验证它还正常:
openclaw gateway status
openclaw dashboard
# 控制台里给它一句:建个 hello.txt 写一行再读回来
这一圈能跑通,升级就算成了。如果 openclaw update 中途失败,最省事的恢复方式是重跑一遍官方安装脚本(curl -fsSL https://openclaw.ai/install.sh | bash),它走的是直接安装、能把升到一半的包补齐。
锁版本:别被“永远最新”坑到
智能体迭代快,有时新版本会改配置格式、换依赖,盲目追最新容易踩坑。生产环境建议锁在一个验证过能跑的版本:
- 普通安装:OpenClaw 分发布通道。默认
stable是正常版;extended-stable是更保守的“慢一拍”通道,只装经过更长时间验证的版本,服务器上建议用它:openclaw update --channel extended-stable。想尝鲜再切beta,能回来。 - Docker 方式:镜像别用
:latest,用带版本号的标签,比如:2026.8.2这种日期式版本号(注意标签不带v前缀,跟 GitHub 上的v2026.8.2写法不一样)。要升才手动改标签,心里有数。
稳定运行的机器,“能跑就别乱动”比“永远最新”更省心。
回滚:升坏了两分钟退回去
升级后跑不起来,别慌,退回上一个能跑的版本就行。这就是为什么前面让你记版本号、留备份。回滚分两层,先走轻的那层:
第一层:只换回旧代码,数据不动
# 看看有哪些版本
npm view openclaw versions --json
# 先预演,再真退
openclaw update --tag <你记下的旧版本号> --dry-run
openclaw update --tag <你记下的旧版本号>
它会识别出这是降级、要你确认一下,然后换代码、重启 Gateway、校验版本。绝大多数翻车到这一步就好了。
第二层:旧代码读不了新配置时,才还原备份
只有当新版本改了配置或数据库格式、旧代码认不出来的时候,才需要把前面那份备份还原回去。注意这会丢掉备份之后的改动,所以它是第二选择,不是第一选择。
Docker 装的
# 把镜像标签指回旧版本,重建容器
docker compose down
# 改 compose 里的 image 标签为旧版本号,然后
docker compose up -d
只要数据是挂载出来的、镜像用的是带版本号的标签,回滚几乎零风险。
npm i -g openclaw@latest 的话,运行中的 Gateway 可能正在读旧文件,换到一半就乱了。所以优先用 openclaw update,它会先把 Gateway 和包的替换协调好;实在要手动换,先 openclaw gateway stop,换完再 openclaw gateway restart。另一条:升级前先 openclaw --version 记下当前版本号,万一新版有问题,openclaw update --tag 回这个号就能退回去,整个回滚通常一两分钟的事。配置和数据都在 ~/.openclaw,升级换的只是代码,回滚过程它们原封不动——这就是“记版本号 + 留备份”给你的底气。
彻底卸载:清单式清干净
龙虾自带卸载命令,会按顺序把后台服务、状态目录、工作区、桌面端都清掉。先预演看它打算删什么,再真删:
# 只看不删
openclaw uninstall --dry-run --all
# 确认无误再来真的
openclaw uninstall --all
想留着工作区(你的 SOUL.md、记忆、产出文件)只删别的,就去掉 --all,按提示只勾 service / state / app 这几项——默认就会保留工作区目录。
万一 openclaw 命令已经没了、后台服务却还在跑,按这份手动清单走:
- 停服务、删服务:Linux / WSL 上它是 systemd 用户级服务。
macOS 上对应的是 launchd:systemctl --user disable --now openclaw-gateway.service rm -f ~/.config/systemd/user/openclaw-gateway.service systemctl --user daemon-reloadlaunchctl bootout gui/$UID/ai.openclaw.gateway,再删~/Library/LaunchAgents/ai.openclaw.gateway.plist。 - 删状态目录:这一步清掉大头(配置 + 凭据 + 会话 + 默认工作区一起没)。要留工作区的话先把它挪出去。
rm -rf ~/.openclaw - 删命令行本体:按你当初的装法选一条。
npm rm -g openclaw # npm 装的 pnpm remove -g openclaw # pnpm 装的 - 删本地模型文件:本地模型单独占地,不用了一并删(路径看你当初拉到哪)。
- 撤权限授权:之前给龙虾的文件/系统访问授权,到系统设置里撤掉。
- Docker 用户:换成删容器、删镜像、删挂载卷。
docker compose down docker rmi ghcr.io/openclaw/openclaw:latest docker volume prune # 谨慎,会删未使用的卷
走完这几步,龙虾就清干净了,不留垃圾。Node、Git 这些通用环境可以留着,它们不是龙虾专属的。
常见问题
- 升级 OpenClaw 会把我的配置和数据弄丢吗?
- 正常升级不会,配置、凭据、工作区都在 ~/.openclaw 里,升级换的只是代码。但升级前
openclaw backup create --verify打一份归档留底,几秒钟能省掉翻车的麻烦。Docker 用户只要数据是挂载出来的,拉新镜像重建也不丢。 - 升级后龙虾跑不起来了,怎么退回旧版本?
- 用
openclaw update --tag 旧版本号退回去,它会自己识别降级、换代码、重启 Gateway,所以升级前记版本号很重要。只有旧代码读不了新配置时才还原备份。Docker 用户把镜像标签指回旧版本重建容器即可——前提是别只用 latest,用带版本号的标签。 - 怎么把 OpenClaw 卸得一点不剩?
- 先
openclaw uninstall --dry-run --all预演,再openclaw uninstall --all真删,服务、状态目录、工作区、桌面端一次清掉。命令没了就手动:停删 systemd 用户服务、删 ~/.openclaw、npm rm -g openclaw,再删本地模型文件、撤权限授权。Docker 用户则删容器、删镜像、删挂载卷。