OpenClaw 入门:从安装配置到接入自定义模型

如果你第一次听说 OpenClaw,可以先把它理解成:

一个可以帮你“动手干活”的 AI 工作者。

普通聊天机器人主要是回答问题;OpenClaw 更像一个受控的执行环境。你可以让它写草稿、整理文件、检查日志、运行命令、改代码、生成报告。它不只是“说”,还可以在你允许的范围内“做”。

这篇文章会用尽量简单的方式,带你了解:

  • OpenClaw 适合做什么
  • 为什么建议把它当作 worker 使用
  • Linux / macOS / Windows WSL2 的准备方式
  • 如何用 Docker Compose 思路部署
  • 如何接入 OpenAI-compatible 自定义模型
  • 如何验证配置是否成功
  • 如何升级、改模型、卸载
  • 常见错误怎么判断
  • 新手必须注意的安全边界

本文不会包含任何真实 API Key、私有 token、生产密钥或私人信息。命令里的密钥都用占位符表示,你照着替换成自己的即可。


1. OpenClaw 适合做什么?

OpenClaw 可以把大语言模型接到一个真实的工作目录里,让 AI 帮你完成一些具体任务。

比如:

  • 帮你写 Markdown 草稿
  • 帮你检查项目文件
  • 帮你运行测试命令
  • 帮你查看日志并总结问题
  • 帮你生成部署说明
  • 帮你做简单的自动化任务
  • 帮你整理代码变更报告
  • 帮你检查某个服务是否正常运行

你可以把它想象成一个“AI 工程助手”。

不过,刚开始使用时,不建议一上来就给它全部权限。更安全的方式是:

先让 OpenClaw 做 worker,也就是执行具体任务的工人,而不是整个服务器的主人。

也就是说,它可以帮你干活,但重要操作仍然应该由你确认。

例如,适合让它做:

  • 在工作目录里写草稿
  • 生成配置模板
  • 查看非敏感日志
  • 跑测试
  • 输出报告
  • 检查某个目录下的文件结构
  • 对代码提出修改建议

不建议一开始就让它做:

  • 直接修改生产网站
  • 删除数据库
  • 修改 DNS
  • 改防火墙
  • 管理所有 Docker 容器
  • 拿到服务器所有权限
  • 读取你的所有私人目录
  • 接触真实生产密钥

这样做的好处是:既能享受 AI 自动化带来的效率,又不会让风险失控。


2. 先理解几个基本概念

在开始安装之前,先弄清楚几个词。

OpenClaw Gateway

Gateway 可以理解成 OpenClaw 的入口服务。

它负责接收请求、管理会话、调度 agent、连接模型等。

新手要记住一点:

Gateway 不应该随便暴露到公网。

如果 Gateway 被外部随便访问,可能会带来安全风险。

所以本文示例里会优先使用:

127.0.0.1

也就是只允许本机访问。


Worker

Worker 是“干活的人”。

你可以让 OpenClaw 在一个固定目录里工作,例如:

/opt/openclaw-worker/workspace

让它先在这个目录里写文件、改草稿、生成报告。这样即使它做错了,也比较容易控制影响范围。


API Key

API Key 可以理解成“访问模型服务的密码”。

如果别人拿到你的 API Key,就可能消耗你的额度,甚至访问你不希望别人访问的服务。

所以永远不要把真实 API Key:

  • 发到群里
  • 写进公开博客
  • 提交到 GitHub
  • 放进截图
  • 发给不可信的人
  • 写进可以被别人看到的日志

本文里出现的:

YOUR_API_KEY_HERE

都只是占位符,不是真实密钥。


OpenAI-compatible

OpenAI-compatible 的意思是:

这个模型服务不一定是 OpenAI 官方的,但它模仿 OpenAI 的接口格式。

常见情况包括:

  • 第三方模型平台
  • 自建模型网关
  • 公司内部模型服务
  • 本地或私有部署的模型代理

如果你的模型服务文档里写着:

OpenAI-compatible API

或者提供类似:

/v1/chat/completions

这样的接口,一般就可以尝试按本文方式接入。


3. 适合新手的整体流程

如果你是第一次部署,建议按这个顺序来:

  1. 准备 Docker 环境
  2. 准备一个独立目录
  3. docker-compose.yml
  4. 启动 OpenClaw Gateway
  5. 确认 Gateway 只绑定本机地址
  6. 使用 openclaw onboard 添加自定义模型
  7. 使用 openclaw models status 检查模型状态
  8. 使用 openclaw infer model run 测试模型
  9. 使用 openclaw agent --thinking off 测试 agent
  10. 先让 OpenClaw 在工作区里写草稿、查日志、生成报告
  11. 熟悉之后,再逐步扩大权限

不要一开始就追求“全自动控制整个服务器”。新手最稳妥的方式是:

小权限、小目录、小任务,先跑通,再扩大。


4. 系统准备:Linux

如果你使用的是 Linux 服务器,例如 Ubuntu、Debian、CentOS、Rocky Linux 等,推荐使用 Docker Compose 部署。

下面以 Ubuntu / Debian 系为例。

4.1 更新软件包

sudo apt update

4.2 安装常用工具

sudo apt install -y curl ca-certificates gnupg

4.3 安装 Docker

如果你的系统还没有 Docker,可以参考 Docker 官方文档安装。

安装完成后,检查 Docker 是否可用:

docker --version

再检查 Docker Compose 是否可用:

docker compose version

如果能看到版本号,说明 Docker 和 Docker Compose 基本可用。

4.4 普通用户是否需要加入 docker 组?

有些系统上,直接运行 Docker 命令可能会提示权限不足。

