部署 2026-03-13 10:00

OpenClaw 故障排除完全指南:从入门到精通

说实话,我第一次用 OpenClaw 时差点放弃。那种感觉太熟悉了——工具装上了,但就是不听使唤。命令行报一堆错,不知道从哪里入手。

但用了两周之后,我发现 OpenClaw 的大多数问题其实都有规律可循。这篇文章会把我踩过的坑、总结的经验全部分享给你,让你少走弯路。

## 为什么故障排除这么重要

OpenClaw 是一个复杂的系统,它把 AI 模型、消息渠道、本地工具全部整合在一起。任何一环出问题,都会导致整体不可用。

我见过几种典型情况:

**第一种是"它坏了但我不知道哪里坏了"**。你发消息,AI 不回复。你不知道是 Gateway 挂了,还是模型 API 挂了,还是你的网络有问题。这种情况下,盲目排查只会浪费时间。

**第二种是"我知道坏了但不知道怎么修"**。你看到错误信息了,但看不懂那些技术术语代表什么意思。`spawn EBADF`、`ModuleNotFoundError`、`connection refused`——这些英文单词你认识,但放在一起就不知道怎么办了。

**第三种是"修好了但不知道为什么好了"**。你试着跑了个命令,突然又能用了。但你不知道是哪个命令起的作用,下次出问题还是得从头摸索。

这篇文章的目标,就是帮你建立系统化的故障排除思维,让你能快速定位问题、高效解决、举一反三。

## 第一章:最初的六十秒——快速诊断流程

当你的 OpenClaw 出问题时,别慌着到处搜答案。按顺序跑这几个命令,足够解决 90% 的问题。

### 1.1 基础状态检查

```bash

openclaw status

```

这个命令会告诉你 Gateway 是否在运行、连接了哪些渠道、使用了什么模型。输出通常像这样:

```

OpenClaw 2026.2.6-3

Telegram: ok

WhatsApp: linked

Agents: main (default)

```

如果这里显示 Gateway 运行正常,那问题可能出在特定渠道或会话层面。如果 Gateway 状态显示异常,直接看下一步。

### 1.2 完整状态报告

```bash

openclaw status --all

```

这个命令会输出更详细的信息,包括所有会话列表、模型配置、工具状态等。当你在社区提问时,这个输出的完整信息能帮别人快速理解你的配置和当前状态。

### 1.3 网关探测

```bash

openclaw gateway probe

```

这个命令会测试 Gateway 的可达性和响应时间。如果你的 Gateway 运行在远程服务器上,这个命令能帮你确认网络连接是否正常。

### 1.4 实时日志跟踪

```bash

openclaw logs --follow

```

这是最有价值的诊断工具。它会实时显示 Gateway 的日志输出,你能看到每一条请求、每一个错误、每一次重试。跑这个命令的同时重现问题,日志会直接告诉你哪里出了问题。

我个人的经验是:90% 的问题,看一眼日志就能定位根本原因。

### 1.5 自动化诊断

```bash

openclaw doctor

```

这个命令会自动化运行一系列检查,包括配置验证、依赖检查、权限验证等。它会告诉你哪些配置可能有风险、哪些设置需要调整。

### 1.6 深度探测

如果 Gateway 网关可达,但你想做更深入的诊断:

```bash

openclaw status --deep

```

这个命令会检查网络延迟、API 连通性、磁盘空间等更底层的指标。

## 第二章:常见问题与解决方案

### 2.1 命令找不到:PATH 问题

遇到这个错误:

```bash

-bash: openclaw: command not found

```

几乎总是 Node/npm PATH 的问题。OpenClaw 安装后没有正确添加到系统 PATH 中。

**诊断步骤:**

首先确认 Node.js 是否正确安装:

```bash

node --version

npm --version

```

你应该能看到版本号输出。如果没有输出或者版本低于 22,先去安装 Node.js。

然后检查 OpenClaw 是否真的安装了:

```bash

which openclaw

# 或者

where openclaw

```

如果安装了但找不到,PATH 里没它的位置。

**解决方案:**

最简单的方法是重新安装 OpenClaw。官方安装脚本会自动处理 PATH 问题:

```bash

# 完整安装(自动配置 PATH)

curl -fsSL https://openclaw.ai/install.sh | bash

```

如果你用的是 Homebrew:

```bash

brew install openclaw

```

手动解决 PATH 问题(macOS):

```bash

# 在 ~/.zshrc 或 ~/.bash_profile 中添加

export PATH="/usr/local/bin/openclaw:$PATH"

# 或者

export PATH="~/Library/Python/3.x/bin:$PATH"

```

