☰
RK3588部署OpenClaw完整指南:ARM架构下Node.js与npm环境配置到TaoToken接入
2026/10/1 20:31:37 网站建设 项目流程

1. RK3588 上跑 OpenClaw 到底卡在哪:ARM64 环境与模型通道的真实门槛

OpenClaw 是一个能通过聊天软件远程调遣的 AI Agent 网关,它本身不吃本地算力,真正干活的是背后接的云端模型 API。所以把它塞进 RK3588 这类 ARM64 开发板是完全可行的——几瓦功耗、巴掌大小、7x24 小时挂着,比专门开一台 x86 主机划算得多。适合谁?手里有 NanoPC、ArmSoM-Sige7、EASY-EAI-Monster 这类板子,想搭一个自己可控的 AI 管家的开发者。

但 ARM 架构下从零部署,坑比 x86 多。我实测下来,主要卡在三个地方:一是 Node.js 版本,OpenClaw 要求 22 及以上,很多板子出厂自带的 apt 源里还是 18 甚至 16,直接apt install nodejs会装出个跑不起来的版本;二是 npm 全局安装时的原生模块编译,ARM 上预编译包覆盖不全,偶尔要现场编译,内存小的板子会直接 OOM;三是模型通道配置,OpenClaw 的 provider 配置字段比较绕,Base URL、apiKey、api 协议类型三者对不上就会报reading 'choices'之类的错。

这篇就按「环境准备 → 装 OpenClaw → 配模型通道 → 启动验证 → 排错」的顺序走一遍,重点是把模型通道统一接到 TaoToken 的 API 上,这样你只需要维护一个 Key,后面换模型、加模型都不用改代码。全程命令可直接复制,配置文件片段也给你贴全。

先确认你的板子架构,SSH 上去执行:

uname -m

输出aarch64或arm64就对了。如果是armv7l,那是 32 位 ARM,Node.js 22 的官方二进制不覆盖,得换板子或自己编译,不建议折腾。顺便看下内存和系统版本:

free -h cat /etc/os-release | head -n 2

内存建议 4GB 起步,8GB 更稳。系统用 Debian 或 Ubuntu 22.04+ 都行,内核别太老。网络要能正常出网,因为后面要拉 npm 包和调云端 API。

这里有个前置认知:OpenClaw 的「模型能力」和「聊天通道」是两套独立配置。模型能力决定它用哪个大模型思考,聊天通道决定你从飞书、QQ 还是 Telegram 给它发指令。很多人一上来就配飞书,结果模型没通,发消息过去机器人不回,以为是通道坏了,其实是模型那层就报错了。所以顺序上,先把模型通道打通、能跑通一次 API 调用,再去接聊天软件。

2. TaoToken 前置准备:一个 Key 打通多模型通道

在配 OpenClaw 之前,先把模型通道这块理清楚。OpenClaw 支持直接填各家厂商的 Key,比如通义千问填 dashscope 的 Key、Claude 填 Anthropic 的 Key。但问题是,你一旦想换模型或者同时用几个模型,就得在配置文件里维护一堆 provider,每个的 Base URL、协议格式还不一样,改起来烦。

TaoToken 在这里的作用是做一个统一的 API 通道:你只拿一个 Key,Base URL 指向同一个地址,模型 ID 换一下就能切换底层模型。对 OpenClaw 来说,它看到的就是一个标准的 OpenAI 兼容接口,配置字段固定,不用为每个厂商单独写一套。

先去官网注册并拿到 Key:

https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

注册完进控制台创建 API Key,地址是:

https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

Key 的管理页面在:

https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

创建时给它起个能认出来的名字,比如rk3588-openclaw,方便以后在板子上出问题时快速定位是哪个 Key。Key 只在创建时完整显示一次,复制下来存好,后面要填进 OpenClaw 的配置文件。

API 的基础地址是:

https://taotoken.net/api

注意这个地址不带任何查询参数,是纯粹的 API 端点。OpenClaw 配置里填 Base URL 时,通常要填到/v1这一层,具体看下面配置片段。

在正式写进 OpenClaw 之前,建议先在板子上用 curl 验证一下 Key 和网络通不通,这一步能省掉后面大量排查时间:

curl https://taotoken.net/api/v1/models \ -H "Authorization: Bearer 你的Key"

如果返回一个 JSON,里面有data数组和一堆模型 ID,说明 Key 有效、网络可达、Base URL 正确。如果返回 401,是 Key 错了或没带上;如果卡住不动,是网络问题;如果返回 404,多半是路径写错了。这一步过了,再去配 OpenClaw,成功率会高很多。