你可以临时使用:

sudo docker ps

如果你希望当前用户可以直接运行 Docker,可以执行:

sudo usermod -aG docker "$USER"

然后重新登录一次终端。

注意:加入 docker 组意味着这个用户拥有很高的 Docker 控制权限。个人服务器通常可以接受,但多人服务器要谨慎。


5. 系统准备:macOS

macOS 上建议使用 Docker Desktop。

5.1 安装 Docker Desktop

去 Docker 官网下载安装 Docker Desktop for Mac。

安装完成后,打开 Docker Desktop,等待它启动完成。

5.2 检查 Docker 是否可用

打开终端,运行:

docker --version

再运行:

docker compose version

如果能看到版本号,说明 Docker 可用。

5.3 macOS 上推荐的工作目录

Linux 服务器通常用:

/opt/openclaw-worker

但 macOS 上 /opt 可能需要额外权限。新手可以使用用户目录下的路径,例如:

~/openclaw-worker

创建目录:

mkdir -p ~/openclaw-worker/{state,workspace,auth-profile-secrets,reports,backups}

进入目录:

cd ~/openclaw-worker

后文如果出现:

/opt/openclaw-worker

macOS 用户可以替换成:

~/openclaw-worker

6. 系统准备:Windows / WSL2

Windows 上推荐使用 WSL2,也就是 Windows Subsystem for Linux。

简单理解:

WSL2 可以让你在 Windows 里运行一个 Linux 环境。

OpenClaw 这类工具放在 WSL2 里跑,会比直接在 Windows 命令行里折腾更顺。

6.1 安装 WSL2

在 Windows PowerShell 里运行:

wsl --install

安装完成后,按提示重启电脑。

然后打开 Ubuntu 终端。

如果你已经安装过 WSL,可以查看发行版:

wsl -l -v

建议使用 WSL2,而不是 WSL1。

6.2 安装 Docker Desktop

Windows 上也推荐安装 Docker Desktop。

安装时注意启用 WSL2 integration。

打开 Docker Desktop 后,可以在设置里找到类似:

Resources → WSL Integration

把你使用的 Ubuntu 发行版打开。

6.3 在 WSL2 里检查 Docker

进入 Ubuntu 终端,运行:

docker --version

再运行:

docker compose version

如果能看到版本号,说明 WSL2 里的 Docker 可以用了。

6.4 WSL2 上推荐的工作目录

不要把工作目录放在 Windows 盘的路径里,例如:

/mnt/c/Users/你的名字/...

虽然能用,但有时性能和权限体验不太好。

建议放在 WSL2 的 Linux 文件系统里,例如:

~/openclaw-worker

创建目录:

mkdir -p ~/openclaw-worker/{state,workspace,auth-profile-secrets,reports,backups}

进入目录:

cd ~/openclaw-worker

后文如果出现:

/opt/openclaw-worker

Windows / WSL2 用户可以替换成:

~/openclaw-worker

7. 准备一个独立目录

这一步做什么:

我们先给 OpenClaw 准备一个单独的目录,把配置、工作区、状态文件分开放好。这样以后排查和备份都会简单很多。

Linux 服务器示例目录使用:

/opt/openclaw-worker

macOS / WSL2 新手也可以使用:

~/openclaw-worker

本文后续主要用 Linux 路径举例:

/opt/openclaw-worker

你可以按下面的结构准备:

/opt/openclaw-worker
├── docker-compose.yml
├── state/
├── workspace/
├── auth-profile-secrets/
├── reports/
└── backups/

这些目录大概是什么意思:

state/

保存 OpenClaw 的运行状态,比如会话、任务、内部数据等。

workspace/

这是 OpenClaw worker 的工作区。

你让它写文件、改草稿、生成报告,通常都应该先放在这里。

auth-profile-secrets/

保存模型 API Key 等认证信息。

这个目录很敏感,不要公开,不要提交到 Git,也不要截图发群里。

reports/

可以用来放 OpenClaw 生成的检查报告、任务结果等。

backups/

可以用来放配置备份。注意,备份里也可能有敏感信息,也要保护好。

如果你是在 Linux 服务器上操作,可以创建目录:

sudo mkdir -p /opt/openclaw-worker/{state,workspace,auth-profile-secrets,reports,backups}

然后进入目录:

cd /opt/openclaw-worker

如果你是在 macOS 或 WSL2 上操作,可以创建:

mkdir -p ~/openclaw-worker/{state,workspace,auth-profile-secrets,reports,backups}

然后进入目录:

cd ~/openclaw-worker

8. 用 Docker Compose 部署 OpenClaw

这一步做什么:

Docker 可以把 OpenClaw 放在一个相对独立的容器里运行。Docker Compose 是 Docker 的一个常用工具,可以用一个配置文件管理容器启动方式。

你不需要一开始理解 Docker 的所有细节,只要先记住:

Docker Compose 就是用一个 docker-compose.yml 文件描述“这个服务怎么跑”。

8.1 新手最重要的安全原则

新手最重要的一点是:

不要把 Gateway 直接暴露到公网。

Gateway 可以理解为 OpenClaw 的控制入口。如果它被公网随便访问,别人可能会尝试触发你的 agent 或读取信息。

推荐只绑定到本机地址:

127.0.0.1

这叫“本地回环地址”,意思是只有这台机器自己能访问。

不要一开始就绑定到:

0.0.0.0

0.0.0.0 通常表示外部也可能访问到,风险更高。


8.2 docker-compose.yml 示例

在 OpenClaw 工作目录里创建文件:

nano docker-compose.yml