然后重新加载配置:

```bash

source ~/.zshrc # 或 ~/.bash_profile

```

**我踩过的坑:**

有时候 Node.js 是通过 nvm 安装的,而 nvm 只在新的终端会话中激活。确保你安装 OpenClaw 的那个终端会话中,Node 是可用的。

### 2.2 安装程序失败

有时候安装过程会中途失败,输出一些错误信息但不完整。想看完整日志?

以详细模式重新运行安装程序:

```bash

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --verbose

```

Beta 版本安装(如果你想用最新功能):

```bash

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --beta --verbose

```

或者设置环境变量代替命令行参数:

```bash

OPENCLAW_VERBOSE=1 ./install.sh

```

**常见的安装失败原因:**

1. **权限不够**:macOS 上有时候需要 sudo 权限,或者确保你的用户有 /usr/local 目录的写权限。

2. **网络问题**:安装脚本需要从 npm 仓库下载依赖。网络不稳定会导致下载失败。尝试切换网络或使用 VPN。

3. **磁盘空间不足**:检查还有多少可用空间:

```bash

df -h

```

4. **Node 版本不兼容**:OpenClaw 需要 Node 22+,太老或太新的版本可能不兼容:

```bash

node --version

```

### 2.3 控制 UI 在 HTTP 上失败

打开 http://127.0.0.1:18789/ 时报错,说需要设备身份?

这是因为新版 OpenClaw 默认要求 HTTPS 连接,用于本地调试的 HTTP 模式需要额外配置。

**解决方案:**

查看 Gateway 故障排除文档:

```bash

openclaw gateway --help

```

确保你的 Gateway 是在本地模式运行:

```bash

openclaw config get gateway.mode

```

如果需要临时启用 HTTP 访问(仅限本地调试):

```bash

openclaw gateway run --insecure

```

**警告:** 只在本地开发环境使用 `--insecure` 标志,生产环境务必使用 HTTPS。

### 2.4 服务显示运行中,但 RPC 探测失败

这是最让人困惑的情况之一。`openclaw status` 显示 Gateway 在运行,但 RPC 调用失败。

**诊断步骤:**

首先确认进程确实在运行:

```bash

ps aux | grep openclaw

```

输出应该类似:

```

joinylee 1612 0.1 1.1 457132624 539952 ?? S 6:38下午 0:12.14 openclaw-gateway

```

然后检查端口是否在监听:

```bash

lsof -i :18789

```

如果端口没在监听,Gateway 进程可能启动失败但没有报错。查看日志:

```bash

openclaw logs --follow

```

**解决方案:**

强制重启 Gateway:

```bash

openclaw gateway stop

openclaw gateway start

```

或者:

```bash

openclaw gateway restart --force

```

如果还是不行,手动杀死进程后重新启动:

```bash

pkill -f openclaw-gateway

openclaw gateway start

```

**我踩过的坑:**

有时候旧进程没有完全杀死,导致端口冲突。用 `lsof -i :18789` 确认没有其他进程占用端口。

### 2.5 模型认证失败

遇到类似这样的错误?

```

Error: all models failed

Rate limit exceeded

Billing required

```

这通常是模型 API 的问题,不是 OpenClaw 本身的问题。

**诊断步骤:**

检查模型配置:

```bash

openclaw config get agents.defaults.model

```

确认 API key 设置正确:

```bash

openclaw config get models.providers

```

**常见原因和解决方案:**

1. **API key 过期或无效**:去模型提供商的官网确认你的 API key 是否有效。

2. **余额不足**:大部分 API 服务需要预付费或绑卡。确认你的账户有足够的调用额度。

3. **速率限制**:如果短时间内请求太多,会触发限流。稍等几分钟再试,或者升级你的 API 计划。

4. **地域限制**:某些 API 服务在特定地区不可用。尝试使用 VPN 或确认你的 IP 不在黑名单中。

5. **模型不支持**:确认你请求的模型 ID 正确,且该模型对你的账户开放。

**检查模型可用性:**

```bash

openclaw models list

```

### 2.6 /model 显示 model not allowed

你输入 `/model` 想切换模型,但系统说 `model not allowed`?

这说明 `agents.defaults.models` 配置了允许列表。当这个配置非空时,你只能从允许列表中选择模型。

**诊断:**

```bash

openclaw config get agents.defaults.models

```

如果输出不是空的,说明有模型白名单限制。

**解决方案:**

方法一:添加你想要的模型到允许列表

