☰
2026年4月OpenClaw本地搭建:4分钟零门槛指南与百炼APIKey配置
2026/9/28 4:35:15 网站建设 项目流程

1. 为什么要在本地跑 OpenClaw,而不是直接买服务器

OpenClaw 是一个开源的 AI 自动化助理平台,能接钉钉、接大模型、跑定时任务、处理群消息,适合想把自己工作流里重复动作交给 AI 的人。2026 年 4 月这个时间点,很多人第一反应是去云上开一台轻量服务器,但如果你只是想先跑通、先验证模型能不能用、先看看钉钉机器人回不回消息,本地搭建其实更快——不用等实例创建,不用配安全组,不用纠结地域,4 分钟能跑起来。

我自己的做法是:本地先跑通,确认 OpenClaw 的 config.toml 写对了、百炼 API Key 能调通、钉钉通知能收到,再决定要不要搬到云上做 7×24 常驻。这样踩坑成本最低,因为本地出问题你能直接看日志、改配置、重启,不用远程连终端。

这篇就按这个思路写:本地部署 OpenClaw,接阿里云百炼的 API Key,配钉钉通知,最后给启动验证和常见报错排查。全程命令可复制,零代码基础也能跟。

适合谁:想快速验证 OpenClaw 能力的开发者、想把钉钉群接上 AI 助理但还没决定上不上云的人、以及被云服务器地域和端口问题卡过的人。

2. 前置准备:百炼 API Key 和本地环境

2.1 拿到百炼 API Key

OpenClaw 本身不带模型,它需要你给它一个能调用的模型接口。阿里云百炼提供兼容 OpenAI 协议的接口,OpenClaw 可以直接用。

去阿里云百炼控制台,进「密钥管理」,创建一个 API Key,格式是sk-xxxx。复制下来,后面填进 config.toml。注意别带空格和换行,这是后面报错最多的地方。

如果你打算长期跑编码类任务,可以看下百炼的 Coding Plan,按次计费比按 token 更适合高频调用场景。入口在百炼控制台的订阅区,具体价格以控制台为准,我不在这里编数字。

2.2 本地环境要求

本地跑 OpenClaw 对机器要求不高,但有两条硬线:

  • Node.js 22 及以上。OpenClaw 2026 版依赖 Node 22 的某些特性,低版本会启动失败。
  • 内存至少 2GiB 可用。低于这个数,网关服务起来后会 OOM。

检查命令:

node -v # 期望输出 v22.x.x 或更高 free -h # Linux 看 available 列;macOS 用 vm_stat

如果 Node 版本不够,用 nvm 装一个:

nvm install 22 nvm use 22

2.3 关于 TaoToken 的接入位置

OpenClaw 的模型层支持自定义 baseUrl,所以你可以把模型请求指向 TaoToken 的兼容接口,再由它转发到百炼。这样做的好处是本地配置里只维护一个 key,换模型不用改 OpenClaw 的代码。

TaoToken 的 API 地址是https://taotoken.net/api,接入文档在https://taotoken.net/doc。API Key 在控制台生成:https://taotoken.net/console,密钥管理页在https://taotoken.net/api-keys。

如果你更想直接用百炼原生接口,也可以,config.toml 里把 baseUrl 换成百炼的兼容地址即可。两种方式下面都会给。

3. 可复制的 config.toml 骨架

OpenClaw 的配置文件默认在~/.openclaw/config.toml。如果目录不存在,先建:

mkdir -p ~/.openclaw cd ~/.openclaw

然后创建 config.toml。下面这份是完整骨架,你只需要替换三个地方:API Key、钉钉凭证、模型名。

# ~/.openclaw/config.toml [gateway] port = 18789 host = "127.0.0.1" log_level = "info" [models] default = "bailian/qwen3-max-2026" [models.providers.bailian] baseUrl = "https://dashscope.aliyuncs.com/compatible-mode/v1" apiKey = "sk-你的百炼APIKey" models = [ { id = "qwen3-max-2026", maxTokens = 65536 }, { id = "qwen3.5-plus", maxTokens = 8192 } ] # 如果走 TaoToken 转发,用下面这段替换上面的 bailian 段 # [models.providers.taotoken] # baseUrl = "https://taotoken.net/api" # apiKey = "你的TaoTokenKey" # models = [ # { id = "qwen3-max-2026", maxTokens = 65536 } # ] [channels.dingtalk] enabled = true clientId = "你的钉钉ClientID" clientSecret = "你的钉钉ClientSecret" prefix = "!" [skills] autoLoad = true

几个关键点说明:

gateway.host本地跑就写127.0.0.1,别写0.0.0.0,否则同网络下别人能访问你的面板。等你确认要对外再改。

models.default的格式是provider/modelId,provider 名要和下面[models.providers.xxx]的段名一致。写错了会报provider not found。