写入类似下面的内容。

注意:不同版本的 OpenClaw 镜像名、环境变量、挂载路径和端口可能会变化。请以你正在使用的官方文档为准。下面只是“新手理解用”的 Compose 思路模板,不建议在没核对官方文档的情况下原样复制。

services:
  openclaw-gateway:
    image: OPENCLAW_IMAGE_HERE
    restart: unless-stopped
    ports:
      - "127.0.0.1:18789:18789"
      - "127.0.0.1:18790:18790"
    volumes:
      - ./state:/app/state
      - ./workspace:/app/workspace
      - ./auth-profile-secrets:/app/auth-profile-secrets
      - ./reports:/app/reports

你需要把:

OPENCLAW_IMAGE_HERE

替换成你实际使用的 OpenClaw 镜像名。

如果官方文档给了完整的 docker-compose.yml,优先使用官方文档里的版本。你只需要特别检查两点:

  1. ports 是否绑定到了 127.0.0.1
  2. 敏感目录是否单独挂载并妥善保护

8.3 启动服务

docker-compose.yml 所在目录运行:

docker compose up -d

如果你是在 Linux 上并且没有把当前用户加入 docker 组,可能需要:

sudo docker compose up -d

查看容器状态:

docker compose ps

如果看到容器处于运行状态,说明服务已经启动。


8.4 查看日志

如果启动失败,可以看日志:

docker compose logs --tail=100

如果只想看某个服务,可以运行:

docker compose logs --tail=100 openclaw-gateway

8.5 检查 Gateway 是否活着

启动后,你可以用下面命令检查 Gateway 是否活着:

curl http://127.0.0.1:18789/healthz

如果它返回正常,只能说明:

Gateway 进程启动了。

它不代表模型已经配置成功,也不代表 agent 已经能正常工作。模型和 agent 还需要后面的步骤验证。


9. 安装或使用 OpenClaw CLI

后续命令会写成 openclaw ...,这是为了让教程更容易读。

如果你是用 Docker Compose 部署,并且项目里提供 openclaw-cli 服务,也可以把命令写成这种形式:

docker compose run --rm openclaw-cli openclaw --help

有些封装镜像会把入口命令直接设成 openclaw,这时实际命令可能是:

docker compose run --rm openclaw-cli --help

简单说:如果直接运行 openclaw 提示命令不存在,就按你的部署方式改成 docker compose run --rm openclaw-cli ...

后续会用到类似下面的命令:

openclaw models status

这需要你的环境里可以执行 openclaw CLI。

有些部署方式会在宿主机安装 CLI,有些方式会让你进入容器里执行命令,还有些方式会提供一条封装脚本。

你可以先检查本机是否有 openclaw 命令:

openclaw --help

如果提示命令不存在,你需要根据你的安装方式选择一种:

方式 A:按官方文档安装 CLI

这是最推荐的方式。安装完成后,再运行:

openclaw --help

能看到帮助信息即可。

方式 B:进入容器里执行

如果你的 openclaw 命令只在容器里可用,可以先查看服务名:

docker compose ps

然后进入容器:

docker compose exec openclaw-gateway sh

进入后再运行:

openclaw --help

如果容器里没有 sh,可以尝试:

docker compose exec openclaw-gateway bash

方式 C:使用项目提供的脚本

有些部署包会提供类似:

./scripts/status.sh

或者:

./openclaw

这样的封装脚本。

如果官方文档或项目 README 提供了脚本,优先按它来。


10. 什么是 API Key 和自定义模型?

这一步做什么:

在接入模型之前,先理解几个基本概念。

API Key 可以理解成“访问模型服务的密码”。

如果你要调用某个模型供应商的接口,一般需要提供 API Key。别人拿到你的 API Key,就可能消耗你的额度,所以一定不要公开。

自定义模型 在这里通常指:

不是 OpenClaw 默认内置的模型,而是你自己提供的模型服务。

OpenAI-compatible 的意思是:

这个模型服务虽然不一定是 OpenAI 官方的,但它的接口格式模仿 OpenAI,所以很多工具可以用类似方式调用它。

常见情况包括:

  • 第三方模型平台
  • 自建模型网关
  • 公司内部模型服务
  • 本地或私有部署的模型代理

如果你的模型服务说明里写着“OpenAI-compatible API”,一般就可以尝试用本文的方式接入。


11. 使用 onboard 接入自定义模型

这一步做什么:

我们要告诉 OpenClaw:你的模型服务在哪里、模型叫什么、API Key 是什么、按哪种兼容格式调用。

可以使用类似下面的命令模板:

openclaw onboard \
  --auth-choice custom-api-key \
  --custom-provider-id my-custom-provider \
  --custom-base-url https://api.example.com/v1 \
  --custom-model-id my-model-id \
  --custom-api-key YOUR_API_KEY_HERE \
  --custom-compatibility openai

你需要把里面的示例值换成自己的。

例如:

openclaw onboard \
  --auth-choice custom-api-key \
  --custom-provider-id openai-compatible-demo \
  --custom-base-url https://api.example.com/v1 \
  --custom-model-id demo-chat-model \
  --custom-api-key YOUR_API_KEY_HERE \
  --custom-compatibility openai

注意:

上面的:

YOUR_API_KEY_HERE

只是占位符,不是真实 key。

写博客、截图、发群、提交 Git 时都不要放真实 API Key。


12. 参数逐个解释

这一步做什么:

我们把上面的参数一个个说清楚,避免你不知道该填什么。


12.1 --auth-choice custom-api-key

--auth-choice custom-api-key

意思是:使用自定义 API Key 登录模型服务。


