随着大语言模型从单纯的文本生成迈向自主智能体(Agent)时代,仅仅停留在对话框内的 AI 交互已无法满足复杂的工程需求。OpenClaw 的出现打破了这一僵局,它不再是一个只会被动回答问题的聊天机器人,而是一个能够真正接管你的键盘鼠标、执行终端命令并自主调试代码的“全自动数字员工”。作为 Clawdbot 升级 OpenClaw 后的官方稳定版本,该项目不仅继承了强大的自动化能力,更在稳定性上实现了质的飞跃,让开发者能够将繁琐的环境搭建、Git 提交甚至复杂的代码重构任务完全下放。然而,从理论到落地的过程往往伴随着版本混淆与依赖冲突,本篇 OpenClaw AI 部署教程将跳过冗余的理论概念,直接聚焦于生产环境下的实战落地。我们将深入解析 OpenClaw Docker 部署的最佳实践与 OpenClaw 本地安装的避坑指南,详细演示如何通过 OpenClaw Ollama 对接与 OpenClaw 接入 DeepSeek 来构建低成本的本地化算力集群,以及如何通过 OpenClaw 飞书集成将其无缝嵌入团队协作工作流。针对部署过程中高频出现的 OpenClaw 常见报错,本文亦提供了经过验证的底层修复逻辑,助你在确保安全隔离的前提下,真正掌握这一能够彻底重塑工作效率的生产力工具。
部署前必读:OpenClaw 是什么?(含版本避坑指南)
在开始任何部署命令之前,我们需要先厘清 OpenClaw 到底是什么,以及它在过去几个月内混乱的版本更迭历史。很多开发者在按照旧教程操作时会遇到 command not found 或依赖错误,这通常是因为混淆了项目名称或对“Agent(智能体)”的能力边界理解有误。
🚨 版本避坑:Clawdbot、Moltbot 还是 OpenClaw?
如果你在搜索教程时看到了 Clawdbot 或 Moltbot 这两个名字,请注意:它们都是 OpenClaw 的旧称。
该项目在短期内经历了多次更名,导致社区文档出现了严重的断层。根据 Ollama v0.15.4 更新日志,官方已正式将 Clawdbot 全面升级并重命名为 OpenClaw。
- Clawdbot / Moltbot:已废弃。旧版教程中的
ollama launch clawdbot命令虽然在部分过渡版本中仍兼容,但建议立即停止使用,以免遇到不再维护的 API 接口问题。 - OpenClaw:当前唯一官方维护的稳定版本。
关键提示:在后续的 Docker 镜像拉取或 npm 安装中,请认准openclaw命名空间,切勿混用旧版配置文件(如.clawdbot/clawdbot.json),否则会导致配置无法加载或 Token 认证失败。
核心定义:不仅仅是聊天机器人
OpenClaw 不是另一个 ChatGPT 网页版,也不是一个单纯的代码补全插件。从技术架构上看,它是一个自主 AI 智能体(Autonomous Agent)。
为了理解它的核心价值,我们可以对比一下标准 LLM(大语言模型)与 OpenClaw 的区别:
特性 | 标准 LLM (ChatGPT/Claude) | OpenClaw Agent |
|---|---|---|
输出产物 | 文本、代码片段 | Shell 命令、文件变更、Git 提交 |
环境交互 | 无(沙盒内对话) | 有(读写本地文件、执行终端命令) |
工作流 | 用户提问 -> AI 回答 -> 用户复制粘贴 | 用户下达目标 -> AI 拆解任务 -> 自动执行/调试 -> 交付结果 |
核心循环 | 单次推理 | 思考 (Think) -> 规划 (Plan) -> 行动 (Act) -> 观察 (Observe) 循环 |
简单来说,OpenClaw 获得的是你键盘和鼠标的“代理权”。当你要求它“构建并部署这个 React 项目”时,它不会只给你一段代码,而是会直接在容器内执行 npm install,如果遇到报错,它会读取错误日志,自动修改代码并重试,直到任务完成。
🛑 Reality Check:它能做与不能做的事
尽管 OpenClaw 被称为“开源版 Devin”或“全自动程序员”,但在实际部署前,我们需要管理好预期。它并非魔法,而是一个需要精确配置的工程工具。
- 它不是开箱即用的消费级产品
OpenClaw 是面向开发者的工具。它需要你具备基础的 Docker 运维能力和对 API Key/本地模型(如 Ollama)的配置能力。如果你期待的是一个“双击运行”的.exe程序,目前的 OpenClaw 可能会让你失望。 - 安全风险是真实存在的
既然 OpenClaw 能够执行 Shell 命令,它就有可能执行错误的命令。虽然官方推荐在 Docker 容器中运行以进行沙盒隔离,但如果配置不当(例如将宿主机根目录挂载到容器中),AI 的误操作可能会导致数据丢失。切勿在生产环境的宿主机直接裸机运行 OpenClaw。 - Token 消耗可能失控
OpenClaw 的工作模式是“循环试错”。解决一个复杂的依赖冲突可能需要 AI 进行 10 次以上的“执行-报错-修正”循环。如果你使用的是按 Token 计费的商业 API(如 GPT-4 或 Claude 3.5 Sonnet),一个简单的任务可能会消耗数美元的额度。对于高频使用,建议配合本地模型(如 Qwen2.5-Coder 或 DeepSeek-V3)以降低成本。 - 它需要“监督”
目前的 AI Agent 尚未达到 100% 的可靠性。在它执行rm -rf或git push等高风险操作前,OpenClaw 设计了“Human-in-the-loop”(人工介入)机制,需要你确认授权。不要关闭这个确认机制,除非你完全信任它在隔离环境中运行。
方案选择与环境准备:哪种方式适合你?

