☰
【Agent】Ubuntu22.04部署Openclaw(养龙虾)图文教程:把settings改到TaoToken
2026/10/3 19:25:45 网站建设 项目流程

1. Ubuntu22.04 部署 Openclaw 到底卡在哪:从依赖到网关的真实场景

Openclaw 是一个可以在本地跑起来的 Agent 运行框架,社区里管它叫「养龙虾」——因为它像养一只随时待命的助手,你给它配好模型通道,它就能在网页控制台里跟你对话、调用工具、执行技能。适合谁?适合手里有一台 Ubuntu22.04 机器(物理机、虚拟机都行)、想在自己环境里跑通一个 Agent、又不想被各种 API Key 和额度问题卡住的开发者。核心检索词就三个:Ubuntu22.04、Openclaw、Agent 部署。

我这次部署的目标很明确:在 Ubuntu22.04 上把 Openclaw 完整跑起来,然后把 settings 里的 API 端点统一改到 TaoToken 通道,这样模型调用走一个入口,Token 额度也能集中管理。整个过程踩了几个坑,最典型的是网关服务装上了但 RPC 探测失败、端口 18789 没真正监听,还有令牌不匹配导致控制台连不上。这些报错在官方文档里散落在不同章节,我把它整理成一条能跟做的路径。

先说清楚 Openclaw 的架构,不然后面配置容易懵。它大致分三层:最底层是 gateway 网关服务,负责监听端口、管理认证;中间是 agent 运行时,读取配置文件里的模型定义和 fallback 链;最上层是 dashboard 网页控制台,你在这里跟「龙虾」对话。三层里任何一层配置不对,表现都是「服务在跑但用不了」。所以部署顺序应该是:先装依赖和主程序,再修网关,再配模型通道,最后验证连通性。

硬件方面不用太焦虑,2 核 4G 的虚拟机就能跑起来,磁盘留 20G 以上。系统装好后第一件事是换源,不然 apt 拉依赖会慢到怀疑人生。我用的阿里云镜像源,命令直接贴给你:

# 1.备份网络源配置文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 2.修改网络源配置文件 sudo tee /etc/apt/sources.list <<-'EOF' deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse EOF # 3.导入22.04官方公钥(无弃用警告) sudo curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3B4FE6ACC0B21F32" | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/ubuntu-official.gpg # 4.清理缓存并更新 sudo apt clean && sudo apt update

换源之后建议顺手把 SSH 装上,方便你从别的机器远程操作,尤其是用虚拟机的时候,复制粘贴命令会舒服很多:

sudo apt install openssh-server -y sudo systemctl start ssh sudo systemctl enable ssh sudo systemctl status ssh

到这里基础环境就绪。接下来是安装 Openclaw 主程序,官方给了一键脚本,会自动处理 Node.js、Git 这些依赖:

curl -fsSL https://openclaw.ai/install.sh | bash

脚本跑完会进入交互式配置向导,问你模型提供商、API Key 之类。这里先别急着填真实 Key,因为我们要把通道统一改到 TaoToken,向导里能跳过的就跳过,后面直接改配置文件更干净。向导结束后,用openclaw gateway status检查状态,大概率你会看到服务没起来——这就是下一个 H2 要解决的问题。

2. TaoToken 前置准备:把统一通道和 API Key 拿到手

在改 Openclaw 配置之前,得先把 TaoToken 这边的入口和凭证准备好。TaoToken 做的事情是把多家模型的调用收敛到一个统一通道,你只需要一个 Base URL 和一个 API Key,就能在 Openclaw 里切换不同模型,不用为每个厂商单独维护一套认证。对养龙虾这种需要配 fallback 链的场景特别合适——主模型挂了自动切备用,全走同一个端点。

第一步是拿 API Key。打开 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册登录后进入控制台。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,在里面找到 API Keys 管理页,新建一个 Key。建议给这个 Key 起个能认出来的名字,比如openclaw-ubuntu,方便以后排查是哪个应用在用。

创建完 Key 之后,你会拿到一串以sk-开头的字符串,先复制到安全的地方。注意这个 Key 只在创建时完整显示一次,关掉页面就看不全了,所以别手滑。

第二步是确认 API 端点。TaoToken 的 API 基础地址是:

https://taotoken.net/api

这个地址后面会填到 Openclaw 的配置文件里,作为模型的 Base URL。注意它和官网地址不是一回事,官网是给人看的,API 是给程序调的,别填混了。

第三步,如果你还没想好用什么模型,可以先去模型对话页面试一下。地址是 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite ,在里面选几个模型发几条消息,确认通道是通的、响应正常。这一步看起来多余,其实很有用——等你配好 Openclaw 发现调不通时,就能快速判断是通道问题还是 Openclaw 配置问题。