12.2 --custom-provider-id

--custom-provider-id openai-compatible-demo

意思是:给这个模型服务起一个名字。

这个名字以后会在 OpenClaw 里用到。

建议用简单英文、小写、无空格,例如:

my-openai-compatible
deepseek-proxy
local-model
company-gateway

不要使用:

我的模型
my model
test/abc

新手建议只用:

  • 小写字母
  • 数字
  • 中横线

12.3 --custom-base-url

--custom-base-url https://api.example.com/v1

意思是:模型服务的接口地址。

很多 OpenAI-compatible 服务地址会以 /v1 结尾,比如:

https://api.example.com/v1

你需要看你的模型供应商文档,填它提供的 base URL。

常见错误是多写或少写 /v1

例如,供应商文档写的是:

https://api.example.com/v1

你就不要只填:

https://api.example.com

也不要乱加成:

https://api.example.com/v1/chat/completions

一般这里填的是 base URL,不是完整的 chat completions 地址。


12.4 --custom-model-id

--custom-model-id demo-chat-model

意思是:你要调用的模型名称。

这个值必须和模型服务支持的名称一致。

如果供应商文档里说模型 ID 是:

gpt-example

那你这里就应该填:

--custom-model-id gpt-example

不要自己随便改名。


12.5 --custom-api-key

--custom-api-key YOUR_API_KEY_HERE

意思是:你的 API Key。

请只在自己的服务器终端里填写真实 key。不要把真实 key:

  • 发到群里
  • 写进公开博客
  • 提交到 GitHub
  • 放进截图
  • 发给不可信的人

如果你要写教程,可以写:

YOUR_API_KEY_HERE

或者:

sk-xxx…xxxx

但不要写真实内容。


12.6 --custom-compatibility openai

--custom-compatibility openai

意思是:按 OpenAI-compatible 的接口格式调用这个模型。

如果你的模型服务文档写的是 OpenAI-compatible,通常就填:

openai

13. 第一次验证:查看模型状态

这一步做什么:

先确认 OpenClaw 是否已经识别到你配置的模型。

运行:

openclaw models status

你需要看几个点:

  • 能不能看到刚才设置的 provider
  • model id 有没有写对
  • 有没有提示找不到 API Key
  • 有没有明显的配置错误

如果这一步都看不到你的模型,先不要继续跑 agent。

应该先回头检查 onboard 命令有没有填错。


14. 第二次验证:直接测试模型推理

这一步做什么:

确认模型服务本身能不能被调用。

运行:

openclaw infer model run \
  --model openai-compatible-demo/demo-chat-model \
  --prompt "Reply with exactly: MODEL_OK"

这里的:

openai-compatible-demo/demo-chat-model

要换成你的:

provider-id/model-id

如果配置正常,模型应该回复类似:

MODEL_OK

如果这里失败,通常说明问题在模型连接本身,比如:

  • API Key 不对
  • base URL 不对
  • model id 不对
  • 网络不通
  • 模型服务不兼容
  • 账户额度不足
  • 模型服务限制了当前地区或 IP

先把这一步跑通,再继续下一步。


15. 第三次验证:运行 agent smoke test

这一步做什么:

确认 OpenClaw agent 能不能真正使用这个模型。

“Smoke test” 可以理解成“冒烟测试”,就是最小可用测试。

它不是完整测试,只是确认基本链路能跑起来。

运行:

openclaw agent \
  --model openai-compatible-demo/demo-chat-model \
  --thinking off \
  --message "Reply with exactly: OPENCLAW_AGENT_OK"

这里特别加了:

--thinking off

这是因为有些自定义模型不支持 thinking / reasoning 参数。

thinking 可以理解成模型的“推理强度”设置,但不是所有模型都支持。新手第一次测试时,建议先关掉,减少兼容问题。

如果成功,应该看到类似:

OPENCLAW_AGENT_OK

这说明:

  • 模型可以调用
  • agent 可以启动
  • OpenClaw 能把消息交给模型
  • 基础配置已经打通

16. 给新手的第一个安全任务

模型跑通后,不要马上让它改生产服务。

建议先让它做一个完全安全的小任务。

例如,在工作区里创建一份测试报告:

openclaw agent \
  --model openai-compatible-demo/demo-chat-model \
  --thinking off \
  --message "在 workspace 里写一份 hello-openclaw.md,内容包括:当前任务目标、你能做什么、你不能做什么。不要读取敏感文件。"

如果 agent 能完成,并且结果在你的工作目录里,就说明你已经完成了基础入门。


17. 如何修改默认模型

有时你已经接入了多个模型,想换一个默认使用的模型。

思路通常是:

  1. 先确认模型存在
  2. 再修改默认模型配置
  3. 最后跑一次 smoke test

先查看模型:

openclaw models status

假设你想使用的模型是:

new-provider/new-model

可以在运行 agent 时临时指定:

openclaw agent \
  --model new-provider/new-model \
  --thinking off \
  --message "Reply with exactly: NEW_MODEL_OK"

如果你使用的 OpenClaw 版本支持设置默认模型,可以按官方文档修改配置或使用对应命令。

新手建议先用 --model 临时指定,确认能跑通后,再考虑改默认配置。


18. 如何增加一个新模型

如果你想再接入一个模型,不要直接覆盖原来的配置。可以新增一个 provider id。

例如原来有:

openai-compatible-demo/demo-chat-model

现在想新增:

fast-provider/fast-model

可以再次运行:

openclaw onboard \
  --auth-choice custom-api-key \
  --custom-provider-id fast-provider \
  --custom-base-url https://api.example.com/v1 \
  --custom-model-id fast-model \
  --custom-api-key YOUR_API_KEY_HERE \
  --custom-compatibility openai