channels.dingtalk.prefix是触发前缀,默认!。如果你钉钉群里已经有别的机器人用!,改成$或/避免冲突。

钉钉的 Client ID 和 Client Secret 在钉钉开放平台创建应用后,在「凭证与基础信息」里拿。权限至少要开这三个:Card.Streaming.Write、Card.Instance.Write、qyapi_robot_sendmsg。少一个机器人就发不出消息。

4. 启动、验证与成功结果

4.1 安装与启动

如果你还没装 OpenClaw:

npm install -g openclaw

然后启动网关:

openclaw gateway start --daemon

--daemon是后台运行,本地验证阶段也可以不加,直接前台跑,方便看日志。前台跑的话另开一个终端做验证。

检查状态:

openclaw gateway status

期望输出里有active (running)。如果是failed,跳到第 5 节排查。

4.2 验证模型调用

先测模型通不通:

openclaw model test

这个命令会用 config.toml 里的 default 模型发一条测试请求。成功的话会返回模型回复内容。如果报401或invalid api key,检查 apiKey 有没有多余空格。

再测网关本身:

curl http://127.0.0.1:18789/health

返回{"status":"ok"}就说明网关活着。

4.3 生成访问 Token 并打开面板

openclaw token generate

复制输出的 Token,浏览器打开:

http://127.0.0.1:18789?token=你的Token

进去后发一条「帮我总结 OpenClaw 本地部署步骤」,能正常回复就说明模型链路通了。

4.4 验证钉钉通知

在钉钉群里添加你创建的机器人,发送:

!你好

机器人回复即接入成功。如果没反应,先看openclaw logs -f里有没有钉钉相关的错误。

5. 本篇常见报错排查

5.1 启动报EADDRINUSE: address already in use :18789

端口被占了。查一下谁在用:

lsof -i :18789

如果是上次没退干净的 OpenClaw 进程,杀掉:

kill -9 <PID>

或者改 config.toml 里的gateway.port换个端口。

5.2 模型报provider not found

models.default里的 provider 名和[models.providers.xxx]段名不一致。比如你写default = "bailian/qwen3-max-2026",那下面必须是[models.providers.bailian],不能写成[models.providers.aliyun]。

5.3 模型报401 Unauthorized

三种可能:API Key 复制时带了空格或换行;Key 被禁用或欠费;baseUrl 写错。先手动重新粘贴一次 Key,确认没有首尾空白。百炼的兼容地址是https://dashscope.aliyuncs.com/compatible-mode/v1,注意结尾的/v1不能少。

5.4 钉钉机器人不回复

按顺序查:

权限是否开全。去钉钉开放平台「权限管理」确认Card.Streaming.Write、Card.Instance.Write、qyapi_robot_sendmsg三个都在。

凭证是否正确。Client ID 和 Client Secret 重新复制一次,注意别把 Secret 里的特殊字符漏掉。

配置改完是否重启。改 config.toml 后必须openclaw gateway restart,不重启不生效。

前缀是否冲突。群里如果已经有!开头的机器人,把你的 prefix 改成$。

5.5 日志里出现dingtalk stream connect failed

这是钉钉长连接没建起来。通常是网络问题或凭证错误。先确认 Client ID/Secret 对,再看本机能不能访问钉钉开放平台的接口。如果本地网络有限制,换到能正常访问的环境再试。

5.6 内存不足导致服务被杀

openclaw logs -f里如果看到Killed或out of memory,说明内存不够。本地跑至少留 2GiB 可用内存。关掉一些占内存的程序,或者把models里的大模型换成小一点的。

6. 接下来怎么走

本地跑通之后,你手里应该有一个能对话、能接钉钉的 OpenClaw 实例。下一步通常是两个方向:一是把它搬到云上做常驻,二是接更多技能。

搬云上的话,重点注意地域和端口放行,本地这套 config.toml 可以直接带过去,改一下gateway.host就行。

接技能的话,OpenClaw 有 ClawHub 生态,常用的一键装:

npm install -g clawhub-cli clawhub install search clawhub install document-parser clawhub install summarize openclaw gateway restart

如果你在配 API Key 或接钉钉时卡住,可以直接看 TaoToken 的接入文档https://taotoken.net/doc,里面有兼容接口的完整参数说明。密钥管理在https://taotoken.net/api-keys,控制台在https://taotoken.net/console。想先验证模型对话效果,用https://taotoken.net/models试一条请求最快。长期跑编码和 Agent 任务的话,Coding Plan 的入口在https://taotoken.net/coding-plan,按次计费比按 token 更适合高频场景。

本地这套配置我用了两周,最常改的就是models.default那一行——换模型只动一个字段,不用碰其他配置。这个设计比很多同类工具省心,建议你也保持这个习惯,别把模型名硬编码到技能脚本里。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询