搞定OpenClaw!高频问题速查手册

1 安装问题

Q1:npm install -g openclaw 报错 EACCES 权限不足

bash

运行

# 方法一:使用sudo(不推荐)
sudo npm install -g openclaw

# 方法二(推荐):修改npm全局目录
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
npm install -g openclaw

Docker 启动后访问localhost:8080无响应

bash

运行

# 检查容器是否正在运行
docker ps | grep openclaw

# 检查容器日志是否有错误
docker logs openclaw 2>&1 | tail -50

# 检查端口映射
docker inspect openclaw | grep -i port

# 检查本机防火墙
ufw status # Ubuntu
# 确保8080端口已开放

Q3:Windows 上中文显示乱码

powershell

# PowerShell设置UTF-8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$env:PYTHONIOENCODING = "UTF-8"
chcp 65001

2 配置问题

Q4:API Key 配置后提示 Invalid API Key

bash

运行

# 检查API Key格式
# Anthropic: sk-ant-api03-xxxx(注意是api03不是api01)
# OpenAI: sk-proj-xxxx 或 sk-xxxx

# 检查是否有多余空格
echo $ANTHROPIC_API_KEY | cat -A  # 不应有^M或多余空格

# 测试API Key是否有效
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-3-5-haiku-20241022","max_tokens":10,"messages":[{"role":"user","content":"test"}]}'

Q5:openclaw.json 修改后没有生效

bash

运行

# 重载配置
openclaw config reload

# 如果还是不生效,检查是否有语法错误
python3 -m json.tool openclaw.json

# 确认修改的是正确的文件
openclaw config show --path  # 显示配置文件路径

Q6:SOUL.md 不生效 检查清单:

* 文件名:`SOUL.md`(大写,不是`soul.md`)
* 位置:在项目根目录,不是子目录
* 编码:UTF-8(用 VSCode 检查右下角)
* 格式:纯文本,没有 BOM 头
* 重启:修改后需要重启 Agent

3 运行问题
Q7:Agent 回复非常慢(超过 10 秒)

可能原因:
模型响应慢 → 换用更快的模型(Haiku 比 Sonnet 快 3 倍)
工具调用链太长 → 优化SOUL.md,减少不必要的工具调用
对话历史太长 → 设置 maxHistoryTokens: 2000
网络问题 → 检查与 API 服务器的延迟
快速诊断:
bash
运行
openclaw benchmark --model claude-3-5-haiku-20241022
# 查看API延迟是否正常(<2秒)

Q8:Agent 经常说 “我无法访问网络”

json

// OpenClaw需要明确配置工具才能访问网络
// 在openclaw.json中启用浏览器工具
{
  "tools": {
    "browser": {
      "enabled": true,
      "headless": true
    },
    "webSearch": {
      "enabled": true,
      "provider": "bing", // 或 google/duckduckgo
      "apiKey": "${BING_SEARCH_KEY}"
    }
  }
}

4 集成问题

Q9:Telegram Bot 收不到消息

排查步骤与命令

bash

运行

# 1. 检查Token是否正确(校验Bot身份)
curl https://api.telegram.org/bot${TELEGRAM_TOKEN}/getMe

# 2. 检查Webhook是否设置
curl https://api.telegram.org/bot${TELEGRAM_TOKEN}/getWebhookInfo

# 3. 确认配置正确
# 确认:openclaw.json 中 Telegram 配置已设置
# 或:环境变量 TELEGRAM_BOT_TOKEN 已设置

# 4. 网络/防火墙:确认服务器能访问Telegram API
curl https://api.telegram.org

Q10: Agent 忘记之前的对话(记忆丢失)

json

// openclaw.json - 记忆与压缩配置
memory:
  enabled: true
  provider: "file"          # 文件存储
  path: "./.openclaw/memory"
  persistence: true         # 重启后保留记忆
  maxSize: 100000           # 最多10万字
  compressionEnabled: true

Q11:账单突然暴涨,如何紧急处理

bash

运行

# 步骤1:立即暂停OpenClaw
docker stop openclaw

# 步骤2:登录API控制台查看用量
# Anthropic: console.anthropic.com
# OpenAI: platform.openai.com/usage

# 步骤3:临时禁用API Key(防止继续产生费用)
# 在控制台操作

# 步骤4:分析原因
openclaw logs --export emergency-log.txt
# 查找大量调用的时间点

# 步骤5:修复问题后,添加成本上限再重启
# openclaw.json中添加 costControl 配置

Q12:如何精确计算每次对话的成本

bash

运行

# 1. 开启成本日志(核心开关)
openclaw config set LOG_COSTS true

# 2. 查看今日详细成本日志
openclaw cost detail --date today

# 3. 按Agent维度拆分成本统计
openclaw cost breakdown --by agent

# 4. 导出成本报表(CSV格式)
openclaw cost export --format csv --output costs-march.csv

5 安全问题

Q13:如何防止用户访问系统级别的工具

json

// openclaw.json - 工具权限控制(使用 tools.allow / tools.deny)
{
  "tools": {
    "profile": "coding",
    "deny": ["exec", "bash", "process"],
    "allow": ["group:fs", "group:web", "browser"],
    "elevated": {
      "enabled": true,
      "allowFrom": {
        "whatsapp": ["+你的手机号"]
      }
    }
  }
}

Q14: 如何审计 Agent 的所有操作

json

// openclaw.json - 审计日志配置
audit:
  enabled: true
  level: "all"                  # all/actions/errors
  storage:
    provider: "file"
    path: "./audit-logs"
    retentionDays: 90
  includePrompts: false         # 不记录完整提示(保护隐私)
  includeResponses: false       # 不记录完整响应
  includeToolCalls: true        # 记录所有工具调用
  includeMetadata: true          # 记录时间戳、用户ID等

高频问题手册应该置顶

搜索了一下确实覆盖了大部分常见问题

建议按错误码分类会更好找

部分解决方案已经过时了需要更新

@tokns 按错误码分类是个好建议 现在的问答式组织方式虽然直观 但错误码是唯一标识 按码查比按描述查更准确 特别是报错信息是英文的时候

@embdx 部分方案过时了是因为OpenClaw版本迭代快 建议作者在每个方案后面标注适用的版本范围 比如’适用于v2.0-v2.5’ 读者一看就知道是不是还有效

Vue3的composition API比options好用多了