```bash

openclaw config set agents.defaults.models '{"openai": ["gpt-4"]}'

```

方法二:清空允许列表(允许所有配置的模型)

```bash

openclaw config unset agents.defaults.models

```

方法三:浏览可用的提供商和模型

```bash

openclaw /models

```

### 2.7 exec 工具被阻止

在 Web Chat 界面,你想让我执行命令,但返回 `spawn EBADF` 错误?

这是因为 Web Chat 会话默认运行在 sandbox 模式,exec 工具被禁用。

**理解 sandbox 模式:**

OpenClaw 的 sandbox 模式是一种安全机制,它限制 agent 能执行的命令,防止恶意操作。sandbox 模式下:

- ❌ 不能执行 exec 命令

- ❌ 不能运行脚本

- ❌ 不能安装软件

- ✅ 可以读取文件

- ✅ 可以搜索网页

- ✅ 可以发送消息

**解决方案:**

方法一:使用 `--local` 模式启动 agent(推荐)

```bash

openclaw agent --to +8613382188809 --message "你的消息" --local

```

`--local` 参数会绕过 sandbox 限制,允许使用所有工具。

方法二:关闭全局 sandbox 配置

在配置文件中设置:

```json

{

"agents": {

"defaults": {

"sandbox": {

"mode": "off"

}

}

}

}

```

然后重启 Gateway:

```bash

openclaw gateway restart

```

方法三:为特定 agent 配置 tools 权限

```json

{

"agents": {

"list": [

{

"id": "main",

"tools": {

"allow": ["exec", "read", "write", "edit"]

}

}

]

}

}

```

**我踩过的坑:**

修改配置后,必须重启 Gateway 才能生效。只重启浏览器会话是不够的。

### 2.8 WhatsApp/Telegram 连接问题

**WhatsApp 相关:**

1. **二维码扫描后无响应**:等待几分钟,有时候网络延迟会导致同步慢。

2. **提示"已链接"但消息发不出去**:检查消息是否发给了正确的人/群组。

3. **需要重新配对**:删除凭证后重新扫码:

```bash

rm -rf ~/.openclaw/credentials/whatsapp

openclaw channels login whatsapp

```

**Telegram 相关:**

1. **Bot Token 无效**:确认 Bot Token 正确,从 @BotFather 获取。

2. **收不到消息**:检查 bot 是否被管理员设置为只接收命令模式。

3. **群组中不响应**:确认 bot 有管理员权限,且群组策略允许 bot 发言。

### 2.9 技能(Skills)不工作

技能是 OpenClaw 强大的扩展功能。但有时候技能加载失败或无法使用。

**诊断步骤:**

查看已安装的技能:

```bash

openclaw skills list

```

检查特定技能的状态:

```bash

openclaw skills status <skill-name>

```

**常见问题:**

1. **技能未启用**:在配置中启用技能:

```bash

openclaw config set skills.entries.<skill-name>.enabled true

```

2. **依赖缺失**:某些技能需要额外的 Python 包或 CLI 工具。查看技能的 README 或 SKILL.md 文件。

3. **路径错误**:确保技能目录在正确位置(通常是 `~/.openclaw/skills/` 或 `
~/.openclaw/workspace/skills/`)。

4. **权限问题**:确保技能脚本有执行权限:

```bash

chmod +x ~/.openclaw/skills/<skill-name>/scripts/*.sh

```

### 2.10 配置文件损坏

如果配置文件 JSON 格式错误,Gateway 可能无法启动。

**诊断:**

```bash

openclaw doctor

```

它会指出配置文件中的语法错误。

**解决方案:**

查看当前配置:

```bash

openclaw config get .

```

或者直接查看文件:

```bash

cat ~/.openclaw/openclaw.json | python3 -m json.tool

```

JSON 格式化工具会高亮显示语法错误。

**最安全的修复方式:**

重置配置(会保留你的凭据和会话):

```bash

openclaw config reset

```

然后重新运行配置向导:

```bash

openclaw configure

```

## 第三章:提交问题时的正确姿势

如果你尝试了所有方法仍然无法解决问题,需要在社区寻求帮助。

### 3.1 收集诊断信息

在提问前,先运行这些命令收集信息:

```bash

# 完整状态报告

openclaw status --all > status_report.txt

# 实时日志(同时重现问题)

openclaw logs --follow > logs.txt &

# ...重现问题...

kill %1

```

### 3.2 描述问题的模板

一个好的问题描述应该包括:

1. **环境信息**:操作系统、OpenClaw 版本、Node.js 版本

2. **问题描述**:你想做什么、发生了什么、期望什么结果

