1. 微信里养一只“龙虾”,到底在养什么
先说清楚“龙虾”是什么。OpenClaw(社区里也常叫 ClawBot、QClaw)是一类开源 AI 智能体框架,和普通问答式助手最大的区别是:它不只回你话,还能拆任务、调工具、跑流程。你给它一句“帮我把这周的会议纪要整理成文档”,它会自己规划步骤、调用能力、把结果发回来。把它接进微信,等于给微信通讯录里加了一个能干活的好友。
这篇要解决的就是落地路径:怎么用 TaoToken 把模型通道统一起来,让 OpenClaw 在微信侧稳定收发消息。适合两类人——一是有台常开的电脑(Windows 或 Mac 都行),想自己搭一个私人助理;二是已经在跑 OpenClaw,但模型调用老是超时、报 401,想换成更省心的通道。
我试过把模型 Key 散落在好几个地方,结果一换环境就找不到对应关系,排查起来特别费劲。所以这篇的核心思路是:所有模型请求都走 TaoToken 一个入口,config.toml 和 settings.json 里只维护一份 Key,微信侧只负责触发和收结果。下面按“先给骨架、再填通道、最后验证”的顺序来,你照着填就能跑。
需要提前说明的是,微信侧的 ClawBot 插件能力在逐步放量,不同版本、不同系统看到的入口可能不一样。这篇不依赖某个特定灰度入口,重点放在配置骨架和模型通道上,这部分是通用的,入口怎么变都不影响。
2. 前置准备:TaoToken 通道与 Key 的获取
在动 config.toml 之前,先把模型通道准备好。TaoToken 在这里扮演的角色是统一的模型接入层:你拿到一个 Key,配一个 API 地址,OpenClaw 里所有需要调模型的地方都指向它,不用再为每个模型单独维护一套凭证。
第一步,打开官网 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 相关入口。
第二步,创建一个新的 API Key。建议按用途命名,比如openclaw-wechat,这样以后要轮换或吊销时一眼能认出来。创建后立刻复制保存,页面刷新后通常不再完整显示。
第三步,记下两个关键值,后面配置里要用:
| 配置项 | 值 | 说明 |
|---|---|---|
| base_url | https://taotoken.net/api | 不加任何查询参数 |
| api_key | 你刚创建的 Key | 形如 sk- 开头的一串字符 |
注意:API 地址用 https://taotoken.net/api 即可,不要自己拼 UTM 参数到接口地址上,那些参数只用于官网跳转统计,混进请求里可能导致签名或路由异常。
如果你还想先确认模型能不能正常对话,可以打开模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 发一条测试消息,确认 Key 有效、额度正常,再去配 OpenClaw。这一步能省掉后面很多“到底是 Key 错还是配置错”的纠结。
3. 可复制配置:config.toml 与 settings.json 骨架
OpenClaw 的配置通常分两层:config.toml管运行时的模型通道和智能体行为,settings.json管微信侧的连接与消息路由。下面给的是骨架,字段名以你实际安装的版本为准,但结构可以直接照搬。
3.1 config.toml:把模型通道统一到 TaoToken
# config.toml —— OpenClaw 运行时配置 [model] # 统一走 TaoToken,所有模型请求都从这里出 provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" model = "claude-sonnet-4-20250514" timeout_seconds = 120 max_retries = 3 [agent] name = "wechat-claw" workspace = "./workspace" # 允许智能体调用工具,否则只能聊天不能干活 enable_tools = true # 单次任务最大步数,防止死循环 max_steps = 20 [logging] level = "info" file = "./logs/openclaw.log"几个容易踩的点。provider写openai-compatible是因为 TaoToken 的接口兼容 OpenAI 风格,大多数 OpenClaw 版本都认这个值。timeout_seconds别设太小,智能体任务链路长,60 秒以下容易在工具调用阶段被掐断。max_steps是保险丝,任务拆解跑飞时能兜住。
3.2 settings.json:微信侧连接与路由
{ "wechat": { "enabled": true, "bot_name": "微信ClawBot", "mode": "single_chat", "allow_group": false, "reply_prefix": "", "typing_indicator": true }, "routing": { "default_agent": "wechat-claw", "command_prefix": "/", "ignore_self": true }, "security": { "allowed_users": [], "require_binding": true } }mode先设single_chat,群聊能力在多数版本里还没放开,强行开可能收不到消息。allowed_users留空表示不限制,但require_binding保持true,确保只有扫码绑定过的账号能触发,避免别人误发指令把你的助理当公共工具用。
3.3 环境变量方式(可选,更安全)
不想把 Key 写死在文件里,可以用环境变量:
export TAOTOKEN_API_KEY="sk-你的TaoToken密钥" export TAOTOKEN_BASE_URL="https://taotoken.net/api"然后把 config.toml 里的api_key改成api_key = "${TAOTOKEN_API_KEY}"。这样配置文件可以进版本库,Key 留在本机环境里。
4. 启动与验证:让微信侧真的收到回复
配置填完,先别急着扫码绑定,分两步验证:先确认模型通道通,再确认微信侧通。
4.1 验证模型通道
在 OpenClaw 目录下跑一条最小请求,确认 TaoToken 通道可用:
curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "只回复两个字:收到"}] }'返回里能看到choices字段和内容,说明 Key、地址、模型名三者都对。如果返回 401,检查 Key 有没有多余空格;返回 404,检查 base_url 是不是写成了带路径的形式。
4.2 启动 OpenClaw 并绑定微信
# 安装依赖并启动 npm install npm run start启动日志里出现agent ready和wechat listener started之后,按你所用版本的绑定流程操作:电脑端会输出一个二维码或绑定链接,用微信扫码授权。绑定成功后,微信联系人列表里会出现配置里写的bot_name。
4.3 发一条真实指令验证
在微信里给这个联系人发:
/帮我查一下今天上海的天气,然后提醒我 30 分钟后喝水预期结果是两条消息:一条天气回复,一条 30 分钟后到达的提醒。如果只收到“正在处理”但没有后续,多半是max_steps太小或工具调用超时,回到 config.toml 把timeout_seconds调到 180 再试。
提示:第一次跑建议用简单任务验证链路,比如“回复我当前时间”。链路通了再上多步任务,排查范围小很多。
5. 本篇常见错排查
报 401 Unauthorized。九成是 Key 问题。检查 config.toml 里的api_key有没有引号嵌套错误,或者环境变量没生效。用第 4.1 节的 curl 单独测一次,能快速定位是 Key 还是 OpenClaw 配置的问题。
报 model not found。模型名写错了。TaoToken 侧的模型标识以控制台或文档为准,别凭记忆写。把model字段换成你确认可用的名称再试。
微信侧发消息没反应。先看 OpenClaw 日志有没有收到消息事件。如果日志里没有,说明绑定或路由没生效,检查 settings.json 的enabled和require_binding;如果日志里有事件但没有回复,问题在模型通道,回到第 4.1 节验证。
回复一半断了。典型超时。把timeout_seconds提到 180,max_retries提到 3。智能体任务里工具调用是串行的,链路比普通对话长得多。
群聊里 @ 它没反应。当前多数版本只支持单聊,allow_group保持false。等版本放开后再改,别提前开,开了也收不到。
换电脑后全部失效。Key 和配置没同步。把 config.toml 里的 Key 改成环境变量引用,配置文件跟着仓库走,Key 每台机器单独设,就不会再出现这种问题。
6. 把通道固定下来,再谈玩法
配置这件事,最怕的是每次换环境都重新摸一遍。把模型通道统一到 TaoToken 之后,config.toml 里只有一处 Key、一处 base_url,微信侧只负责触发和收结果,出问题时排查范围直接砍一半。你可以先把第 3 节的骨架存成一个模板,以后新机器上只改环境变量就能跑起来。
如果你打算长期跑编码类或 Agent 类任务,可以了解下 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite ,按用量规划比临时加额度更稳。接入过程中遇到通道或 Key 的问题,直接看接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,里面把 base_url、鉴权方式和常见返回码都列清楚了。Key 的管理入口在 API Keys https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite ,建议按用途建多个 Key,轮换时互不影响。
先把链路跑通,再慢慢加任务。一只稳定的龙虾,比十只时灵时不灵的龙虾有用得多。