在开始敲入第一行命令之前,选择正确的部署架构至关重要。OpenClaw 作为一个能够执行本地操作的 AI Agent,其运行环境直接决定了它的响应速度、稳定性和数据安全性。盲目跟随教程往往会导致陷入“依赖地狱”或面临意外的云服务器账单。
为了帮助你做出最适合自己的选择,我们从技术门槛、运维成本和硬件要求三个维度,对目前主流的三种部署方式进行了深度对比。
1. 部署方式决策矩阵
部署方式 | 推荐人群 | 技术门槛 | 运维成本 | 硬件要求 | 核心优势与劣势 |
|---|---|---|---|---|---|
本地 Docker (推荐) | 追求稳定性的普通用户、极客 | ⭐⭐ (中) | 低 (仅电费) | 中 (需长期开机) | ✅ 环境隔离,无依赖冲突,一键更新。<br>❌ 需解决国内 Docker 镜像拉取网络问题。 |
本地源码部署 | 开发者、二次开发者 | ⭐⭐⭐⭐ (高) | 低 | 中 | ✅ 方便修改代码,调试深层逻辑。<br>❌ 依赖地狱:需配置 C++ 编译链、Python 环境及特定 Node 版本。 |
云端桌面/VPS | 硬件受限用户、Mac/PC 性能不足者 | ⭐ (低) | ⭐⭐⭐ (高) | 低 (依赖云端) | ✅ 24/7 在线,不占用本地资源,网络环境优越。<br>❌ 隐形通过成本高 (GPU 服务器或高性能 VPS 租赁费昂贵)。 |
建议:对于绝大多数用户,Docker 容器化部署是最佳平衡点。它避免了繁琐的 Node.js/Python 环境配置,同时保持了数据的本地隐私性。如果你是开发者且需要调试核心逻辑,可以参考APIYI 的建议采用混合部署策略。
2. 硬件与环境“硬指标” (Minimum Viable Specs)
无论选择哪种部署方式,OpenClaw 对运行环境都有明确的底线要求。不满足这些条件通常是安装失败(如 EBADENGINE 错误)的主要原因。
- 操作系统:
- Linux (推荐):Ubuntu 20.04+, Debian 11+。
- macOS:支持 Apple Silicon (M1/M2/M3) 及 Intel 芯片。
- Windows:必须使用 WSL2 (Windows Subsystem for Linux)。直接在 PowerShell 中运行源码极易遇到 C++ 编译错误(如
node-llama-cpp构建失败)。
- 运行环境 (Runtime):
- Node.js:必须 ≥ v22.12.0。旧版本会导致核心服务无法启动。
- 包管理器:推荐
pnpm(源码部署时) 或标准npm。
- 硬件配置:
- 内存 (RAM):最低 8GB,推荐 16GB+。如果计划在本地通过 Ollama 运行大模型(如 DeepSeek-R1),则至少需要 16GB RAM 或 8GB+ 显存的独立显卡。
- 存储:至少预留 10GB 可用空间(用于 Docker 镜像及日志缓存)。
3. 被忽视的“隐形成本”
很多教程宣称“0成本部署”,但这通常忽略了长期运行的实际开销:
- API 令牌消耗:OpenClaw 需要通过 LLM(如 Claude 3.5 Sonnet 或 GPT-4o)来“思考”。高强度的自动化任务(如自动写代码、爬虫分析)会消耗大量 Token。
- 对策:在非关键任务中,配置 OpenClaw 调用本地 Ollama 模型或国内高性价比模型(如 DeepSeek),仅在复杂逻辑时回退到昂贵的商业模型。
- 电力与设备损耗:作为 Agent,OpenClaw 最好保持 24/7 在线以响应即时指令。
- 对策:使用低功耗设备(如 Mac mini、NUC 或树莓派 5)作为宿主机,而非让高功率的游戏 PC 全天候运行。
- 网络连接:Docker 镜像拉取和 GitHub 仓库访问在国内网络环境下极不稳定。
- 对策:提前配置好 Docker 镜像加速器或系统级代理,否则可能会卡在
pulling layers阶段数小时。
- 对策:提前配置好 Docker 镜像加速器或系统级代理,否则可能会卡在
核心实战:OpenClaw Docker 容器化部署 (推荐)

