☰
OpenClaw + Antigravity + 飞书完整部署教程:用 TaoToken 统一 Key 打通消息链路
2026/10/4 23:19:18 网站建设 项目流程

1. 为什么要把 OpenClaw、Antigravity 和飞书串成一条链路

如果你正在找一个能把 AI 能力直接落到飞书群聊、审批流里的方案,OpenClaw + Antigravity + 飞书这套组合值得认真看一遍。OpenClaw 是一个可自托管的 AI Agent 网关,负责接收消息、路由到模型、再把结果回传;Antigravity 是本地模型代理层,把 Google、Anthropic 等账号能力统一成 OpenAI 兼容接口;飞书则是最终面向团队的消息入口。三者串起来之后,你在飞书里 @ 一下机器人,背后走的就是你自己掌控的模型通道。

这套方案适合谁?一是需要把 AI 助手放进飞书群、又不想把对话数据交给第三方 SaaS 的团队;二是已经在用 Claude Code、Cline 这类工具,想再复用到 IM 场景的开发者;三是手上有多家模型账号、希望用一个统一 Key 出口管理调用的运维同学。核心检索词就是 OpenClaw 接入 Antigravity 联动飞书机器人部署,本文会给出可复制的环境变量、JSON 配置片段,并逐步验证飞书消息收发、Antigravity 调用、以及 TaoToken 统一 Key 通道是否生效。

我试过把模型 Key 散落在各个工具里,改一次要翻五六个配置文件,后来统一收敛到一个出口才省心。下面按“先跑通单点、再串链路、最后排障”的顺序来,每一步都有可复制的命令和预期结果,你照着做基本能一次过。

2. TaoToken 统一 Key 通道的前置准备

在动 OpenClaw 之前,先把模型出口这件事定下来。Antigravity 本身可以直连官方账号,但多账号、多模型的 Key 管理会很乱,所以这里用 TaoToken 作为统一 Key 通道:OpenClaw 只认一个 Base URL 和一个 Key,背后换模型、换账号都不需要动 OpenClaw 的配置。这一步的目标是拿到三件套——Base URL、API Key、Model ID。

先到官网注册并进入控制台。地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,登录后在控制台里创建 API Key。创建时建议按用途命名,比如openclaw-feishu,方便后面排查是哪个调用方出的问题。Key 只在创建时完整显示一次,复制后先存到密码管理器里。

拿到 Key 之后,去 API Keys 页面确认它的状态是启用,再去接入文档页核对当前的 Base URL 和可用模型列表。TaoToken 的 API 入口是 https://taotoken.net/api ,注意这个地址不带任何查询参数,配置时直接填这个即可。模型对话页面可以用来做一次纯网页端的连通性验证,确认 Key 本身没问题,再去配 OpenClaw。

这里有个容易踩的坑:很多人把 Base URL 写成带/v1或不带/v1混用。OpenClaw 的 provider 配置里baseUrl需要包含/v1后缀,而 TaoToken 控制台展示的根地址是https://taotoken.net/api,拼接后就是https://taotoken.net/api/v1。这个细节在后面的 JSON 片段里会体现,先记住。

三件套整理成一张表,配置时直接对照:

配置项取值说明
Base URLhttps://taotoken.net/api/v1含 /v1 后缀,供 OpenClaw provider 使用
API Key控制台创建的 sk- 开头字符串只显示一次,妥善保存
Model ID控制台模型列表里的 id 字段如 claude 系列、gemini 系列

如果你后续要用 Coding Plan 做长期编码或 Agent 任务,可以在控制台单独开通,它和按量调用的 Key 是分开管理的,互不影响。前置准备做完,下面进入真正的部署环节。

3. 可复制的 OpenClaw 与 Antigravity 配置文件

这一节是全文的核心,给出可直接粘贴的配置片段。先说明目录约定:OpenClaw 的主配置在~/.openclaw/openclaw.json,Antigravity Manager 用 Docker 跑在127.0.0.1:8045。两者都跑通后,OpenClaw 通过 provider 指向 Antigravity,Antigravity 再通过统一 Key 通道出网。

先启动 Antigravity Manager 容器,把统一 Key 通过环境变量注入:

docker run -d --name antigravity-manager \ -p 8045:8045 \ -e API_KEY=sk-your-taotoken-key \ -e WEB_PASSWORD=your-secure-password \ -e ABV_MAX_BODY_SIZE=104857600 \ -v ~/.antigravity_tools:/root/.antigravity_tools \ --restart=always \ lbjlaq/antigravity-manager:latest

启动后确认容器状态和端口:

docker ps curl http://127.0.0.1:8045

返回任意 HTTP 响应即说明服务在监听。接着配置 OpenClaw 的 provider。推荐用jq写入,避免手改 JSON 漏逗号。下面这段把 TaoToken 作为 provider 写进models.providers:

jq '.models.providers["taotoken"] = { "baseUrl": "https://taotoken.net/api/v1", "apiKey": "sk-your-taotoken-key", "auth": "api-key", "api": "openai-completions", "models": [ { "id": "claude-sonnet-4-5-20250929", "name": "TaoToken Claude Sonnet 4.5", "input": ["text"], "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0}, "contextWindow": 195000, "maxTokens": 8192 }, { "id": "gemini-3-pro-image", "name": "TaoToken Gemini 3 Pro", "input": ["text", "image"], "cost": {"input": 0, "output": 0}, "contextWindow": 1953000, "maxTokens": 8192 } ] }' ~/.openclaw/openclaw.json > /tmp/openclaw-new.json mv /tmp/openclaw-new.json ~/.openclaw/openclaw.json

设置默认模型并校验:

jq '.agents.defaults.model.primary = "taotoken/claude-sonnet-4-5-20250929"' \ ~/.openclaw/openclaw.json > /tmp/openclaw-new.json mv /tmp/openclaw-new.json ~/.openclaw/openclaw.json openclaw config validate

api字段必须是openai-completions,不是openai-chat,这是 OpenClaw 校验里最容易报错的一项。baseUrl必须带/v1。如果你同时保留了本地 Antigravity 作为备用 provider,可以再加一段local-antigravity,把baseUrl指向http://127.0.0.1:8045/v1,主备切换时只改agents.defaults.model.primary即可。

飞书渠道的配置同样写进同一个文件,用jq追加:

jq '.channels.feishu = { "enabled": true, "appId": "cli_your_app_id", "appSecret": "your_app_secret", "domain": "feishu", "groupPolicy": "open", "connectionMode": "websocket", "dmPolicy": "pairing", "requireMention": true, "renderMode": "auto" }' ~/.openclaw/openclaw.json > /tmp/openclaw-new.json mv /tmp/openclaw-new.json ~/.openclaw/openclaw.json

connectionMode必须是websocket,飞书事件订阅也要选长连接模式,两边不一致会导致机器人收不到消息。配置写完重启 Gateway:

systemctl --user restart openclaw-gateway.service sleep 5 openclaw models list openclaw channels status

models list里taotoken下的模型状态应为可用,channels status里飞书应显示已连接。到这里配置文件部分完成,下一节做实际请求验证。

4. 验证飞书消息收发与 Antigravity 调用是否生效

配置写完不代表链路通,必须逐段验证。验证顺序建议从内到外:先验模型出口,再验 OpenClaw 到模型,最后验飞书到 OpenClaw。任何一段断了,都能快速定位。

第一段,直接打 TaoToken 的接口,确认 Key 和 Base URL 正确:

curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-your-taotoken-key" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5-20250929", "messages": [{"role": "user", "content": "只回复两个字:通了"}] }'

返回体里choices[0].message.content有内容,说明统一 Key 通道没问题。如果这里就报 401,先别往下走,回到控制台确认 Key 状态和额度。

第二段,用 OpenClaw 命令行直接对话,验证 provider 配置:

openclaw agent --message "你好,介绍一下你自己" --session-id test

预期能看到模型返回的文本。如果报reading choices相关错误,多半是api字段或baseUrl后缀写错,回到上一节核对。

第三段,飞书侧验证。在飞书里给机器人发一条消息,第一次会收到配对码,形如28TQ5TME。在服务器上批准:

openclaw pairing approve feishu 28TQ5TME openclaw pairing list

pairing list里能看到你的飞书 Open ID 即配对成功。再次在飞书发消息,机器人应正常回复。如果机器人无响应,按这个顺序查:

openclaw channels status journalctl --user -u openclaw-gateway.service -f cat ~/.openclaw/openclaw.json | jq '.channels.feishu'

