1. 为什么要在本地养一只“龙虾”
OpenClaw 是一个可以跑在自己电脑上的 AI Agent 运行时,它能读写文件、执行命令、调用浏览器,把“对话”变成“动手干活”。和纯云端助手最大的区别在于:模型可以走本地推理,数据不出机器,日常使用没有按次计费的心理负担。适合谁?手里有 MacBook、Windows 台式机或 Linux 小主机的开发者,想拿它做代码整理、文档批处理、项目脚手架生成这类重复劳动。
但真正动手时,坑往往不在 OpenClaw 本身,而在“模型接入”这一环。本地 Ollama 拉模型慢、显存吃紧,远程 API 又要到处找 Key、改 base_url、对不同的客户端重复配置。我试过把同一套 Key 分别填进 Cline、CC Switch 和 OpenClaw,改一处忘一处,排查半天才发现是环境变量没生效。
这篇就按“全平台部署 → 统一 Key 接入 → 配置骨架 → 启动自检”的顺序走一遍。核心思路是:OpenClaw 负责 Agent 调度,模型通道统一走 TaoToken 的 OpenAI 兼容接口,这样 Windows、macOS、Linux 三端只需要维护一份配置。下面所有命令和配置都可以直接复制,改掉路径和 Key 就能跑。
2. 前置准备:TaoToken 统一 Key 与全平台环境
2.1 拿到一把能用的 Key
TaoToken 提供 OpenAI 兼容的 API 通道,OpenClaw、Cline、CC Switch 这类工具都能直接对接。先到控制台创建 API 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
创建后复制那串sk-开头的 Key,先存到本地环境变量里,别直接写进会提交到 Git 的配置文件。API 基础地址统一用:
https://taotoken.net/api注意这个地址后面不加 UTM 参数,它是给程序调用的,不是给人点的。想先确认模型能不能通,可以到模型对话页发一句话试试:
https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite
2.2 三端环境依赖
OpenClaw 依赖 Node 20+ 和 Python 3.11+,Windows 建议走 WSL2,避免路径和权限的奇怪问题。
macOS(Homebrew):
brew install git node@20 python@3.11 node -v # 应输出 v20.xUbuntu / Debian:
sudo apt update sudo apt install -y git curl python3 python3-pip curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs node -vWindows(在 WSL2 的 Ubuntu 里执行上面这段即可)。如果你坚持用原生 Windows,需要自行装 Node 20 和 Python 3.11,并把下面所有~路径换成实际盘符路径,踩坑概率会高一些。
2.3 设置环境变量
把 Key 写进 shell 配置,三端通用:
# macOS / Linux,写入 ~/.zshrc 或 ~/.bashrc export TAOTOKEN_API_KEY="sk-你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api"Windows PowerShell 临时会话:
$env:TAOTOKEN_API_KEY="sk-你的Key" $env:TAOTOKEN_BASE_URL="https://taotoken.net/api"改完执行source ~/.zshrc或重开终端,用echo $TAOTOKEN_API_KEY确认能打印出来。这一步没做对,后面配置文件里引用变量就会拿到空值,报 401 你还以为是 Key 错了。
3. 安装 OpenClaw 并写入可复制配置骨架
3.1 三种安装方式选一个
官方脚本(推荐,Linux/macOS):
git clone https://github.com/openclaw/openclaw.git cd openclaw ./install.shnpm 全局安装(三端通用,最省事):
npm install -g openclaw openclaw --versionDocker(适合想隔离环境的):
docker pull openclaw/openclaw:latest docker run -it --rm \ -v $(pwd)/workspace:/home/claw/workspace \ -v $(pwd)/config:/home/claw/.openclaw \ -e TAOTOKEN_API_KEY=$TAOTOKEN_API_KEY \ openclaw/openclaw:latestDocker 方式记得把环境变量透传进去,否则容器里读不到 Key。
3.2 settings.json 骨架
OpenClaw 的主配置默认在~/.openclaw/settings.json。下面这份是走 TaoToken 通道的最小可用骨架,provider用openai_compatible,api_base指向 TaoToken:
{ "model": { "provider": "openai_compatible", "api_base": "https://taotoken.net/api", "api_key": "${TAOTOKEN_API_KEY}", "name": "claude-sonnet-4-5", "parameters": { "temperature": 0.7, "max_tokens": 4096 } }, "workspace": "~/openclaw-workspace", "allowed_paths": ["~/projects", "~/documents"], "denied_paths": ["~/.ssh", "~/.aws"], "permissions": { "file_write": true, "shell_exec": "sandboxed", "network_access": "ask", "code_execution": "sandboxed" }, "session": { "max_history_turns": 50, "auto_save_interval": 300, "session_dir": "~/.openclaw/sessions" } }${TAOTOKEN_API_KEY}这种写法表示从环境变量读取,OpenClaw 启动时会做替换。模型名按你实际要用的填,TaoToken 支持多种模型,具体可用列表在文档里查。
3.3 config.toml 骨架(部分版本使用)
有些发行版把配置换成了 TOML 格式,等价写法如下:
[model] provider = "openai_compatible" api_base = "https://taotoken.net/api" api_key = "${TAOTOKEN_API_KEY}" name = "claude-sonnet-4-5" [model.parameters] temperature = 0.7 max_tokens = 4096 [permissions] file_write = true shell_exec = "sandboxed" network_access = "ask" code_execution = "sandboxed" [session] max_history_turns = 50 auto_save_interval = 300 session_dir = "~/.openclaw/sessions"两种格式别同时存在,否则加载顺序不确定,容易读到旧配置。确认你的版本用哪种:openclaw config path会打印实际读取的文件路径。
3.4 权限字段含义
| 字段 | 取值 | 说明 |
|---|---|---|
| file_write | true / false | 是否允许写文件 |
| shell_exec | true / sandboxed / ask / disabled | 命令执行策略 |
| network_access | true / ask / disabled | 联网请求策略 |
| code_execution | sandboxed / disabled | 代码运行隔离 |
sandboxed表示在受限环境里跑,ask表示每次操作前问你。生产或长期挂机场景,建议把shell_exec和network_access都设成ask,避免 Agent 自作主张。
4. 在 Cline / CC Switch 里复用同一把 Key
OpenClaw 不是孤岛,你大概率同时用着编辑器里的 AI 插件。把 TaoToken 通道配一次,多处复用。
4.1 Cline 配置片段
Cline 的模型设置里选 “OpenAI Compatible”,填入:
Base URL: https://taotoken.net/api API Key: sk-你的Key Model ID: claude-sonnet-4-5如果 Cline 支持配置文件,对应片段大致是:
{ "apiProvider": "openai", "openAiBaseUrl": "https://taotoken.net/api", "openAiApiKey": "${TAOTOKEN_API_KEY}", "openAiModelId": "claude-sonnet-4-5" }4.2 CC Switch 配置片段
CC Switch 用来在多个模型通道间切换,把 TaoToken 作为一个 profile 加进去:
{ "profiles": { "taotoken": { "base_url": "https://taotoken.net/api", "api_key": "${TAOTOKEN_API_KEY}", "model": "claude-sonnet-4-5" } }, "active": "taotoken" }这样 OpenClaw、Cline、CC Switch 三处共用同一个环境变量,换 Key 只改一处。长期跑编码任务、Agent 循环调用比较多的话,可以看下 Coding Plan,额度模型更适合高频场景:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
5. 启动自检与连通性验证
5.1 先用 curl 验证通道
在启动 OpenClaw 之前,先确认 TaoToken 通道本身是通的,把问题范围缩小:
curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "只回复两个字:通了"}] }'返回 JSON 里choices[0].message.content有内容,说明 Key 和地址都没问题。如果这里就报 401,别往下走了,先回去检查环境变量。
5.2 启动 OpenClaw 并自检
openclaw config path # 确认读的是哪个配置文件 openclaw config validate # 校验 JSON/TOML 语法 openclaw startconfig validate会检查必填字段和变量替换结果。如果它提示api_key为空,基本就是环境变量没导出到当前 shell。
5.3 发一条真实任务
openclaw chat "在当前工作目录创建一个 Python Flask 项目骨架,包含 app.py 和 requirements.txt"Agent 正常工作时应该能看到:解析需求 → 创建目录 → 写文件 → 回报结果。执行完检查~/openclaw-workspace下是否真的出现了文件。这一步能跑通,说明模型接入、权限、工作目录三者都对了。
6. 本篇常见报错排查
6.1 401 Unauthorized
九成是 Key 没读到。按顺序查:echo $TAOTOKEN_API_KEY是否有值 → 配置文件里是不是写成了${TAOTOKEN_API_KEY}而不是硬编码 → Docker 场景有没有-e透传。还有一种情况是 Key 复制时带了空格或换行,重新复制一次。
6.2 Connection refused / 超时
先确认api_base写的是https://taotoken.net/api,不要多加/v1后缀(不同客户端对路径拼接方式不一样,多写会变成/api/v1/v1/...)。如果 curl 能通但 OpenClaw 不通,检查是不是配了本地代理变量HTTP_PROXY干扰了请求。
6.3 模型名不存在
报model not found时,去文档页核对当前可用的模型 ID,别凭记忆填。模型名大小写和连字符都要一致。
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
6.4 权限被拒 / 文件写不进去
检查allowed_paths是否包含目标目录,denied_paths有没有误伤。macOS 上如果装在/usr/local/bin,可能需要chmod +x。WSL2 里注意别把工作目录设在/mnt/c下,跨文件系统权限容易出问题,放到 Linux 家目录里更稳。
6.5 配置改了不生效
OpenClaw 可能缓存了旧配置。先openclaw config path确认路径,再重启进程。如果 settings.json 和 config.toml 同时存在,删掉不用的那个。
7. 把通道固定下来,后面就省心了
整套流程跑通后,你手里其实只有三样东西需要维护:一个环境变量、一份settings.json(或config.toml)、一个https://taotoken.net/api地址。OpenClaw 负责调度,TaoToken 负责模型通道,Cline 和 CC Switch 复用同一把 Key。三端部署的差异被压缩到“装依赖”这一步,配置层完全一致。
想继续深入的话,接入文档里有各客户端的详细参数说明:
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
需要管理多把 Key 或查看用量,去控制台:
https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
最后留一个实用习惯:每次改完配置,先跑openclaw config validate,再用 curl 打一发最小请求,两步都过了再启动 Agent。这样出问题时你能立刻判断是通道挂了还是 Agent 逻辑的问题,省掉大量瞎猜的时间。