相比于源码部署中常见的 Node.js 版本不兼容、pnpm 依赖缺失以及编译报错等问题,Docker 容器化部署是目前运行 OpenClaw 最稳定、门槛最低的方式。它能将复杂的运行环境(包括浏览器沙箱、系统依赖)封装在镜像中,确保“开箱即用”。
以下方案基于 Linux 环境(推荐 Ubuntu/Debian)或支持 Docker Desktop 的本地机器,旨在解决国内网络环境下的镜像拉取与 API 连接问题。
1. 规划目录结构
为了防止容器重启后数据丢失(如账号登录状态、自定义脚本),我们需要先在宿主机上创建持久化目录。建议在 /opt 或用户目录下建立如下结构:
mkdir -p openclaw/data
mkdir -p openclaw/conf
cd openclaw2. 配置 docker-compose.yml
在 openclaw 目录下新建 docker-compose.yml 文件。以下模板已针对生产环境进行了优化,包含了必要的端口映射和环境变量配置:
version: '3.8'
services:
openclaw:
image: ghcr.io/openclaw/openclaw:latest # 若拉取困难,请参考下文网络配置
containername: openclaw
restart: always
networkmode: "host" # 推荐 host 模式以确保能控制本地网络设备,或使用 bridge 模式映射端口
# 如果不使用 host 模式,请取消以下注释并映射端口:
# ports:
# - "18789:18789" # Web 控制台端口
# - "18790:18790" # 内部通信端口
volumes:
- ./data:/app/data # 核心数据持久化
- ./conf:/app/conf # 配置文件持久化
environment:
- TZ=Asia/Shanghai
# 如果你需要让 OpenClaw 连接公网 LLM (如 OpenAI),且服务器在国内,需配置代理:
# - HTTPPROXY=http://host.docker.internal:7890
# - HTTPSPROXY=http://host.docker.internal:7890
deploy:
resources:
limits:
memory: 4G # 建议限制内存,防止浏览器进程占用过多资源3. 解决国内网络连接问题
在国内部署 OpenClaw 主要面临两大网络挑战:镜像拉取失败和容器无法连接 LLM API。
- 镜像加速:
ghcr.io(GitHub Container Registry) 在国内访问极不稳定。如果遇到image pull failed,建议通过配置 Docker 守护进程的镜像加速器(Registry Mirrors)来解决,或者使用代理拉取镜像后重新打标签。 - API 连通性:OpenClaw 需要频繁与 LLM(如 Claude、OpenAI)交互。如果你的宿主机位于国内且未部署本地模型(如 Ollama),必须在
docker-compose.yml的environment中注入HTTP_PROXY和HTTPS_PROXY环境变量,指向你的局域网代理地址。
4. 启动与初始化配置
在终端执行以下命令启动容器:
docker-compose up -d启动后,查看日志以确保服务正常运行:
docker-compose logs -f获取访问 Token(关键步骤):
OpenClaw 首次启动时会生成一个安全 Token,你无法直接访问 Web 界面。根据社区实战经验,你需要查看挂载卷中的配置文件来获取该 Token:
- 进入我们之前创建的配置目录:
cat ./conf/openclaw.json(路径可能随版本微调,若为空请检查./data目录)。 - 找到
gateway字段下的token值,例如9bfd07dd800a8c...。 - 拼接访问地址:
http://<服务器IP>:18789/?token=<你的Token>
成功访问后,你将看到 OpenClaw 的可视化操作界面,此时即可开始配置 LLM 供应商(如本地 Ollama 或远程 API)并下达第一个指令。
关键配置详解:config.toml 设置