然后验证:

openclaw models status

再测试:

openclaw infer model run \
  --model fast-provider/fast-model \
  --prompt "Reply with exactly: FAST_MODEL_OK"

最后测试 agent:

openclaw agent \
  --model fast-provider/fast-model \
  --thinking off \
  --message "Reply with exactly: FAST_AGENT_OK"

19. 如何更换 API Key

如果你的 API Key 泄露、过期、额度用完,或者你换了供应商账号,就需要更换 API Key。

推荐做法:

  1. 先去模型服务商后台创建新的 API Key
  2. 不要把新 key 发给别人
  3. 在 OpenClaw 中重新 onboard 或更新认证信息
  4. 测试新 key 是否可用
  5. 去供应商后台删除旧 key

如果你使用 openclaw onboard 更新同一个 provider,可以类似这样:

openclaw onboard \
  --auth-choice custom-api-key \
  --custom-provider-id openai-compatible-demo \
  --custom-base-url https://api.example.com/v1 \
  --custom-model-id demo-chat-model \
  --custom-api-key NEW_API_KEY_HERE \
  --custom-compatibility openai

然后测试:

openclaw infer model run \
  --model openai-compatible-demo/demo-chat-model \
  --prompt "Reply with exactly: KEY_UPDATED_OK"

如果成功,再考虑去供应商后台禁用旧 key。

不要只在本地改完就以为完成了。真正安全的做法是:

新 key 测试通过后,旧 key 要在供应商后台撤销。


20. 如何升级 OpenClaw

升级前,先做三件事:

  1. 备份配置
  2. 备份状态目录
  3. 看一眼当前版本和日志

20.1 查看当前容器状态

进入 OpenClaw 目录:

cd /opt/openclaw-worker

macOS / WSL2 用户如果使用的是用户目录:

cd ~/openclaw-worker

查看容器:

docker compose ps

查看日志:

docker compose logs --tail=100

20.2 备份重要目录

建议备份这些内容:

docker-compose.yml
state/
auth-profile-secrets/

可以创建一个本地备份目录:

mkdir -p backups

然后复制配置文件:

cp docker-compose.yml backups/docker-compose.yml.bak

备份状态和认证目录时要注意:里面可能包含敏感信息,不要上传公开仓库。

可以用压缩包备份:

tar -czf backups/openclaw-backup.tar.gz docker-compose.yml state auth-profile-secrets

如果你的目录很大,备份可能需要一些时间。

20.3 拉取新镜像

如果你的 Compose 文件使用的是镜像部署,可以运行:

docker compose pull

20.4 重启服务

docker compose up -d

20.5 检查升级后状态

检查容器:

docker compose ps

检查 Gateway:

curl http://127.0.0.1:18789/healthz

检查模型:

openclaw models status

测试模型:

openclaw infer model run \
  --model openai-compatible-demo/demo-chat-model \
  --prompt "Reply with exactly: UPGRADE_MODEL_OK"

测试 agent:

openclaw agent \
  --model openai-compatible-demo/demo-chat-model \
  --thinking off \
  --message "Reply with exactly: UPGRADE_AGENT_OK"

如果这几步都通过,说明升级后的基础链路基本正常。


21. 如何回滚

如果升级后出问题,不要慌。

先看日志:

docker compose logs --tail=200

如果你知道旧版本镜像,可以把 docker-compose.yml 里的镜像标签改回旧版本。

例如从:

image: OPENCLAW_IMAGE:latest

改成:

image: OPENCLAW_IMAGE:旧版本号

然后运行:

docker compose up -d

再验证:

curl http://127.0.0.1:18789/healthz

如果你不确定旧版本号,不要乱删目录。先保留现场,查看日志和备份。

尤其不要随便删除:

state/
auth-profile-secrets/

这些目录里可能有重要状态和认证信息。


22. 如何停止 OpenClaw

如果只是临时停止服务,可以进入 OpenClaw 目录后运行:

docker compose stop

再次启动:

docker compose start

或者:

docker compose up -d

23. 如何卸载 OpenClaw

卸载分两种:保留数据和彻底删除。

先记住一句:删除本地 OpenClaw 不等于撤销模型服务商后台的 API Key。如果你以后不再使用这个 key,还要去模型服务商后台手动禁用或删除它。

新手建议先做“保留数据”的卸载。


23.1 停止并移除容器,但保留数据

进入 OpenClaw 目录:

cd /opt/openclaw-worker

macOS / WSL2 用户:

cd ~/openclaw-worker

停止并移除容器:

docker compose down

这通常会移除容器和网络,但保留你目录里的文件,例如:

state/
workspace/
auth-profile-secrets/
reports/
backups/

以后你还可以重新启动。


23.2 删除镜像

如果你想删除本地镜像,可以先查看镜像:

docker images

找到 OpenClaw 相关镜像后删除:

docker rmi IMAGE_NAME_OR_ID

注意把:

IMAGE_NAME_OR_ID

换成真实镜像名或镜像 ID。

如果你不确定哪个镜像是 OpenClaw,不要乱删。


23.3 彻底删除本地文件

如果你确定不要这些数据了,可以删除工作目录。

Linux 示例:

sudo rm -rf /opt/openclaw-worker

macOS / WSL2 示例:

rm -rf ~/openclaw-worker

注意:这一步会删除:

  • 配置
  • 工作区文件
  • 状态
  • API Key 保存目录
  • 报告
  • 备份

执行前请确认你真的不需要了。

更稳妥的方式是先改名保留一段时间:

Linux:

sudo mv /opt/openclaw-worker /opt/openclaw-worker.old

macOS / WSL2:

mv ~/openclaw-worker ~/openclaw-worker.old

确认一段时间后不再需要,再删除 .old 目录。


24. 常见错误 1:No API key found

如果你看到:

No API key found

意思是:OpenClaw 没找到可用的 API Key。

常见原因:

  • onboard 时 API Key 没保存成功
  • provider id 写错了
  • 当前容器没有挂载认证目录
  • 你在另一个用户或另一个环境里运行命令
  • API Key 放错位置了
  • 宿主机和容器里的配置目录不是同一个

建议先运行:

openclaw models status

看看模型状态里是否提示认证缺失。

然后检查你是否正确使用了:

--custom-api-key

也要确认部署时有保留类似目录:

/opt/openclaw-worker/auth-profile-secrets

这个目录用于保存认证信息,但不要把里面内容公开。


25. 常见错误 2:thinking low unsupported

如果你看到类似:

thinking low unsupported

意思是:当前模型不支持这个 thinking 设置。

这不是说模型一定坏了,而是它可能不认识这个参数。

解决方式很简单:

测试时加上:

--thinking off

例如:

openclaw agent \
  --model openai-compatible-demo/demo-chat-model \
  --thinking off \
  --message "Reply with exactly: OPENCLAW_AGENT_OK"

如果关闭 thinking 后成功,说明模型本身可以用,只是不支持 thinking 参数。


26. 常见错误 3:healthz 正常,但模型没通

有时你运行:

curl http://127.0.0.1:18789/healthz

结果正常,但模型测试失败。

这很常见,因为:

healthz 只说明 Gateway 活着,不说明模型配置正确。

你应该继续用这三条命令完整验证:

openclaw models status
openclaw infer model run \
  --model openai-compatible-demo/demo-chat-model \
  --prompt "Reply with exactly: MODEL_OK"
openclaw agent \
  --model openai-compatible-demo/demo-chat-model \
  --thinking off \
  --message "Reply with exactly: OPENCLAW_AGENT_OK"

只有这几步都通过,才说明模型和 agent 的基础链路比较可靠。


27. 常见错误 4:gateway pairing / scope pending

如果你看到类似:

pairing pending

或者:

scope pending

可以先简单理解为:

Gateway 还没有完成某些连接、配对或授权。

这通常和外部客户端、消息通道、节点连接有关,不一定是模型本身的问题。

可能原因包括:

  • 客户端还没有完成配对
  • 当前会话权限不够
  • 某个消息通道还没授权
  • Gateway 启动了,但入口还没完全连好

这时你可以分开判断:

  • healthz 正常:Gateway 活着
  • infer model run 正常:模型能调用
  • agent run 正常:agent 能使用模型
  • pairing / scope pending:外部接入或授权还需要继续处理

不要把这些问题混在一起排查。


28. 常见错误 5:Connection refused

如果你看到类似:

Connection refused

通常表示连接不上服务。

可能原因:

  • Gateway 没启动
  • 端口写错了
  • 容器启动失败
  • 你在错误的机器上访问
  • Docker Desktop 没运行
  • WSL2 和 Windows 环境没连上

排查顺序:

docker compose ps

看容器是否运行。

再看日志:

docker compose logs --tail=100

再检查端口:

curl http://127.0.0.1:18789/healthz

如果是在 WSL2 里运行 OpenClaw,就尽量也在 WSL2 里执行这些命令,不要在 Windows PowerShell 和 WSL2 之间来回混用。


29. 常见错误 6:model not found

如果你看到类似:

model not found

常见原因:

  • --custom-model-id 写错了
  • 模型供应商没有开放这个模型
  • 你的账号没有权限使用这个模型
  • provider-id/model-id 拼错了
  • 模型服务实际要求另一个模型名称

先检查:

openclaw models status

再检查你运行命令里的模型名:

provider-id/model-id

例如你 onboard 时写的是:

openai-compatible-demo

模型是:

demo-chat-model

那运行时应该写:

openai-compatible-demo/demo-chat-model

不要写成:

demo-chat-model

也不要写成:

openai-compatible-demo

30. 常见错误 7:401 / 403

如果你看到:

401 Unauthorized

或者:

403 Forbidden

通常和认证或权限有关。

常见原因:

  • API Key 错了
  • API Key 已过期
  • API Key 被禁用
  • 当前账号没有权限使用这个模型
  • 模型服务限制了 IP 或地区
  • base URL 填到了错误的平台

建议:

  1. 去模型服务商后台确认 API Key 是否有效
  2. 确认账号是否还有额度
  3. 确认模型 ID 是否对当前账号开放
  4. 重新 onboard 一次
  5. 再运行 infer model run 测试

31. 常见错误 8:429 / rate limit

如果你看到:

429 Too Many Requests

或者提示:

rate limit

通常表示请求太频繁或额度限制。

解决方式:

  • 等一会儿再试
  • 降低并发
  • 换更高额度的模型服务
  • 检查是否有程序在循环调用模型
  • 查看供应商后台的用量统计

新手不要写循环脚本疯狂测试模型。每次测试用一条简单 prompt 就够了。


32. 常见错误 9:context length exceeded

如果你看到类似:

context length exceeded

意思是输入内容太长,超过了模型上下文限制。

解决方式:

  • 缩短 prompt
  • 少贴一点日志
  • 分批处理文件
  • 换上下文更长的模型
  • 让 agent 先总结,再继续下一步

