1. 为什么要在 VirtualBox 里养这只“龙虾”
OpenClaw 这个项目,社区里管部署叫“养龙虾”,因为它本质是一个本地优先的 AI 智能体网关——装好之后常驻运行,能执行命令、读写文件、控制浏览器、收发消息,还能接飞书、Telegram、WebChat 这类渠道。你通过聊天窗口给它派活,它真的去动手。也正因为“真的动手”,把它直接装在日常办公的物理机上,风险不小:一条被恶意提示词诱导的指令,可能就把你的工作目录搅乱。
所以虚拟机是养龙虾的最优解。VirtualBox 免费、跨平台、快照功能成熟,配合 Ubuntu 24.04 LTS,能给你一个干净、可回滚、可 7×24 常驻的“龙虾缸”。翻车了?一键回滚到十分钟前。想迁移到云服务器?照着同一套命令半小时复刻。
这篇教程面向的是想从零把 OpenClaw 跑起来、又不想污染主力机的开发者。核心链路是:VirtualBox 建 Ubuntu 虚拟机 → 装 Node.js 24 → 全局装 OpenClaw → 用 TaoToken 统一 Key 接入模型通道 → 发一条真实请求验证连通与计费返回。全程命令可复制,版本号以当前稳定组合为准。
我试过把模型 Key 分散写在好几个配置文件里,后来发现统一走一个 API 通道省事太多——这也是本文把 TaoToken 放在前置章节的原因:一个 Key、一个 Base URL,管住所有模型调用,虚拟机里换模型不用再翻五个配置文件。
2. TaoToken 前置准备:统一 Key 与 API 通道
OpenClaw 自己不带模型能力,它需要你接一个“大脑”。传统做法是每个模型服务商各申请一个 Key,分别填进配置,时间一长就乱:千问一个、DeepSeek 一个、百炼一个,哪个额度用完了都记不清。TaoToken 的思路是把这些调用收敛到一个统一入口——你拿一个 Key,配一个 Base URL,后面换模型只改 Model ID 这一行。
这一步要做的事很简单:注册账号、生成 API Key、记下 Base URL。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址是 https://taotoken.net/api (这个地址不加 UTM 参数,配置里原样填)。登录后进控制台创建 Key,控制台地址 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,Key 管理页在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。
拿到 Key 之后先别急着往虚拟机里贴。建议在宿主机上建一个临时文本,把三样东西记好:Base URL(https://taotoken.net/api)、API Key(形如 sk- 开头的一长串)、以及你打算用的 Model ID。Model ID 的写法跟具体模型有关,比如对话类、推理类、编码类各有对应标识,填错会直接报模型不存在。文档页 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 里有当前可用的模型清单,配置前扫一眼,别凭记忆写。
为什么强调“统一 Key”?因为 OpenClaw 的配置结构里,模型提供商是可以配多个的,但每多一个就多一份 Key 泄露面、多一处版本漂移。统一走 TaoToken 之后,你的 openclaw.json 里只需要维护一个 provider 段落,换模型时改 model 字段即可,网关重启一次就生效。对虚拟机这种“试验场”场景,配置越少越不容易出错。
还有一点:Key 不要写进博客、截图、Git 仓库。虚拟机里如果开了共享文件夹,注意别把含 Key 的配置文件同步到宿主机公开目录。真丢了,第一时间去控制台吊销重建,成本很低。
3. 可复制配置:Node.js 安装与 OpenClaw 接入
这一章是全文的技术核心,分三段:虚拟机与 Node.js 环境、OpenClaw 安装、以及把 TaoToken 写进配置文件。每段都给完整命令或配置片段,路径与字段名保持和实际一致。
3.1 VirtualBox + Ubuntu 24.04 基础环境
VirtualBox 装好后新建虚拟机,类型选 Linux / Ubuntu (64-bit),内存给 4096 MB,虚拟硬盘 32 GB、VDI、动态分配。Ubuntu 用 24.04 LTS 的 Desktop ISO。一个实测有效的技巧:安装系统时先在虚拟机设置里取消勾选“接入网线”,断网纯本地安装,装完再联网更新,能避开安装器联网卡死的问题。
系统装完先更新源并打第一个快照,命名“纯净系统”:
sudo apt update && sudo apt upgrade -yNode.js 必须从 NodeSource 装,Ubuntu 自带的 18.x 不满足 OpenClaw 的最低要求:
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - sudo apt-get install -y nodejs node --version # 期望 v24.x.x npm --version # 期望 10.x.xnpm 换国内镜像,否则全局安装会慢到怀疑人生:
npm config set registry https://registry.npmmirror.com3.2 安装 OpenClaw 并生成配置文件
npm install -g openclaw@latest openclaw --version如果提示openclaw: command not found,把全局 bin 加进 PATH:
echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.bashrc source ~/.bashrc接着跑配置向导,--install-daemon会顺手把 Gateway 装成 systemd 用户服务,实现开机自启:
openclaw onboard --install-daemon向导里风险确认输入 Yes,引导模式选 QuickStart,模型提供商这一步先选 Skip(我们后面手动写 TaoToken),通讯渠道和技能都先跳过。向导结束后,配置文件落在~/.openclaw/config/openclaw.json。
3.3 写入 TaoToken 统一通道(JSON 片段)
用编辑器打开配置文件,把 models 段落改成下面这样。注意 Base URL 填https://taotoken.net/api,Key 换成你自己的,Model ID 按文档页当前清单填:
{ "models": { "providers": { "taotoken": { "type": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "models": [ { "id": "你的ModelID", "name": "taotoken-default" } ] } } }, "agents": { "defaults": { "model": { "primary": "taotoken/你的ModelID" } } } }如果你更习惯用命令行改,等价操作是:
openclaw config set models.providers.taotoken.type "openai-compatible" openclaw config set models.providers.taotoken.baseUrl "https://taotoken.net/api" openclaw config set models.providers.taotoken.apiKey "sk-你的TaoToken密钥" openclaw config set agents.defaults.model.primary "taotoken/你的ModelID"改完必须重启网关让配置生效:
openclaw gateway restart openclaw models statusmodels status里能看到 taotoken 这个 provider 处于就绪状态,就说明三件套(Base URL + Key + Model ID)都填对了。这一步是整个接入的关键,任何一项写错都会在下一章验证时暴露出来。
4. 验证请求:一次真实对话与计费返回
配置写完不能只看状态,得发一条真实请求,确认模型真的回话、并且计费有返回。先确认网关在跑:
openclaw gateway status openclaw doctordoctor会逐项检查配置、依赖、端口占用,有红字先解决红字。然后生成控制台 token 并打开 Web 界面:
openclaw token generate --admin浏览器访问http://127.0.0.1:18789/?token=你的token,在对话框里发第一条消息:
你好,用一句话介绍你自己,并说明你当前使用的模型标识。如果配置正确,你会看到它正常回复,并且回复里能带出模型标识。这一步验证的是“通道通不通”。接着验证“计费有没有返回”——去 TaoToken 控制台的用量页面刷新一下,应该能看到刚才这次请求的记录,包含时间、模型、token 消耗。这一步很关键:它证明请求确实走了 TaoToken 通道,而不是被本地某个缓存或默认 provider 接走了。
再发一条带动作的指令,验证 OpenClaw 的“手脚”是否正常:
帮我列出当前目录下的所有文件,并统计总大小。看到它真的执行命令并返回结果,说明网关、模型、执行链路全通。此时立刻打第二个快照,命名“龙虾成长期”。以后任何配置改坏,回滚到这里就行。
如果你更想用命令行验证而不开浏览器,也可以直接跑一次模型调用:
openclaw models test --provider taotoken --model 你的ModelID返回里会带上响应内容和耗时。实测下来,这条命令排查“Key 对不对、Model ID 存不存在”最快,比翻日志直观。
5. 常见报错排查:401、local proxy failed 与 reading choices
接入阶段最容易撞的几类错误,这里按真实报错对照给排查路径。先记住一个总原则:改完配置一定openclaw gateway restart,很多“莫名其妙不回复”都是没重启。
401 Unauthorized / invalid api key:Key 填错、复制时带了空格、或者 Key 已被吊销。检查openclaw.json里 apiKey 字段,确认是sk-开头且无换行。用openclaw models test单独测一次,报 401 就是 Key 问题,跟网络无关。
local proxy failed / connection refused:Base URL 写错,或者虚拟机网络没通。确认填的是https://taotoken.net/api,注意结尾不要多加/v1之类路径(除非文档明确要求)。再在虚拟机里curl -I https://taotoken.net/api看能不能通,不通先查虚拟机网卡是不是还断着。
reading choices / cannot read property 'choices' of undefined:这类报错通常意味着返回体不是预期的 OpenAI 兼容格式,多半是 Model ID 填错,请求打到了不存在的模型,返回了错误结构。去文档页核对当前 Model ID,改完重启网关。也有可能是 provider 的 type 没写openai-compatible,检查这一行。
OAuth 相关报错 / token expired:如果你之前配过 OAuth 类 provider,残留的授权状态可能干扰。清掉旧 provider 段落,只保留 taotoken 一个,重启后重试。统一通道的好处在这里体现得很明显:只有一个 provider,就没有多来源状态打架的问题。
18789 端口打不开:控制台默认只在虚拟机内监听。要么在虚拟机内部用浏览器访问,要么在 VirtualBox 网络设置里加端口转发。不建议为了图省事把网关暴露到公网。
Node 版本过低报错:openclaw安装或启动时报 Node 版本不满足,说明你用的是 Ubuntu 自带 18.x。回到 3.1 节,用 NodeSource 重装 24.x,node --version确认后再继续。
排查顺序建议固定成:openclaw doctor→openclaw models status→openclaw models test→ 看网关日志。四步走完,九成问题能定位。日志里如果出现taotoken字样和具体 HTTP 状态码,直接按状态码对号入座即可。
6. 长期编码与 Agent 场景:把统一 Key 用起来
环境跑通只是开始。OpenClaw 真正的价值在于常驻干活,而 TaoToken 统一 Key 的价值在于——你后面无论加多少模型、换多少任务,配置面始终只有一个 provider。这对长期跑 Agent 的场景特别友好。
如果你打算让它承担编码类任务,比如读代码、改文件、跑测试,可以在控制台里启用对应技能,然后把默认模型切到编码向的 Model ID。切换只改一行:
openclaw config set agents.defaults.model.primary "taotoken/编码向ModelID" openclaw gateway restart想同时跑多个任务、互不干扰,可以建多个 workspace,每个 workspace 用不同的模型或不同的系统提示词。因为 Key 是统一的,你不需要为每个 workspace 单独配密钥,只改模型标识就行。这种“一个通道、多路复用”的结构,是分散配 Key 做不到的。
对于需要长期、稳定、按量使用的编码与 Agent 场景,可以了解一下 Coding Plan,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。它适合把 OpenClaw 这类常驻 Agent 的调用量集中管理,避免每个模型单独充值、单独对账。
日常维护命令记这几条就够:
openclaw gateway status # 看网关状态 openclaw gateway restart # 改配置后重启 openclaw update --channel stable # 升级 OpenClaw openclaw doctor # 体检最后两个习惯:每完成一个阶段打一次快照,养成“养砸了就回滚”的节奏;API Key 只存在虚拟机配置文件里,不截图不外传。等你想把这套迁到云服务器 7×24 值守时,会发现命令几乎原样可用——虚拟机里练熟的手感,直接就是生产环境的底气。