OpenClaw 的 config.toml 是整个智能体的“神经中枢”。根据社区反馈,超过 80% 的启动失败(如容器启动即退出)都归因于配置文件的语法错误或参数缺失。本节将深入解析核心配置项,并提供一份可直接复用的标准模板。
核心字段解析
配置文件的核心在于准确对接 LLM(大语言模型)后端。无论你是使用云端的 DeepSeek 还是本地的 Ollama,都需要在 [llm] 或 [models] 模块中精准定义以下字段:
- API Base URL (
base_url):这是 OpenClaw 寻找模型“大脑”的路径。
- DeepSeek 用户:通常填写
https://api.deepseek.com。请注意,部分旧版 SDK 可能需要添加/v1后缀,建议参考服务商文档。 - Ollama 用户:如果在 Docker 容器中运行 OpenClaw,必须使用
http://host.docker.internal:11434而非localhost,否则容器无法访问宿主机的 Ollama 服务。
- DeepSeek 用户:通常填写
- API Key (
api_key):鉴权凭证。对于本地 Ollama,此处可填写任意字符串(如ollama),但不可留空。 - Model Name (
model):必须与服务商提供的模型 ID 严格匹配(例如deepseek-chat或qwen2.5-coder:14b)。错误的 ID 会导致 400 Bad Request 报错。
标准配置模板(Copy-Paste Friendly)
以下是一份经过验证的 config.toml 结构,涵盖了模型连接与基础环境设置。你可以直接复制并根据实际情况修改 api_key。
# OpenClaw 核心配置文件 (config.toml)
[general]
# 运行日志级别,调试时可设为 "debug"
loglevel = "info"
# Agent 工作区,用于存放生成的代码或下载的文件
workspace = "./data/workspace"
# --- LLM 核心配置 ---
[llm]
# 模型提供商标识 (openai, deepseek, ollama 等)
provider = "deepseek"
# 具体的模型名称,需严格匹配
model = "deepseek-chat"
# API 基础地址 (注意:Ollama 用户需改为 http://host.docker.internal:11434)
baseurl = "https://api.deepseek.com"
# 你的 API 密钥
apikey = "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
# 最大上下文长度,防止长对话导致内存溢出
contextwindow = 16384
# 输出随机性,0.0 为最严谨,1.0 为最发散
temperature = 0.1
# --- 服务端设置 ---
[server]
# 允许外部访问
host = "0.0.0.0"
# Web 界面端口
port = 18789常见“启动即崩溃”的语法陷阱
在修改配置时,请务必避开以下 TOML 格式的常见雷区,这些错误通常会导致 Docker 容器在启动 1-2 秒后静默退出:
- 键值对格式错误:TOML 使用等号
=赋值,严禁使用冒号:(这是 JSON 的写法)。 - ❌ 错误:
model: "deepseek-chat" - ✅ 正确:
model = "deepseek-chat"
- ❌ 错误:
- 字符串引号缺失:所有的文本值必须包裹在双引号
""中。 - ❌ 错误:
provider = deepseek - ✅ 正确:
provider = "deepseek"
- ❌ 错误:
- 布尔值大小写:TOML 规范中布尔值必须全小写。
- ❌ 错误:
headless = True - ✅ 正确:
headless = true
- ❌ 错误:
- 缩进与层级:虽然 TOML 对缩进不如 Python 敏感,但建议保持层级清晰。如果使用了
[table]语法,该标头下的所有键值对都归属于该表,直到下一个标头出现。
如果遇到配置后无法启动的情况,建议使用 docker logs openclaw 命令查看日志。如果日志中出现 error decoding config 或 expected value 字样,请立即检查上述语法细节。
大脑接入:对接 DeepSeek 与 Ollama