关于模型 ID 的写法,TaoToken 通道下通常用provider/model的形式,比如anthropic/claude-sonnet-4这类。具体支持哪些模型、对应的 ID 是什么,以接入文档为准:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。文档里会列出当前可用的模型清单和调用示例,配 Openclaw 之前扫一眼,能省掉很多试错。

如果你打算长期跑 Agent、经常做编码类任务,可以了解一下 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 。它针对高频调用场景做了额度安排,比零散调用更划算。不过这一步不是必须的,先把基础通道跑通再说。

准备工作做完,你手里应该有三样东西:Base URL(https://taotoken.net/api)、API Key(sk-开头那串)、以及想用的模型 ID。接下来进入配置环节。

3. 可复制配置:把 Openclaw settings 改到 TaoToken 通道

Openclaw 的主配置文件在~/.openclaw/openclaw.json。这个文件是 JSON 格式,改之前先备份一份,改坏了能回滚:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak nano ~/.openclaw/openclaw.json

下面是一份可以直接参考的完整配置。关键改动有三处:env里放 TaoToken 的 API Key,agents.defaults.model里把模型指向 TaoToken 通道,gateway里确保mode是local且 token 设好。把里面sk-你的TaoToken密钥替换成你自己的 Key:

{ "meta": { "lastTouchedVersion": "2026.3.13", "lastTouchedAt": "2026-03-18T08:49:59.347Z" }, "wizard": { "lastRunAt": "2026-03-18T08:37:25.135Z", "lastRunVersion": "2026.3.13", "lastRunCommand": "configure", "lastRunMode": "local" }, "auth": { "profiles": { "taotoken:default": { "provider": "taotoken", "mode": "api_key", "baseUrl": "https://taotoken.net/api" } } }, "env": { "TAOTOKEN_API_KEY": "sk-你的TaoToken密钥" }, "agents": { "defaults": { "model": { "primary": "anthropic/claude-sonnet-4", "fallbacks": [ "openai/gpt-4o-mini", "google/gemini-2.0-flash" ] }, "models": { "anthropic/claude-sonnet-4": { "alias": "TaoToken-Claude" }, "openai/gpt-4o-mini": {}, "google/gemini-2.0-flash": {} }, "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } }, "list": [ { "id": "main", "model": "anthropic/claude-sonnet-4" } ] }, "messages": { "ackReactionScope": "group-mentions" }, "commands": { "native": "auto", "nativeSkills": "auto", "restart": true, "ownerDisplay": "raw" }, "gateway": { "port": 18789, "mode": "local", "auth": { "mode": "token", "token": "123456" } } }

几个字段解释一下,避免你改错。auth.profiles里的baseUrl就是 TaoToken 的 API 地址,这是把通道切过去的核心。env.TAOTOKEN_API_KEY是环境变量注入,Openclaw 启动时会读它。agents.defaults.model.primary是主模型,fallbacks是备用链,主模型调用失败会依次往下切。gateway.mode必须是local,否则网关启动会被阻止——这就是很多人遇到的Gateway start blocked报错的根因。gateway.auth.token是控制台登录用的令牌,先设成123456方便测试,跑通后建议改复杂点。

模型 ID 这块要特别注意,anthropic/claude-sonnet-4、openai/gpt-4o-mini这些只是示例,实际可用的 ID 以 TaoToken 接入文档为准。填错 ID 的表现是请求返回模型不存在,不是通道问题,别搞混。

改完保存退出(nano 里Ctrl+O保存、Ctrl+X退出),然后重启网关服务让配置生效:

systemctl --user restart openclaw-gateway openclaw gateway status

如果状态显示 running 且端口 18789 在监听,说明配置加载成功。如果还是失败,看下一个 H2 的排错部分。

4. 验证请求:确认 Token 调用真的生效了

配置改完不代表通道就通了,得实际发一次请求验证。Openclaw 提供了几种验证方式,我按从简到繁的顺序说。

最直接的是用openclaw gateway status看网关状态,但这个只能证明服务在跑,证明不了模型通道通。要验证模型调用,打开 dashboard 控制台最直观:

openclaw dashboard --no-open

这条命令会输出一个带令牌的 URL,复制到浏览器打开。如果提示连接失败或令牌不匹配,回到配置文件把gateway.auth.token的值复制到控制台的网关令牌输入框里。连上之后,在对话框里发一条消息,比如「你好,报一下你当前用的模型」。如果龙虾正常回复,并且回复里体现的是你配置的模型,说明 TaoToken 通道已经生效。

想更严谨一点,可以直接用 curl 打 TaoToken 的 API,确认 Key 和端点本身没问题:

curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -H "Content-Type: application/json" \ -d '{ "model": "anthropic/claude-sonnet-4", "messages": [{"role": "user", "content": "ping"}] }'

如果返回里有正常的choices字段和内容,说明通道和 Key 都没问题,那 Openclaw 里调不通就一定是配置文件的问题。如果这里就报 401,说明 Key 错了或者没生效,回控制台重新生成一个。

还有一种情况是请求发出去了但一直没响应,或者返回reading choices之类的解析错误。这通常是模型 ID 写错,或者返回格式和 Openclaw 预期的不一致。解决办法是先用 curl 确认该模型 ID 能正常返回,再回填到配置里。

验证通过后,你可以在控制台里多聊几轮,观察 Token 消耗情况。TaoToken 控制台能看到调用记录和额度使用,确认每次对话都走了统一通道。这一步做完,Ubuntu22.04 上的 Openclaw Agent 就算真正跑通了。

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

部署过程中最容易卡住的几个报错,我按实际遇到的顺序列出来,对照着查。

报错一:Gateway service not installed

执行openclaw gateway status时提示服务没装。解决方法是手动安装并启动:

openclaw gateway install openclaw gateway start openclaw gateway enable openclaw gateway status

enable是设开机自启,别漏了,不然重启机器后服务又没了。

报错二:RPC probe: failed且提示Gateway start blocked: set gateway.mode=local (current: unset) or pass --allow-unconfigured

这个报错的根因是配置文件里gateway.mode没设。服务虽然被 systemd 拉起来了,但进程初始化时发现 mode 未设置就退出,systemd 不断重启,端口自然没监听。看详细日志:

journalctl --user -u openclaw-gateway.service -n 50 --no-pager -f

解决办法就是回到~/.openclaw/openclaw.json,确保gateway段里有"mode": "local",然后重启服务。这个字段在本文第 3 节的配置片段里已经包含,照抄即可。

报错三:unauthorized: gateway token mismatch

控制台连不上,提示令牌不匹配。原因是 dashboard URL 里的令牌和配置文件里的对不上。执行openclaw dashboard --no-open生成带正确令牌的 URL,或者手动把配置文件里gateway.auth.token的值复制到控制台的网关令牌输入框。两边一致就能连上。

报错四:401 Unauthorized

模型调用返回 401,说明 API Key 有问题。检查三处:env.TAOTOKEN_API_KEY的值是不是完整的sk-开头字符串;Key 有没有过期或被删;请求头里的Authorization: Bearer格式对不对。用第 4 节的 curl 命令单独测一下,能快速定位是 Key 问题还是 Openclaw 配置问题。

报错五:local proxy failed

这个通常出现在网关尝试转发请求但目标地址不可达时。检查auth.profiles里的baseUrl是不是https://taotoken.net/api,注意不要多写或少写路径。另外确认机器能正常访问外网,DNS 解析正常。

报错六:reading choices解析失败

请求返回了但 Openclaw 解析不了,多半是模型 ID 写错导致返回了错误结构,或者返回格式和预期不符。先用 curl 确认该模型 ID 能返回标准结构,再回填配置。如果模型 ID 正确但仍报错,检查是不是 fallback 链里某个模型 ID 无效,把无效的删掉。

报错七:OAuth 相关错误

如果你在配置里用了 OAuth 模式的 provider,可能会遇到 OAuth 流程失败。Openclaw 的 OAuth 需要浏览器回调,在纯命令行环境里容易卡住。建议在 TaoToken 场景下统一用api_key模式,也就是配置里的"mode": "api_key",省掉 OAuth 的麻烦。

排查顺序建议:先看openclaw gateway status确认服务状态,再看journalctl日志定位启动错误,再用 curl 单独验证通道,最后才怀疑 Openclaw 配置。这样能避免在错误的方向上浪费时间。

6. 跑通之后:把 Token 通道用顺手的几个实操建议

Agent 跑起来只是开始,用顺手还得调几个地方。

第一,把gateway.auth.token从123456改成复杂点的字符串。默认值只是方便测试,长期跑建议换掉,避免局域网里被人随便连上控制台。

第二,fallback 链别配太长。我试过配四五个备用模型,结果主模型偶尔超时的时候,请求会在备用链里挨个试,整体响应变慢。两到三个足够了,主模型选稳定的,备用选快的。

第三,模型 ID 定期对一下接入文档。TaoToken 通道支持的模型会更新,文档里 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 有最新清单。配了新模型先 curl 测一下再写进配置,别直接改 JSON 重启,不然报错还得回滚。

第四,控制台里多观察 Token 消耗。TaoToken 的 console 页面 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite 能看到调用记录,如果发现某个模型消耗异常,及时调整 fallback 顺序。

第五,如果你要长期跑编码类 Agent 任务,Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 的额度安排比按量调用更省心,适合高频场景。

最后说个我踩过的坑:改完配置文件一定要systemctl --user restart openclaw-gateway,光保存不重启是不生效的。而且重启后等几秒再看 status,服务启动需要一点时间,别刚敲完命令就下结论说没起来。

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

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

立即咨询