想先直观看看有哪些模型可用、对话效果如何,可以直接在网页端试:

https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

如果你后面打算长期跑编码类 Agent 任务,可以了解下 Coding Plan:

https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

接入文档在这里,配置字段有疑问时对照看:

https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

3. 可复制配置:Node.js 22 安装与 OpenClaw 模型通道写入

这一节是全文的核心操作区,命令和配置片段都能直接抄。

先装 Node.js 22。不要用 apt 装,用 NVM 管理版本最干净:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc nvm install 22 nvm alias default 22

验证:

node -v npm -v

node -v应该输出v22.x.x。如果nvm命令找不到,说明~/.bashrc没加载,重新source ~/.bashrc或重开一个 SSH 会话。

接着全局安装 OpenClaw:

npm install -g openclaw@latest

ARM 上如果卡在编译原生模块,先确认内存够,不够就加 swap:

sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile

装完跑初始化向导:

openclaw onboard --install-daemon

向导里模型供应商那一步先选Skip for now,我们手动写配置文件,比向导里选更可控。通道、技能、hooks 都先跳过。

现在编辑主配置文件:

vim ~/.openclaw/openclaw.json

把模型通道指向 TaoToken,完整片段如下(注意 JSON 不能有注释,下面注释是给你看的,抄的时候删掉):

{ "agents": { "defaults": { "model": { "primary": "taotoken/claude-sonnet-4" } } }, "models": { "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api/v1", "apiKey": "你的TaoToken Key", "api": "openai-completions", "models": [ { "id": "claude-sonnet-4", "name": "Claude Sonnet 4", "reasoning": false, "input": ["text"], "contextWindow": 200000, "maxTokens": 8192 }, { "id": "gpt-4o", "name": "GPT-4o", "reasoning": false, "input": ["text"], "contextWindow": 128000, "maxTokens": 4096 } ] } } } }

几个字段必须对齐,错一个就报错:

字段值说明
baseUrlhttps://taotoken.net/api/v1必须带 /v1,OpenClaw 走 OpenAI 兼容协议
apiKey你的 Key从 api-keys 页面复制,别带空格
apiopenai-completions协议类型,TaoToken 是 OpenAI 兼容
primarytaotoken/claude-sonnet-4格式是 provider名/模型id,要和下面 models 里的 id 对上

primary里的taotoken是 provider 的键名,claude-sonnet-4是 models 数组里的id。这两个必须和上面定义的一致,否则 OpenClaw 找不到模型。

改完重启网关:

openclaw gateway restart

如果你用的是 Codex 那套配置体系,认证信息会落在~/.codex/auth.json,格式类似:

{ "OPENAI_API_KEY": "你的TaoToken Key", "OPENAI_BASE_URL": "https://taotoken.net/api/v1" }

三件套(Base URL + Key + Model ID)在任何一套配置里都不能缺,缺一个就连不上。

4. 验证请求:从 gateway status 到一次可观测的 API 调用

配置写完不算完,得看到真实返回才算跑通。

先看网关状态:

openclaw gateway status

正常输出里会有Runtime: running和Service: systemd (enabled)。如果显示 stopped,用 systemctl 看详细:

systemctl --user status openclaw-gateway

日志实时跟:

journalctl --user -u openclaw-gateway -f

然后做一次真实的模型调用验证。OpenClaw 自带诊断命令:

openclaw doctor

它会检查配置、网络、模型连通性。如果模型通道有问题,这里会直接报出来,比如provider taotoken unreachable或invalid api key。

更直接的验证是发一条测试消息。OpenClaw 有 CLI 交互入口:

openclaw chat "用一句话说明你现在用的是哪个模型"

如果返回了模型生成的文字,说明整条链路通了:OpenClaw → TaoToken API → 底层模型 → 返回。这一步成功,你就能在日志里看到对应的请求记录,包括耗时、token 数。

想确认请求确实打到了 TaoToken,可以在调用时看网关日志:

journalctl --user -u openclaw-gateway -f | grep -i taotoken

正常会看到类似POST https://taotoken.net/api/v1/chat/completions 200的记录。状态码 200 就是成功,401 是 Key 问题,404 是路径问题,429 是限流。

Dashboard 也可以打开看,默认在 18789 端口,带 token 验证:

openclaw dashboard --no-open

