OpenClaw 完全指南

OpenClaw 是一款开源的 AI 编码助手,专注于在终端中以 CLI 方式提供智能编码辅助。它属于与 Claude Code、OpenAI Codex、Hermes Agent 同类的自主编码代理,通过工具调用与代码仓库、终端、文件系统交互。

OpenClaw 以简洁高效著称,安装包小、启动快,在资源受限的环境(如低配 VPS、ARM 设备)上表现出色。

一、架构概述

OpenClaw 采用单进程架构,核心组件包括:

  • 工具调用层 — 管理文件读写、终端执行、代码搜索等工具的调用
  • 会话管理 — 管理历史对话上下文窗口
  • LLM 适配层 — 对接多种模型提供商(OpenAI、Anthropic、本地模型等)

数据存储:

  • 会话缓存:~/.openclaw/sessions/
  • 配置文件:~/.openclaw/config.yaml + ~/.openclaw/.env
  • Keyring:支持系统密钥环或环境变量

二、安装方式

方式一:一键安装(推荐)

curl -fsSL https://raw.githubusercontent.com/OpenClaw/openclaw/main/scripts/install.sh | bash

安装后验证:

openclaw --version
openclaw doctor

方式二:pip 安装

pip install openclaw

推荐在虚拟环境中安装:

python -m venv .venv
source .venv/bin/activate
pip install openclaw

方式三:npm 安装

npm install -g openclaw

方式四:Homebrew(macOS)

brew tap openclaw/tap
brew install openclaw

三、Docker 部署

OpenClaw 提供官方 Docker 镜像:

docker pull openclaw/openclaw:latest

基本用法

docker run -it --rm \
  -v $(pwd):/workspace \
  -v ~/.openclaw:/home/openclaw/.openclaw \
  -e OPENAI_API_KEY=$OPENAI_API_KEY \
  openclaw/openclaw:latest \
  openclaw

Docker Compose 持久化运行

# docker-compose.yml
version: '3.8'
services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    restart: unless-stopped
    working_dir: /workspace
    volumes:
      - $(pwd):/workspace
      - ~/.openclaw:/home/openclaw/.openclaw
    env_file:
      - .env
    stdin_open: true
    tty: true
    command: tail -f /dev/null  # 保持容器运行,然后 docker exec 进入

使用:

docker compose up -d
docker exec -it openclaw openclaw

Docker 部署注意事项

  • 务必挂载工作目录($(pwd):/workspace),否则 OpenClaw 无法访问项目文件
  • 配置目录 ~/.openclaw 需要持久化,否则每次重新配置
  • API Key 通过环境变量或 .env 文件传入
  • ARM64 镜像完全可用,在树莓派、Oracle ARM 上运行流畅
  • 交互模式需要 stdin_open: true 和 tty: true

四、初始化配置

配置 API Key

openclaw config set OPENAI_API_KEY sk-xxxxxxxx
# 或使用环境变量
export OPENAI_API_KEY=sk-xxxxxxxx

选择模型

openclaw config set model gpt-4o
openclaw config set model claude-sonnet-4-20250514

查看配置

openclaw config list
openclaw doctor          # 检查环境

五、核心功能

代码库感知

OpenClaw 会自动扫描项目结构,建立文件索引:

cd /path/to/your/project
openclaw                 # 在当前目录启动,自动加载项目上下文

工具调用

OpenClaw 支持以下核心工具:

  • 文件操作: 读、写、搜索、替换文件内容
  • 终端执行: 运行命令并捕获输出
  • 代码搜索: grep/sed 语义感知搜索
  • Git 集成: 查看 diff、创建 commit、推送
  • Web 获取: 读取 URL 内容(文档、API 参考)

Session 管理

openclaw --continue      # 恢复上次会话
openclaw --new           # 开启新会话
openclaw session list    # 查看所有会话

单次查询模式

openclaw -q "这段代码有什么问题?"
# 适合脚本集成或快速查询

六、WebUI 常见问题 (FAQ)

Q: WebUI 页面无法打开或显示空白

原因:

  • WebUI 服务未启动
  • 端口被防火墙屏蔽
  • 反向代理配置错误

解决:

# 确认 WebUI 进程运行
ps aux | grep openclaw

# 检查端口
ss -tlnp | grep 8080

# 重启 WebUI
openclaw webui restart

Q: "Error: Connection refused" 无法连接 LLM

原因: API Key 配置错误或网络不通。

解决:

  • 执行 openclaw doctor 检查连接
  • 确认 API Key 有效:curl -H "Authorization: Bearer $OPENAI_API_KEY" https://api.openai.com/v1/models
  • 检查是否需要配置代理(HTTPS_PROXY 环境变量)
  • 如果使用本地模型(Ollama/LM Studio),确认本地服务正在运行

Q: WebUI 操作缓慢或卡顿

原因:

  • 大文件导致上下文过长
  • 模型推理速度慢
  • 服务器资源不足

解决:

  • 使用 .openclawignore 排除无关文件(类似 .gitignore)
  • 切换到更快的模型(如 gpt-4o-mini 或 claude-haiku)
  • 减少当前会话的文件上下文量

Q: "Permission denied" 无法写文件

原因: OpenClaw 运行用户对目标目录无写权限。

解决:

  • 检查目录权限:ls -la
  • Docker 部署时注意 volume 挂载的用户 UID 匹配
  • 使用 sudo 或调整目录权限

Q: 会话历史丢失

原因:

  • Docker 容器重启未挂载持久化卷
  • 手动清除了 ~/.openclaw/sessions/
  • 磁盘空间不足导致写入失败

解决:

  • Docker 部署务必挂载 ~/.openclaw 数据卷
  • 检查磁盘空间:df -h

Q: "Rate limit exceeded" 速率限制

原因: API 调用频率超过提供商限制。

解决:

  • 降低请求频率
  • 升级 API 套餐(更高 tier)
  • 配置多个 API Key 轮换(openclaw config set api_keys)
  • 切换到不限制速率的提供商(如本地模型)

Q: 代码搜索返回结果不准确或为空

原因: 项目文件过多,搜索索引未正确建立。

解决:

  • 确保 .openclawignore 正确配置,排除 node_modules、.git 等目录
  • 使用更精确的搜索关键词
  • 检查是否在正确的项目根目录启动

七、进阶技巧

.openclawignore 配置

类似 .gitignore,排除不需要加载的文件:

node_modules/
dist/
build/
*.min.js
*.map
vendor/
__pycache__/
*.pyc
.env
.git/

自定义提示词 (System Prompt)

openclaw config set system_prompt "你是一个精通 Python 和 Web 开发的专家助手。回答问题要简洁,优先提供代码示例。"

多项目工作流

为每个项目创建独立的配置文件:

# 在项目根目录创建 .openclaw/config.yaml
model: claude-sonnet-4
system_prompt: "专注于 React 和 TypeScript 开发"

八、相关资源