
1. 为什么要在微信和 QQ 里跑 OpenClaw DeepSeek SkillsOpenClaw 是一个可以把大模型能力挂到即时通讯通道上的开源框架简单说就是你在微信或 QQ 里发一句话后端 OpenClaw 收到消息调用 DeepSeek 模型和对应的 Skills技能插件再把结果回给你。它本身不绑定某个模型厂商也不绑定某家云所以你可以把它部署在自己的腾讯云或阿里云服务器上用统一 Key 去接模型。适合谁三类人最合适一是想把 AI 助手塞进自己微信群、QQ 群做自动问答的二是想用 DeepSeek 做代码解释、文档总结、定时提醒这类 Skills 的三是手里已经有云主机不想再折腾复杂网关只想改一个 Base URL 就接通的。我这次实测的环境是腾讯云轻量应用服务器 Lighthouse2C2GUbuntu 22.04和阿里云 ECS 共享型2C4GUbuntu 22.04各一台OpenClaw 用 Docker 方式部署模型侧统一走 TaoToken 的 OpenAI 兼容接口Base URL 指向https://taotoken.net/api。微信侧走企业微信机器人 企业微信应用双通道QQ 侧走 QQ 机器人开放平台。DeepSeek Skills 用的是社区里比较通用的deepseek-chat和deepseek-reasoner两个模型 ID。先说结论整条链路最难的不是装 OpenClaw而是三件事——通道回调 URL 的端口和路径写对、模型 Base URL 改写后 Key 能通、Skills 配置文件里的模型 ID 和实际调用一致。下面按部署顺序拆开讲每一步都给可复制的命令和配置。需要提前说明的是微信个人号没有官方机器人接口本文说的“微信”指的是企业微信WeCom通道这是合规且稳定的做法QQ 侧用的是 QQ 机器人开放平台的官方通道。两者都不涉及任何非官方客户端改动。2. TaoToken 统一 Key 的前置准备与 Base URL 改写在动 OpenClaw 之前先把模型侧的 Key 和地址准备好否则后面通道配好了也调不通。TaoToken 提供的是 OpenAI 兼容协议也就是说任何支持base_urlapi_key的框架都能直接接。第一步去控制台创建 API Key。打开https://taotoken.net/console登录后在 API Keys 页面新建一个 Key复制出来形如sk-xxxxxxxx。这个 Key 后面要填到 OpenClaw 的模型配置里。第二步确认 Base URL。OpenAI 兼容接口的根地址是https://taotoken.net/api注意这里不带任何多余路径。很多框架要求填到/v1这一层OpenClaw 的模型配置里通常填根地址即可它会自己拼/v1/chat/completions。如果你用的是 Cline、CC Switch 这类工具Base URL 一般填https://taotoken.net/apiModel ID 填deepseek-chat。第三步先做一次纯 API 连通性验证不要等 OpenClaw 装完再排错。用 curl 直接打一次对话接口curl -s https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的Key \ -d { model: deepseek-chat, messages: [{role: user, content: 只回复两个字通了}], stream: false }返回里如果能看到choices数组和content字段说明 Key 和 Base URL 都没问题。如果返回 401说明 Key 复制错了或者带了空格如果返回model not found说明 Model ID 写错了DeepSeek 系列常用的是deepseek-chat和deepseek-reasoner。这里有个容易踩的坑有些教程让你把 Base URL 写成https://taotoken.net/api/v1然后在框架里又自动拼一次/v1结果变成/api/v1/v1/chat/completions直接 404。记住一个原则——框架文档说填根地址就填根地址说填到 v1 就填到 v1别自己加。第四步把 Key 和地址记到一个临时文件里后面 OpenClaw 的环境变量和 Skills 配置都要用cat ~/taotoken.env EOF TAOTOKEN_BASE_URLhttps://taotoken.net/api TAOTOKEN_API_KEYsk-你的Key TAOTOKEN_MODELdeepseek-chat EOF source ~/taotoken.env这样后面所有配置都能用$TAOTOKEN_BASE_URL这种变量引用换 Key 的时候只改一个文件。如果你打算长期跑编码类 Agent可以顺带了解下 Coding Plan 的额度策略在https://taotoken.net/coding-plan有说明这里不展开。3. 腾讯云与阿里云上的 OpenClaw 可复制配置这一节是核心给的是能直接复制粘贴的配置。两台云主机我都跑过差异主要在安全组和 Docker 安装源OpenClaw 本身的配置是一样的。先装 Docker两台云通用curl -fsSL https://get.docker.com | bash -s docker sudo systemctl enable --now docker docker --version然后拉 OpenClaw 镜像并启动。这里用环境变量方式注入模型配置避免改镜像内文件docker run -d \ --name openclaw \ --restart unless-stopped \ -p 18789:18789 \ -e OPENCLAW_MODEL_BASE_URL$TAOTOKEN_BASE_URL \ -e OPENCLAW_MODEL_API_KEY$TAOTOKEN_API_KEY \ -e OPENCLAW_MODEL_ID$TAOTOKEN_MODEL \ -e OPENCLAW_CHANNEL_WECOM_ENABLEtrue \ -e OPENCLAW_CHANNEL_QQ_ENABLEtrue \ -v /opt/openclaw/data:/app/data \ openclaw/openclaw:latest端口18789是 OpenClaw 默认的通道回调端口企业微信机器人和应用的 URL 都指向这个端口路径分别是/wecom/bot和/wecom/agent。QQ 侧的回调路径是/qq/bot。接下来是 Skills 配置文件。OpenClaw 的 Skills 放在/opt/openclaw/data/skills/下每个技能一个 YAML。DeepSeek 相关的技能配置长这样# /opt/openclaw/data/skills/deepseek-chat.yaml name: deepseek-chat description: 通用对话与代码解释 trigger: - 解释 - 总结 - 写代码 model: provider: openai-compatible base_url: https://taotoken.net/api api_key: ${TAOTOKEN_API_KEY} model_id: deepseek-chat temperature: 0.7 max_tokens: 2048# /opt/openclaw/data/skills/deepseek-reasoner.yaml name: deepseek-reasoner description: 复杂推理与数学题 trigger: - 推理 - 证明 - 算一下 model: provider: openai-compatible base_url: https://taotoken.net/api api_key: ${TAOTOKEN_API_KEY} model_id: deepseek-reasoner temperature: 0.3 max_tokens: 4096注意api_key这里用了${TAOTOKEN_API_KEY}变量引用前提是容器启动时把环境变量传进去了。如果你不想用变量直接写明文 Key 也行但记得文件权限设成 600。通道配置部分企业微信机器人和应用需要填 Token 和 EncodingAESKey这两个值在企业微信后台生成后写进 OpenClaw 的通道配置# /opt/openclaw/data/channels/wecom.yaml wecom: bot: enable: true token: 企业微信机器人Token encoding_aes_key: 企业微信机器人EncodingAESKey path: /wecom/bot agent: enable: true corp_id: 企业CorpID corp_secret: 应用Secret agent_id: 应用AgentID token: 应用Token encoding_aes_key: 应用EncodingAESKey path: /wecom/agentQQ 侧配置# /opt/openclaw/data/channels/qq.yaml qq: bot: enable: true app_id: QQ机器人AppID app_secret: QQ机器人AppSecret token: QQ机器人Token path: /qq/bot改完配置后重启容器docker restart openclaw docker logs -f openclaw日志里看到channel wecom bot started和channel qq bot started就说明通道起来了。腾讯云和阿里云的差异在这里腾讯云 Lighthouse 默认安全组要手动放行 18789 端口阿里云 ECS 要在安全组规则里加一条入方向 TCP 18789。两台都要放行否则企业微信回调会超时。4. 验证请求与成功结果从 curl 到微信 QQ 实聊配置写完不算完得逐层验证。我习惯从内到外验先验容器内模型调用再验通道回调最后验真实聊天。第一层容器内直接调模型。进容器执行docker exec -it openclaw sh curl -s http://localhost:18789/health返回{status:ok,model:deepseek-chat}说明模型配置加载成功。如果返回model: null说明环境变量没传进去检查docker run时的-e参数。第二层从宿主机验通道回调。企业微信机器人回调是 GET 验证 POST 消息先模拟 GETcurl -s http://localhost:18789/wecom/bot?msg_signaturetesttimestamp123nonce456echostrhello如果返回hello或类似的 echostr 回显说明回调路径通了。返回 404 就是路径写错了检查wecom.yaml里的path字段。第三层真实聊天。企业微信机器人创建时填的 URL 是http://你的公网IP:18789/wecom/bot创建成功后用手机企业微信扫码添加机器人发一句“你好”如果机器人用 AI 方式回复说明整条链路通了。QQ 侧类似在 QQ 机器人后台配置回调 URL 为http://你的公网IP:18789/qq/bot然后在 QQ 里 机器人 发消息。实测下来企业微信机器人通道支持接收文本、语音、图片、文件回复支持文本和 Markdown企业微信应用通道额外支持回复图片、文件和主动推送。QQ 侧目前主要支持文本和 Markdown 回复。如果你需要机器人主动发提醒必须配企业微信应用通道机器人通道做不到。验证 Skills 是否生效可以在微信里发“解释一下这段代码”并附一段代码如果走的是deepseek-chat技能回复会带代码解释发“推理一下这个数学题”会走deepseek-reasoner。如果所有消息都走同一个模型说明 Skills 的trigger没匹配上检查关键词是否写对。5. 本篇常见错误排查401、local proxy failed、reading choices、OAuth这一节列的都是我实际遇到过的报错按出现频率排序。401 Unauthorized。最常见九成是 Key 问题。先确认TAOTOKEN_API_KEY没有多余空格和换行再确认 Base URL 没写错。如果 Key 是对的还报 401检查是不是把 Key 填到了model_id字段。用第 2 节的 curl 命令单独验一次能通就是 OpenClaw 配置问题不能通就是 Key 本身问题。local proxy failed。这个报错通常出现在容器内访问外部 API 时。原因是容器 DNS 解析失败或者网络不通。先docker exec -it openclaw ping taotoken.net如果不通检查宿主机 DNScat /etc/resolv.conf腾讯云和阿里云默认 DNS 一般没问题如果被改过改成223.5.5.5或100.100.2.136。另外确认安全组出方向没有限制 443 端口。reading choices 报错。完整报错一般是error reading choices: unexpected end of JSON input意思是模型返回的不是标准 JSON。原因通常是 Base URL 拼错导致返回了 HTML 错误页或者model_id写错导致返回了错误结构。检查base_url是不是https://taotoken.net/apimodel_id是不是deepseek-chat。如果用的是deepseek-reasoner注意它的返回结构里reasoning_content和content是分开的OpenClaw 版本太老可能解析不了升级到最新镜像即可。OAuth 相关报错。如果你在配置 QQ 机器人时看到 OAuth 字样通常是 AppID 或 AppSecret 填错了。QQ 机器人开放平台的鉴权是app_idapp_secret换 access_token不是 OAuth 授权码模式。检查qq.yaml里的app_id和app_secret是否和后台一致。企业微信应用通道如果报 OAuth检查corp_id和corp_secret注意corp_secret是应用详情页里的 Secret不是企业密钥。通道显示运行中但收不到消息。检查企业微信后台的“企业可信IP”有没有配服务器公网 IP没配的话企业微信不会把消息推过来。QQ 侧检查机器人后台的“消息接收地址”是否和path一致。Skills 不触发。检查 YAML 里的trigger关键词是否和用户消息匹配OpenClaw 默认是包含匹配不是精确匹配。如果用户发“帮我解释”trigger里写“解释”就能命中。6. 长期运行建议与接入文档入口跑通之后有几件事建议做一下能让它稳定跑很久。第一把 Key 和配置从命令行挪到.env文件用docker run --env-file加载避免重启后环境变量丢失。第二给容器配日志轮转不然日志文件会撑满磁盘docker run -d \ --log-driver json-file \ --log-opt max-size10m \ --log-opt max-file3 \ ...其他参数...第三企业微信应用的 Token 和 EncodingAESKey 建议定期轮换轮换后同步更新wecom.yaml并重启容器。第四如果消息量大把max_tokens调小一点DeepSeek 的响应速度会更快。如果你在接入过程中卡在某个报错或者想确认某个 Model ID 是否可用可以直接在模型对话页面试一下https://taotoken.net/model-chat。需要新建或管理 Key 的话在https://taotoken.net/api-keys。完整的接入参数和字段说明在文档里https://taotoken.net/doc。长期跑编码类 Agent 的话Coding Plan 的入口在https://taotoken.net/coding-plan。最后说个实际经验OpenClaw 的通道配置改完后一定要docker restart而不是reload部分版本的通道模块不支持热重载reload 后通道会假死日志里看着是 started实际收不到消息。这个坑我踩过一次排查了两小时才发现是没重启容器。