常见原因是 App ID/Secret 填错、事件订阅用了 HTTP 回调而非长连接、或权限没开全。飞书应用需要im:message、im:message:send_as_bot、im:chat、contact:user.base这几项权限,缺一项都可能导致消息收不到或回不了。

第四段,验证 Antigravity 作为备用出口。把默认模型临时切到local-antigravity下的模型,再发一次消息:

jq '.agents.defaults.model.primary = "local-antigravity/claude-opus-4-6-thinking"' \ ~/.openclaw/openclaw.json > /tmp/openclaw-new.json mv /tmp/openclaw-new.json ~/.openclaw/openclaw.json systemctl --user restart openclaw-gateway.service sleep 5 openclaw agent --message "备用通道测试" --session-id test2

能返回内容说明 Antigravity 本地代理也通了。验证完记得切回主通道。四段都过,整条链路就算打通了。

5. 部署中常见的报错与排查对照

这一节把真实会遇到的报错列出来,对照处理。第一个高频问题是 401。表现是curl或 OpenClaw 调用返回401 Unauthorized。原因通常是 Key 复制时带了空格、Key 被禁用、或Authorization头格式不对。排查:

echo -n "sk-your-taotoken-key" | wc -c curl -s -o /dev/null -w "%{http_code}" https://taotoken.net/api/v1/models \ -H "Authorization: Bearer sk-your-taotoken-key"

返回 200 说明 Key 有效,401 则回控制台检查。

第二个是local proxy failed。这个报错一般出现在 OpenClaw 尝试连 Antigravity 时,说明127.0.0.1:8045没起来或端口被占。排查:

docker ps | grep antigravity lsof -i :8045 docker logs antigravity-manager --tail 50

容器没跑就docker restart antigravity-manager;端口被占就换映射端口,同时改 OpenClaw 里的baseUrl。

第三个是reading choices相关错误。OpenClaw 解析响应时找不到choices字段,通常是api字段值不对,或baseUrl少了/v1。修正:

jq '.models.providers["taotoken"].api = "openai-completions"' \ ~/.openclaw/openclaw.json > /tmp/openclaw-new.json mv /tmp/openclaw-new.json ~/.openclaw/openclaw.json openclaw config validate

第四个是 OAuth 相关报错。如果你在 Antigravity 里用账号登录而非 API Key,可能遇到 token 过期。重新在 Antigravity Web 界面登录账号,或改用统一 Key 通道绕开 OAuth 刷新问题。

第五个是配置校验失败Invalid config。多半是 JSON 语法错误,用jq检查:

cat ~/.openclaw/openclaw.json | jq '.' > /dev/null && echo "JSON OK"

报错会指出具体行。改完必须重启 Gateway 才生效,很多人改完不重启,以为没生效。

第六个是飞书机器人无响应。除了前面说的权限和连接模式,还要确认requireMention是否为 true——如果是 true,群里必须 @ 机器人才触发。私聊则不受影响。排查清单:

openclaw channels status openclaw pairing list journalctl --user -u openclaw-gateway.service -n 100

把这几类报错对照处理,基本能覆盖 90% 的部署问题。剩下 10% 看日志里的具体堆栈,按关键词搜官方文档即可。

6. 把链路用起来:从验证到日常使用

链路打通之后,日常使用其实很简单,但有几个实用技巧能让你少走弯路。第一,把常用模型固定成默认,切换时只改agents.defaults.model.primary一行,不要每次动 provider 配置。第二,飞书群里建议开启requireMention,避免机器人被无关消息触发,浪费额度。第三,定期备份配置:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup

第四,如果你要做长期编码或 Agent 任务,用 Coding Plan 会比按量调用更划算,它和普通 Key 分开管理,互不干扰。第五,模型对话页面可以随时做纯网页端的连通性抽查,不用每次都走 OpenClaw。

需要查文档或管理 Key 时,直接去接入文档和 API Keys 页面。整条链路的核心就是三件套对齐:Base URL 带/v1、API Key 有效、Model ID 在列表里。这三样对了,OpenClaw、Antigravity、飞书任何一段出问题都能快速定位。部署完成后,建议先在小范围群里跑一周,观察日志和额度消耗,再逐步放开到更多场景。

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

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

立即咨询