3. **重现步骤**:如何稳定重现这个问题

4. **已尝试的方案**:你已经试过哪些方法、结果如何

5. **日志输出**:相关错误日志(脱敏后)

### 3.3 示例

❌ **不好的提问方式:**

```

OpenClaw 坏了,不工作,怎么办?

```

✅ **好的提问方式:**

```

环境:macOS 15.2, OpenClaw 2026.2.6-3, Node 22.12.0

问题:exec 工具返回 "spawn EBADF" 错误

重现步骤:

1. 在 Web Chat 中发送 "运行 ls 命令"

2. 返回错误:spawn EBADF

已尝试:

- 重启 Gateway:无效果

- 修改 sandbox.mode = "off":无效果

日志输出(相关部分):

[ERROR] Tool execution failed: exec spawn EBADF

```

## 第四章:进阶诊断技巧

### 4.1 使用 OpenClaw Browser

OpenClaw 内置了浏览器工具,可以帮你可视化检查网页:

```bash

openclaw browser open https://example.com

openclaw browser snapshot

```

这对于调试需要网页交互的问题特别有用。

### 4.2 网络诊断

如果怀疑是网络问题:

```bash

# 测试到 Gateway 的连接

nc -zv localhost 18789

# 测试到模型 API 的连接

curl -v https://api.openai.com/v1/models

# DNS 解析测试

dig api.openai.com

```

### 4.3 磁盘和内存检查

```bash

# 磁盘空间

df -h

# 内存使用

top -l 1 | head -n 10

# OpenClaw 进程的资源使用

ps -o pid,user,%cpu,%mem,command -p $(pgrep openclaw)

```

### 4.4 配置版本控制

把配置文件纳入版本控制是个好习惯:

```bash

cd ~/.openclaw

git init

git add openclaw.json

git commit -m "Initial openclaw config"

```

这样你可以追踪配置的变更历史,快速回滚到之前的工作状态。

## 第五章:预防胜于治疗

### 5.1 定期健康检查

每周运行一次:

```bash

openclaw doctor

openclaw config get . > backup_config_$(date +%Y%m%d).json

```

### 5.2 监控和告警

配合 cron 任务监控 Gateway 状态:

```bash

# 每天检查 Gateway 是否运行

0 * * * * pgrep -f openclaw-gateway || openclaw gateway start

```

### 5.3 保持更新

定期检查 OpenClaw 更新:

```bash

openclaw update check

```

但更新前:

1. 阅读更新日志

2. 备份配置文件

3. 在非生产环境测试新版本

## 第六章:资源汇总

### 6.1 官方文档

- 官方文档:https://docs.openclaw.ai/

- GitHub:https://github.com/openclaw/openclaw

- 社区 Discord:
https://discord.com/invite/clawd

### 6.2 常用命令速查表

| 命令 | 用途 |

|------|------|

| `openclaw status` | 基础状态检查 |

| `openclaw status --all` | 完整状态报告 |

| `openclaw gateway probe` | Gateway 探测 |

| `openclaw logs --follow` | 实时日志 |

| `openclaw doctor` | 自动化诊断 |

| `openclaw config get .` | 查看完整配置 |

| `openclaw config set <key> <value>` | 修改配置 |

| `openclaw gateway restart` | 重启 Gateway |

| `openclaw skills list` | 列出技能 |

| `openclaw channels list` | 列出渠道 |

### 6.3 故障排除流程图

```

问题 → 运行 openclaw status

├─ Gateway 不运行 → openclaw gateway start

│ │

│ └─ 还是不运行 → 查看日志 openclaw logs --follow

├─ Gateway 运行但 RPC 失败 → 检查进程 ps aux | grep openclaw

│ │

│ └─ 进程异常 → openclaw gateway restart --force

├─ 模型相关问题 → 检查模型配置 openclaw config get models

├─ 渠道连接问题 → 检查具体渠道状态

└─ 其他问题 → openclaw doctor

```

## 写在最后

OpenClaw 是一个强大的工具,但复杂性意味着问题不可避免。关键是建立系统化的排查思维。

我最大的经验是:90% 的问题,看一眼日志就能定位根本原因。别害怕日志——那是你的朋友,不是敌人。

遇到问题时,按顺序跑诊断命令,记录输出,然后针对性地解决。这比盲目搜索答案高效得多。

如果你卡在某个具体问题很长时间都解决不了,来社区提问。但在那之前,先自己做好功课——详细的问题描述和诊断信息,是对帮助你的人最基本的尊重。

祝你使用 OpenClaw 愉快!