OpenClaw 本身是一个执行框架,它需要接入一个大语言模型(LLM)作为“大脑”来理解任务、规划步骤并生成工具调用指令。在目前的国内环境下,我们推荐两种最主流的接入方案:DeepSeek(云端 API) 和 Ollama(本地部署)。前者以极低的成本提供顶尖的推理能力,后者则能确保绝对的数据隐私与零边际成本。
方案一:云端 API 接入 (推荐 DeepSeek)
对于大多数用户,特别是希望快速上手且硬件配置一般的用户,直接调用 DeepSeek 的 API 是最佳选择。DeepSeek V3(deepseek-chat)在中文语境理解和代码生成能力上表现优异,且 API 价格极具竞争力。
配置步骤:
- 获取密钥:访问 DeepSeek 开放平台,注册账号并创建 API Key(通常以
sk-开头)。 - 修改配置:在 OpenClaw 的
config.toml或openclaw.json中,定位到llm或models部分。
关键在于将 baseUrl 指向 DeepSeek 的官方端点,并确保 model 名称准确无误(DeepSeek 官方强制使用 deepseek-chat 作为模型标识符,而非具体的版本号)。
[llm]
provider = "deepseek"
# 务必使用官方兼容 OpenAI 协议的地址
baseurl = "https://api.deepseek.com"
apikey = "sk-你的密钥"
# 注意:DeepSeek V3 和 V2.5 统一使用此模型名
model = "deepseek-chat"
temperature = 0.0注意:虽然 DeepSeek 兼容 OpenAI SDK,但在 OpenClaw 中建议明确指定provider为deepseek或openai(视具体版本配置文件结构而定),并严格检查base_url是否包含/v1后缀,部分客户端可能需要手动补全。
方案二:本地私有化部署 (Ollama)
如果你拥有较强的本地算力(如 Mac M系列芯片或 NVIDIA 显卡),或者对数据隐私有极高要求,通过 Ollama 运行本地模型是理想方案。
推荐模型:
- Qwen2.5-Coder (14B/32B):在工具调用(Tool Calling)方面表现极佳,是目前开源界最适合 Agent 的模型之一。
- DeepSeek-R1 Distill:推理能力强,适合复杂任务规划。
网络连接的关键坑点:
当 OpenClaw 运行在 Docker 容器中,而 Ollama 运行在宿主机上时,直接在配置文件中写 localhost 或 127.0.0.1 是无法连接的,因为这指向的是容器内部。
- Mac/Windows Docker Desktop 用户:请使用
host.docker.internal。 - Linux 用户:建议使用宿主机的局域网 IP(如
192.168.1.5),或者在启动 Docker 时添加--network="host"参数。
配置示例 (Docker 环境下连接宿主机 Ollama):
{
"llm": {
"provider": "ollama",
// 重点:使用 host.docker.internal 穿透容器访问宿主机
"baseurl": "http://host.docker.internal:11434/v1",
"model": "qwen2.5-coder:14b",
// 本地模式下 API Key 可随意填写,但不建议留空
"apikey": "ollama"
}
}方案对比与选择建议
特性 | DeepSeek (云端 API) | Ollama (本地模型) |
|---|---|---|
核心优势 | 性能最强,无需昂贵硬件,配置简单 | 数据隐私,完全离线可用,无 API 费用 |
成本 | 极低(百万 tokens 仅数元人民币) | 显卡/内存硬件投入 + 电费 |
响应速度 | 依赖网络状况,通常较快 | 取决于本地显卡算力 |
适用场景 | 复杂任务、代码编写、生产力工具自动化 | 敏感数据处理、内网环境、极客折腾 |
对于初次部署 OpenClaw 的用户,建议先使用 DeepSeek 跑通流程,排除本地环境干扰;待熟悉 Agent 运作机制后,再尝试切换至本地 Ollama 模型以降低长期运行成本。
交互集成:将 OpenClaw 接入飞书 (Feishu)