输出里会有http://127.0.0.1:18789/?token=xxxxx。板子没桌面的话,在 PC 上做 SSH 转发:

ssh -N -L 18789:127.0.0.1:18789 pi@你的RK3588_IP

然后 PC 浏览器打开那个带 token 的 URL,就能看到 Web 管理界面,里面能看到会话记录和模型调用情况。

到这一步,一次可观测的 API 调用就完成了。你能在三个地方看到证据:CLI 返回的文字、网关日志里的 200 记录、Dashboard 里的会话条目。三个都对上,才算真的跑通,而不是「看起来启动了」。

5. 本篇常见错排查:401、local proxy failed 与 reading choices

部署过程中最常撞的几个报错,我按真实日志对照给你拆。

报错一:401 Unauthorized

日志里出现:

provider taotoken error: 401 Unauthorized

原因就三类:Key 复制时带了空格或换行、Key 被删了、请求头没带上。先检查配置文件里的apiKey字段,用cat -A看有没有隐藏字符:

grep apiKey ~/.openclaw/openclaw.json | cat -A

如果末尾有$之外的奇怪符号,重新从 api-keys 页面复制。再确认 Key 本身有效:

curl https://taotoken.net/api/v1/models -H "Authorization: Bearer 你的Key"

这条通了,说明 Key 没问题,那就是 OpenClaw 配置里写错了。

报错二:local proxy failed

日志里出现:

local proxy failed: dial tcp 127.0.0.1:xxxx connection refused

这是 OpenClaw 内部代理层连不上。常见于你之前配过本地 Ollama,baseUrl还指向http://127.0.0.1:11434/v1,但 Ollama 没启动。既然我们走 TaoToken,就把 provider 的baseUrl改成https://taotoken.net/api/v1,别留本地地址。改完重启网关。

报错三:Cannot read properties of undefined (reading 'choices')

日志里出现:

TypeError: Cannot read properties of undefined (reading 'choices')

这个报错的意思是:OpenClaw 期望返回体里有choices字段,但实际返回的结构不对。根因通常是api协议类型填错了,或者baseUrl少了/v1。TaoToken 是 OpenAI 兼容协议,api必须是openai-completions,baseUrl必须是https://taotoken.net/api/v1。两个都对了,返回体里才会有标准的choices数组。

报错四:OAuth 相关

如果你之前配过 Claude Code 或 Codex 的 OAuth 登录,日志里可能出现:

OAuth token expired

OpenClaw 走 API Key 模式时不需要 OAuth。检查配置文件里有没有残留的 OAuth 字段,删掉,只保留apiKey。Codex 的~/.codex/auth.json里如果同时有 OAuth 和 API Key 字段,也可能冲突,只留OPENAI_API_KEY和OPENAI_BASE_URL。

报错五:内存不足导致安装失败

npm install -g openclaw中途被 kill,日志里出现Killed或ENOMEM。这就是内存不够,按前面说的加 4G swap,再重装。

排查顺序建议固定下来:先openclaw doctor,再看journalctl日志,再 curl 验证 Key,最后检查配置文件字段。90% 的问题在前两步就能定位。

6. 长期跑起来:把 RK3588 变成常驻 Agent 节点

跑通一次调用只是开始,真正有价值的是让它 7x24 小时挂着。OpenClaw 装的时候带了--install-daemon,systemd 用户服务已经注册好了,板子重启后会自动拉起。确认一下:

systemctl --user is-enabled openclaw-gateway

输出enabled就对了。如果板子会断电重启,建议再开 lingering,让用户服务在没登录时也能跑:

sudo loginctl enable-linger $USER

模型通道这边,TaoToken 的好处是你后面想换模型,只改primary字段就行,比如从taotoken/claude-sonnet-4换成taotoken/gpt-4o,Base URL 和 Key 都不用动。加新模型就在models数组里追加一项,id和name填上,重启网关即可。

如果你要跑的是编码类、Agent 类长期任务,可以看下 Coding Plan 的额度方案:

https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

配置字段有拿不准的,对照接入文档:

https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

Key 管理和新建在:

https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

想先在网页端验证模型效果再写进配置,用模型对话页:

https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

最后提醒一个实操细节:RK3588 的散热和供电要稳。Agent 常驻会持续有网络请求,虽然 NPU 不参与,但 CPU 和网卡一直在工作,劣质电源会导致随机重启,看起来像服务崩了,其实是掉电。给它配个 5V/3A 以上的稳定电源,加个小散热片,比什么都强。

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

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

立即咨询