新手常见错误是一次性把几万行日志全部塞给模型。更好的方式是:

  1. 先让它看最后 100 行
  2. 再根据错误关键词扩大范围
  3. 必要时分段分析

33. 常见错误 10:Docker permission denied

如果你看到类似:

permission denied

并且和 Docker 有关,可能是当前用户没有权限使用 Docker。

可以临时用:

sudo docker compose ps

如果这样能成功,说明是 Docker 权限问题。

你可以选择:

方式 A:继续使用 sudo

sudo docker compose up -d

方式 B:把当前用户加入 docker 组

sudo usermod -aG docker "$USER"

然后重新登录终端。

注意:加入 docker 组会提升用户权限。多人服务器上要谨慎。


34. FAQ

Q1:OpenClaw 是聊天机器人吗?

不完全是。

聊天机器人主要是回答问题。OpenClaw 更像一个受控执行环境,可以在你允许的范围内读文件、写文件、运行命令、生成报告、执行任务。


Q2:我一定要用 Docker 吗?

不一定,但新手推荐 Docker Compose。

Docker Compose 的好处是:

  • 部署结构清楚
  • 配置集中
  • 容器容易启动和停止
  • 数据目录可以单独挂载
  • 出问题时比较容易回滚

如果你非常熟悉裸机部署,也可以按官方文档使用其他方式。


Q3:为什么不建议直接暴露到公网?

因为 Gateway 是控制入口。

如果你把它直接暴露到公网,就要考虑认证、访问控制、防火墙、反向代理、TLS、日志审计等问题。

新手阶段建议只绑定:

127.0.0.1

如果以后确实需要公网访问,请先理解安全配置,再做暴露。


Q4:127.0.0.10.0.0.0 有什么区别?

简单理解:

127.0.0.1

只允许本机访问。

0.0.0.0

通常表示监听所有网卡,外部机器也可能访问到。

新手优先用:

127.0.0.1

Q5:我可以把 API Key 写进 docker-compose.yml 吗?

不推荐。

docker-compose.yml 经常会被复制、备份、发给别人排查,甚至提交到 Git。把 API Key 写进去很容易泄露。

更推荐使用 OpenClaw 自己的 onboard / secrets 机制,或者使用受保护的环境变量和密钥管理方式。


Q6:我可以截图给别人看配置吗?

可以,但要先打码。

重点遮住:

  • API Key
  • token
  • cookie
  • 服务器公网 IP
  • 内网敏感地址
  • 用户名
  • 私有仓库地址
  • 生产数据库连接信息

如果不确定,就不要发原图。


Q7:healthz 正常是不是说明全部成功?

不是。

healthz 只说明 Gateway 活着。

你还需要测试:

openclaw models status
openclaw infer model run \
  --model openai-compatible-demo/demo-chat-model \
  --prompt "Reply with exactly: MODEL_OK"
openclaw agent \
  --model openai-compatible-demo/demo-chat-model \
  --thinking off \
  --message "Reply with exactly: OPENCLAW_AGENT_OK"

Q8:为什么要加 --thinking off

因为有些 OpenAI-compatible 模型不支持 thinking / reasoning 参数。

第一次测试时加上:

--thinking off

可以减少兼容问题。

等基础链路跑通后,再根据模型能力尝试开启其他参数。


Q9:我能让 OpenClaw 管理 Docker 吗?

可以,但新手不建议一开始就这样做。

尤其不要随便挂载:

/var/run/docker.sock

这会让容器拥有很高的 Docker 控制权限。不了解风险前,不要随便给。


Q10:我能让 OpenClaw 直接改生产网站吗?

不建议新手这样做。

更安全的流程是:

  1. 让 OpenClaw 生成草稿或 patch
  2. 你自己 review
  3. 在测试环境验证
  4. 再发布到生产

生产系统不要直接交给刚配置好的 agent。


Q11:可以同时接多个模型吗?

可以。

建议每个模型使用不同的 provider id,例如:

fast-model
cheap-model
coding-model
company-gateway

使用时通过:

provider-id/model-id

来指定。


Q12:换模型后原来的模型会消失吗?

不一定。

如果你使用新的 provider id,通常是新增模型。

如果你复用同一个 provider id,可能会更新原配置。

新手建议新增模型时使用新的 provider id,避免混淆。


Q13:我应该选什么模型?

新手可以按用途分:

  • 写作、总结:便宜、速度快的模型
  • 代码、复杂任务:能力更强的模型
  • 长日志分析:上下文更长的模型
  • 私有数据:优先考虑可信服务或私有部署

不建议只看价格,也不建议只看参数规模。实际能不能稳定调用、是否兼容 OpenAI API、错误信息是否清楚,也很重要。


Q14:OpenClaw 会不会自动把我的文件发出去?

只要模型调用发生,发送给模型的 prompt 和上下文就可能离开本机,进入模型服务商的 API。

所以新手要注意:

  • 不要让它读取敏感目录
  • 不要把密钥贴进 prompt
  • 不要让它总结包含隐私的日志
  • 不要把生产数据库内容交给外部模型

如果你处理高度敏感数据,应该使用可信的私有模型服务,并严格限制工作目录。


Q15:我可以把 auth-profile-secrets/ 提交到 Git 吗?

不可以。

这个目录可能包含认证信息。应该加入 .gitignore,不要提交到任何公开或不可信仓库。


Q16:升级前一定要备份吗?

强烈建议。

至少备份:

docker-compose.yml
state/
auth-profile-secrets/

如果升级失败,备份能帮你回滚。


Q17:卸载时可以直接删目录吗?

可以,但不推荐一上来就删。

更稳妥的方式是先:

docker compose down

然后把目录改名保留:

mv ~/openclaw-worker ~/openclaw-worker.old

确认不再需要后,再删除。


Q18:为什么建议用独立目录?

因为独立目录更容易:

  • 备份
  • 排查
  • 卸载
  • 控制权限
  • 避免误伤其他项目

不要一开始就把 OpenClaw 放进你的主项目、生产目录或私人文件夹里。


35. 安全提醒:新手一定要记住

OpenClaw 能做很多事,所以更要注意边界。

不要在群里贴 API Key

API Key 就像密码,泄露后可能被别人使用你的额度。


不要裸露 Gateway

新手优先绑定:

127.0.0.1

不要直接开放到公网。


不要随便挂 docker.sock

docker.sock 会给容器很高的 Docker 控制权限。不了解风险前,不要随便挂载。


生产站点先写草稿

如果你要让 OpenClaw 帮你写博客、改页面、生成配置,先让它输出草稿或报告。确认没问题后,再手动发布或由可靠流程发布。


不要一开始给全部权限

先让它在类似下面的目录里工作:

/opt/openclaw-worker/workspace

或者:

~/openclaw-worker/workspace

等你确认它稳定可靠,再逐步增加能力。


不要让它读取敏感目录

新手不要让 OpenClaw 随便读取:

~/.ssh
~/.config
/etc
数据库备份目录
生产密钥目录
浏览器配置目录

如果需要分析配置,先复制一份脱敏后的样本到 workspace。


不要让模型看到真实密钥

即使你信任 OpenClaw,也不代表你应该把密钥发给外部模型。

排查问题时,可以把真实值替换成:

REDACTED_API_KEY
REDACTED_PASSWORD
REDACTED_TOKEN

36. 推荐的新手流程

如果你是第一次部署,可以按这个顺序来:

  1. 准备 Docker
  2. 准备 /opt/openclaw-worker~/openclaw-worker
  3. 创建 stateworkspaceauth-profile-secrets
  4. 用 Docker Compose 启动 OpenClaw
  5. 确认 Gateway 只绑定本机地址
  6. 用 onboard 添加自定义模型
  7. models status 检查模型状态
  8. infer model run 测试模型
  9. agent --thinking off 测试 agent
  10. 先让 OpenClaw 写草稿、查日志、生成报告
  11. 不要马上给生产系统写权限
  12. 确认稳定后,再考虑升级权限和接入更多工具

这样一步一步来,成功率更高,也更安全。


37. 完成检查清单

部署完成后,可以对照下面检查:

  • [ ] 已安装 Docker
  • [ ] 已安装 Docker Compose
  • [ ] Linux 用户知道自己的部署目录
  • [ ] macOS 用户已启动 Docker Desktop
  • [ ] Windows 用户已使用 WSL2
  • [ ] 已创建独立目录,例如 /opt/openclaw-worker~/openclaw-worker
  • [ ] 已准备 state/
  • [ ] 已准备 workspace/
  • [ ] 已准备 auth-profile-secrets/
  • [ ] 已准备 reports/
  • [ ] 已准备 backups/
  • [ ] 已创建 docker-compose.yml
  • [ ] Gateway 没有直接暴露到公网
  • [ ] 端口优先绑定到 127.0.0.1
  • [ ] docker compose ps 能看到服务运行
  • [ ] curl http://127.0.0.1:18789/healthz 返回正常
  • [ ] 已使用 openclaw onboard 添加自定义模型
  • [ ] onboard 命令包含 --auth-choice custom-api-key
  • [ ] onboard 命令包含 --custom-provider-id
  • [ ] onboard 命令包含 --custom-base-url
  • [ ] onboard 命令包含 --custom-model-id
  • [ ] onboard 命令包含 --custom-api-key
  • [ ] onboard 命令包含 --custom-compatibility openai
  • [ ] openclaw models status 能看到模型
  • [ ] openclaw infer model run 能返回预期内容
  • [ ] openclaw agent --thinking off 能返回 OPENCLAW_AGENT_OK
  • [ ] 没有在公开地方泄露 API Key
  • [ ] 没有随便挂载 docker.sock
  • [ ] 没有直接给生产站点写权限
  • [ ] 已理解 healthz 只代表 Gateway 活着,不代表模型一定配置成功
  • [ ] 已知道如何停止服务:docker compose stop
  • [ ] 已知道如何卸载容器:docker compose down
  • [ ] 已知道升级前要备份 state/auth-profile-secrets/

38. 最后建议

OpenClaw 最适合的起步方式,不是“一次给它所有权限”,而是先把它当成一个可靠 worker:

让它在清楚的边界里帮你执行任务、生成草稿、检查问题。

等你熟悉之后,再逐步扩大它能做的事情。

新手最稳的路线是:

先跑通模型 → 再跑通 agent → 再限制目录做小任务 → 再逐步增加能力

不要急着把生产系统交给它。

先让它在安全的工作区里,把一件小事做好。


39. 本文发布前的审核重点

这篇文章适合小白照着做,但仍然有几件事要自己核对:

  • OpenClaw 版本可能变化,命令参数以你当前版本的 --help 为准。
  • Docker Compose 的镜像名和挂载路径以官方文档或你的实际部署文件为准。
  • 自定义模型的 base_urlmodel_id 必须看供应商文档,不要猜。
  • API Key 不要贴进聊天、文章、截图、Git 仓库。
  • 如果教程里的 openclaw ... 命令不可用,先确认你的 CLI 是宿主机安装,还是通过 docker compose run --rm openclaw-cli ... 执行。
  • 发布到生产网站、修改主题、改服务器配置之前,先做草稿和备份。