相比于命令行界面,将 OpenClaw 接入飞书(Feishu)能让你的 AI Agent 真正融入日常工作流。通过飞书手机端,你可以随时随地向 Agent 下达指令,并实时接收执行反馈。以下是基于飞书开放平台的详细集成步骤,重点解决最容易卡壳的“回调验证”环节。
1. 创建应用与获取凭证
首先登录 飞书开放平台 (Feishu Open Platform),进入“开发者后台”。
- 点击 “创建企业自建应用”,填写应用名称(如
OpenClaw-Bot)和描述,上传图标后保存。 - 在左侧导航栏点击 “凭证与基础信息”。
- 关键动作:复制
App ID和App Secret。这两个值需要填入 OpenClaw 的config.toml文件中对应字段。
2. 开启机器人能力与权限配置
为了让 Agent 能看懂指令并回复,必须开通对应的 API 权限。
- 添加机器人能力:在左侧导航栏选择 “添加应用能力”,点击 “机器人” 卡片后的“添加”按钮。
- 配置权限范围:进入 “权限管理”,搜索并批量开通以下核心权限。缺少任何一个都会导致 Agent “已读不回”或无法执行:
-
im:message:sendasbot(以应用身份发送消息):必须,用于 Agent 回复执行结果。 -
im:message.p2p_msg:readonly(获取用户发给机器人的单聊消息):必须,用于私聊交互。 -
im:message.groupatmsg:readonly(获取群聊中用户 @ 机器人的消息):用于群聊协作。 -
contact:user.employee_id:readonly(获取用户 user ID):用于身份识别。
-
注意:权限开通后,务必进入 “版本管理与发布” 页面,创建并发布一个新版本,权限变更才会生效。
3. 配置事件订阅(高频报错点)
这是整个部署中最容易失败的步骤。飞书要求在保存“请求地址”时进行实时握手验证,因此必须严格按照 “先配置 Bot,后保存飞书设置” 的顺序操作。
- 获取校验参数:
在飞书后台左侧点击 “事件与回调” -> “加密策略”。
- 复制
Encrypt Key(如果为空请点击重置生成)。 - 复制
Verification Token。 - 切记:此时不要急着去配置“请求地址”,否则会直接报错“Challenge Failed”。
- 复制
- 更新 OpenClaw 配置:
回到你的服务器或本地配置文件config.toml,找到[feishu]部分,填入刚才获取的四个参数:App ID,App Secret,Verification Token,Encrypt Key。
保存文件并重启 OpenClaw 容器。确保容器日志显示服务已启动且无报错。 - 完成握手验证:
回到飞书“事件与回调”页面,点击“配置订阅方式”。
- 请求地址 URL:填写
http://<你的服务器公网IP>:18789。 - 提示:如果使用 Docker 部署,请确保安全组/防火墙已放行 TCP 18789 端口。
- 点击 “保存”。
此时飞书会向该地址发送一个 POST 请求,OpenClaw 收到后会使用配置文件中的 Token 进行解密并返回正确响应。如果配置正确,页面会提示“保存成功”。
- 请求地址 URL:填写
- 订阅消息事件:
在“事件与回调”页面的“添加事件”区域,搜索并添加im.message.receive_v1(接收消息)。这是让 Agent 能够监听到用户发言的关键。
4. 常见错误排查
在实际部署中,如果遇到 “Verification Token mismatch” 或 “请求地址校验失败”,通常由以下原因导致:
- 顺序错误:未在 OpenClaw 侧填好 Token 并启动服务,就直接在飞书侧点击保存。
- 网络不通:服务器的 18789 端口未对外开放。可以在本地终端使用
curl http://<IP>:18789测试连通性。 - 加密解密失败:
Encrypt Key复制错误或包含多余空格。
一旦配置完成,你就可以在飞书客户端搜索该机器人,发送“Help”或具体指令(如“帮我检查一下服务器磁盘占用”),验证 Agent 是否能成功接管任务。
常见报错与故障排查 (Troubleshooting)
在实际部署 OpenClaw 的过程中,环境差异往往是导致“一键部署”失效的主要原因。绝大多数运行时错误都可以通过查看容器日志定位。在进行任何修复前,请先执行以下命令获取核心报错信息:
docker logs -f openclaw
# 或者查看最后 100 行日志
docker logs --tail 100 openclaw以下是开发者社区反馈最高频的四类阻断性问题及其解决方案。
1. 依赖安装失败与网络超时 (Network Timeout)
现象:
在源码部署(Source Install)或构建镜像过程中,出现 npm ERR! fetch failed、Connection timed out 或 git clone 卡住。
分析:
国内网络环境下,直接拉取 GitHub 源码或 NPM 官方源极易超时。此外,OpenClaw 最新版对 Node.js 版本有严格要求(通常需 Node >= 22.12.0),版本不匹配会导致 EBADENGINE 错误。
解决方案:
- 切换镜像源:如果在本地运行
npm install,务必配置国内镜像源:
npm config set registry https://registry.npmmirror.com- 强制使用 Docker:为彻底解决“依赖地狱”(Dependency Hell)和环境不一致问题,强烈建议放弃源码运行,直接使用 Docker 镜像。Docker 镜像内已预置了正确的 Node.js 和 Python 环境,能规避 90% 的运行时依赖报错。
2. 端口被占用 (Port Occupied)
现象:
容器启动失败,日志提示 Error: listen EADDRINUSE: address already in use :::3000 或类似端口冲突信息。
分析:
OpenClaw 默认占用宿主机端口(如 3000 用于 Web 面板,18789 用于回调)。如果宿主机上已运行了其他服务(如 Grafana、Gitea 等),会导致端口冲突。
解决方案:
- 检查端口占用:
lsof -i :3000- 修改映射:在
docker-compose.yml中修改端口映射,将宿主机的其他端口(如 3001)映射到容器的 3000 端口:
ports:
- "3001:3000"修改后,访问地址变为 http://localhost:3001。
3. 飞书/钉钉回调失败 (Callback Failures)
现象:
在飞书开放平台配置“请求地址”时提示“URL 校验失败”,或者 Bot 无法接收群消息。
分析:
这是最常见的配置错误。飞书和钉钉的 webhook 必须通过公网访问,且必须精准匹配回调路径。本地部署(Localhost/127.0.0.1)无法被云端平台访问。
解决方案:
- 公网 IP 验证:确保服务器拥有公网 IP,且安全组(防火墙)已放行对应端口(默认 18789)。
- 内网穿透:如果是本地家用电脑部署,必须使用 ngrok、frp 或 Cloudflare Tunnel 将本地端口暴露到公网。
- 地址格式:严格检查回调地址格式。根据阿里云开发者社区的排查经验,地址通常应为
http://<公网IP>:18789/api/v1/feishu/callback(具体路径请参考 OpenClaw 最新文档),并确保在飞书后台订阅了正确的事件(如im.message.receive_v1)。
4. 模型调用报错 "Invalid Beta Flag"
现象:
使用 AWS Bedrock 或 Google Vertex AI 调用 Claude 模型时,日志报错 invalid beta flag。
分析:
OpenClaw 的 SDK 可能会默认向 Anthropic API 发送包含 beta 功能的请求头,但 AWS Bedrock 等托管服务不支持这些特定的 beta 标记,从而直接拒绝请求。
解决方案:
需在配置文件 openclaw.json 中显式禁用 beta 特性,或切换至直连 API。
- 修改配置:在
agents.defaults.model.options中添加"beta_features": []。 - 参考修复:具体的配置路径和缓存清理步骤可参考相关技术文档的详细说明,修改配置后务必重启容器以生效。







