1. 先搞清楚 OpenClaw 技能链到底卡在哪
OpenClaw 是一个能装技能、连聊天工具、跑心跳任务的本地 AI 助理框架,你可以把它理解成一个「有手有脚的聊天机器人」——人设文件让它有性格,技能让它能干活,MCP 让它能对接外部服务。适合谁?适合想把 AI 从「只会聊天」变成「能自动干活」的开发者、运维、独立创作者,尤其是已经在用 Cline、CC Switch 这类工具、手里攒了一堆 API Key 的人。
但真正上手你会发现,卡点从来不是「装不上技能」,而是三件事叠在一起:openclaw skills install跑通了,技能却因为缺 Key 一直转圈;ClawHub 上挑好了技能,装完发现和已有 MCP 工具冲突;最要命的是每个技能、每个 MCP 服务都要单独配一个 API Key,配置文件越堆越乱,改一个忘一个。我试过同时维护 Tavily、Firecrawl、Notion MCP 三套 Key,光是对账就花了半小时。
这篇就按「装技能 → 连工具 → 做安全 → 自动干活」的顺序走一遍,重点放在用 TaoToken 统一 Key 和 API 通道,把散落在settings.json、config.toml、AGENTS.md里的配置收口成一套。全程给可复制的骨架,你照着改路径和 Key 就能跑。
2. TaoToken 前置:为什么值得先把它接进来
TaoToken 在这里扮演的角色是「统一 Key 网关 + API 通道」。官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api (这个不加 UTM)。它的价值不是替代 OpenClaw,而是让 OpenClaw 里所有需要模型调用的地方——技能里的摘要、MCP 工具里的推理、心跳任务里的判断——都走同一个 Key、同一个 base_url,不用每个技能单独填一次。
具体怎么做:先去控制台建 Key。打开 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,在 API Keys 页面生成一个 Key,复制出来先存到本地环境变量,别直接写进会提交 Git 的文件。生成入口在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。
注意:Key 只存在本地环境变量或本地配置文件里,不要截图、不要发群、不要 push 到任何仓库,哪怕是私有库。
接进来之后,OpenClaw 的技能和 MCP 工具在需要模型能力时,统一指向 TaoToken 的 API 地址,Key 从环境变量读。这样你换模型、换额度、加备用通道,只改一处。如果你后面要长期跑编码类 Agent 任务,可以顺带看下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,把额度规划一起做了。
3. 可复制配置:settings.json / config.toml / CC Switch / Cline 骨架
这一节是全文的核心,配置分四块:OpenClaw 主配置、MCP 工具配置、CC Switch 片段、Cline 片段。路径按你实际安装位置改,下面用~/.openclaw/作示例。
3.1 OpenClaw 主配置 config.toml
先看 OpenClaw 的~/.openclaw/config.toml,把模型通道统一到 TaoToken:
# ~/.openclaw/config.toml [gateway] host = "127.0.0.1" port = 18789 [model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key_env = "TAOTOKEN_API_KEY" default_model = "claude-sonnet-4-5" [skills] install_dir = "~/.openclaw/skills" auto_update = false [mcp] config_file = "~/.openclaw/mcp.json"关键点:api_key_env指向环境变量名,而不是把 Key 写死。base_url用 TaoToken 的 API 地址,所有走模型调用的技能都会读这里。host保持127.0.0.1,别改成0.0.0.0。
环境变量在 shell 里设:
export TAOTOKEN_API_KEY="你的Key"想持久化就写进~/.zshrc或~/.bashrc,但别写进项目目录。
3.2 MCP 工具配置 mcp.json
MCP 工具单独一个文件,方便和技能解耦:
{ "mcpServers": { "notion": { "transport": "http", "url": "https://mcp.notion.com/mcp", "env": { "OPENAI_BASE_URL": "https://taotoken.net/api", "OPENAI_API_KEY": "${TAOTOKEN_API_KEY}" } }, "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/OpenClaw-Workspace"], "env": { "OPENAI_BASE_URL": "https://taotoken.net/api", "OPENAI_API_KEY": "${TAOTOKEN_API_KEY}" } } } }${TAOTOKEN_API_KEY}这种写法让 MCP 进程从环境变量读 Key,配置文件本身可以安全地放进版本管理(只要环境变量不跟着走)。filesystem 这个 MCP 只挂载~/OpenClaw-Workspace,从根上限制文件访问范围。
3.3 CC Switch 配置片段
CC Switch 用来在多个模型通道之间切换,把 TaoToken 作为一个 provider 加进去:
{ "providers": [ { "name": "taotoken", "base_url": "https://taotoken.net/api", "api_key_env": "TAOTOKEN_API_KEY", "models": ["claude-sonnet-4-5", "gpt-4o"] } ], "active": "taotoken" }这样 CC Switch 里切通道时,OpenClaw 和 Cline 都能复用同一个 provider 定义,不用各配一份。
3.4 Cline 配置片段
Cline 的配置在 VS Code 设置里,对应settings.json:
{ "cline.apiProvider": "openai", "cline.openaiBaseUrl": "https://taotoken.net/api", "cline.openaiApiKey": "${env:TAOTOKEN_API_KEY}", "cline.model": "claude-sonnet-4-5" }Cline 和 OpenClaw 共用同一个环境变量,Key 只维护一份。改额度、换模型,两边同时生效。
3.5 技能安装与 AGENTS.md 权限白名单
技能安装用命令行:
openclaw skills install tavily-search openclaw skills install firecrawl openclaw skills install summarize装完在~/.openclaw/workspace/AGENTS.md里写权限和降级规则:
## 文件访问白名单 - 只允许访问 ~/OpenClaw-Workspace - 禁止访问 ~/.ssh、~/.aws、~/Documents/财务 ## 工具降级策略 - 搜索:Tavily → DuckDuckGo → Multi Search Engine - 抓取:Firecrawl → WebFetch → 本地 Firecrawl - 静默切换,不打断任务4. 验证请求:从装技能到跑通一次真实调用
配置写完,按顺序验证,别跳步。
第一步,确认网关只监听本地:
openclaw gateway status输出里应该看到127.0.0.1:18789,如果出现0.0.0.0立刻改回。
第二步,验证模型通道通不通:
curl https://taotoken.net/api/v1/models \ -H "Authorization: Bearer $TAOTOKEN_API_KEY"返回模型列表就说明 Key 和通道没问题。这一步失败,后面所有技能都会转圈。
第三步,装一个技能并触发一次真实调用:
openclaw skills install tavily-search然后在对话里发「帮我查今天最新的 AI 新闻」。技能会走 Tavily,模型推理走 TaoToken。成功的话你会看到实时搜索结果加一段总结,而不是「正在尝试安装」的循环。
第四步,验证 MCP 工具:
openclaw mcp list openclaw doctormcp list应该列出 notion 和 filesystem,doctor会检查配置一致性、Key 是否可读、端口是否安全。doctor 报红就先修,别急着上心跳任务。
第五步,跑一次心跳:
openclaw gateway restart然后在HEARTBEAT.md里写一条「每 30 分钟检查未读邮件」,重启后观察日志有没有按周期触发。到这一步,装技能、连工具、统一 Key 三件事就串起来了。
5. 本篇常见错排查
报错一:openclaw skills install卡在 installing 不动。九成是模型通道没通,技能装完要调模型做初始化。先跑第 4 节的 curl 验证,Key 或 base_url 错了就改config.toml。
报错二:技能装上了但一直提示「需要 API Key」。这是技能自己的 Key(比如 Tavily 的),和 TaoToken 的 Key 是两回事。Tavily 这类技能仍需在 ClawHub 对应页面注册拿 Key,填进技能配置。TaoToken 统一的是模型调用通道,不是第三方服务的 Key。
报错三:MCP 工具连不上,日志报ECONNREFUSED。检查mcp.json里 filesystem 的路径是否存在,~/OpenClaw-Workspace要先手动建出来。http 类型的 MCP 检查网络和 url 拼写。
报错四:Cline 和 OpenClaw 抢同一个 Key 导致 429。两个工具共用 Key 时并发高会触发限流。在 TaoToken 控制台看额度用量,必要时给 Cline 单独建一个 Key,或调低心跳频率。
报错五:改了config.toml不生效。OpenClaw 不会热加载主配置,改完必须openclaw gateway restart。改AGENTS.md和HEARTBEAT.md同样要重启。
报错六:端口被改成0.0.0.0后手机连不上还担心泄露。别做端口映射,手机远程用 Tailscale 这类内网方案,公网端口一律不暴露。
6. 收口:把 Key 和通道统一之后
走到这里,你的 OpenClaw 应该是一套配置同时管住了四件事:技能从 ClawHub 装、MCP 工具按需挂载、模型调用统一走 TaoToken、权限白名单限制在~/OpenClaw-Workspace。后面加新技能或新 MCP,只需要在mcp.json或技能配置里加一段,Key 不用重复填。
如果你主要用 OpenClaw 做对话和轻量任务,模型对话入口在 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite ,可以直接在里面验证模型通道。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,配置字段对不上时翻这里最快。长期跑编码和 Agent 任务的话,Coding Plan 页面 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 里有额度规划,配合 CC Switch 切通道比较顺。
最后一个实操建议:把TAOTOKEN_API_KEY写进 shell 配置后,用env | grep TAOTOKEN确认一次,再重启网关。很多人卡在「配置都对但读不到 Key」,就是环境变量没进当前 shell 会话。