openclaw-cn 接入 Google Antigravity:google-antigravity-auth 插件 OAuth 认证全指南
人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载本篇指南聚焦 openclaw-cn 官方内置的google-antigravity-auth提供商插件讲解如何通过一条命令启用插件、使用models auth login完成 Google OAuthPKCE登录并深入剖析插件源码中的授权码流程、本地回调服务、令牌刷新与模型路由细节。读完本文你将能够在自己部署的 openclaw-cn Gateway 上完成 Google AntigravityCloud Code Assist的接入与排障。一、插件是什么面向 Google Antigravity 的 OAuth 提供商google-antigravity-auth是 openclaw-cn 内置bundled的 OAuth 提供商插件为Google AntigravityCloud Code Assist提供认证能力。它本质上是一个ClawdbotPlugin通过插件 SDK 的api.registerProvider()在运行时注册一个 id 为google-antigravity的模型提供商见 插件主实现。插件元信息定义在 openclaw.plugin.json{ id: google-antigravity-auth, providers: [google-antigravity], configSchema: { type: object, additionalProperties: false, properties: {} } }providers声明该插件负责的提供商 IDconfigSchema为空对象说明该插件不需要任何额外的配置项认证所需信息Client ID、Scopes 等全部内置于源码常量中包清单 package.json 通过clawdbot.extensions字段声明入口文件./index.ts。注册的提供商信息源码 index.tsapi.registerProvider({ id: google-antigravity, label: Google Antigravity, docsPath: /providers/models, aliases: [antigravity], auth: [{ id: oauth, label: Google OAuth, hint: PKCE localhost callback, kind: oauth, run: ... }], });可以看到该提供商支持别名antigravity其唯一的认证方法是oauth提示语为 PKCE localhost callback即 PKCE 授权码 本地回环回调。registerProvider的底层注册逻辑位于 src/plugins/registry.ts插件加载后该提供商会被写入 openclaw-cn 的提供商注册表随后即可被模型选择、models auth login等命令识别。二、启用插件两步命令openclaw-cn 的 bundled 插件默认处于禁用状态google-antigravity-auth也不例外。官方文档 docs/concepts/model-providers.md 与插件 README 给出了相同的启用步骤openclaw-cn plugins enable google-antigravity-auth启用后需要重启 Gateway才能生效README 明确要求 Restart the Gateway after enabling.。从实现层面看plugins enable最终调用的是 src/plugins/enable.ts 中的enablePluginInConfig它会对配置做三件事若全局plugins.enabled false直接拒绝启用返回reason: plugins disabled若插件位于plugins.deny拒绝列表同样拒绝reason: blocked by denylist否则在plugins.entries[pluginId]中写入enabled: true并自动把插件 ID 追加到plugins.allow白名单ensureAllowlisted确保插件真正被加载器允许加载。三、执行认证models auth login插件启用并重启 Gateway 后执行登录openclaw-cn models auth login --provider google-antigravity --set-default各参数含义对应 src/cli/models-cli.ts 中的 auth login 子命令--provider id指定提供商 ID这里即插件注册的google-antigravity--method id可选的认证方法 ID缺省时使用该提供商唯一的方法oauth--set-default认证成功后自动应用该提供商的默认模型推荐。插件登录成功会返回defaultModel: google-antigravity/claude-opus-4-6-thinking并写入agents.defaults.models配置补丁因此这条命令也是登录 一键设为默认模型的快捷方式。需要说明的是登录过程无需把任何 Client ID / Secret 填进openclaw.json。正如 docs/concepts/model-providers.md 所述CLI 登录流程会把令牌存入 Gateway 主机上的 auth profiles认证配置文件中Client 凭据由插件内部常量提供。四、OAuth 流程源码剖析PKCE 本地回调google-antigravity-auth采用PKCERFC 7636授权码流程。整个loginAntigravity()核心实现见 index.ts可拆解为以下阶段。4.1 内置常量与 Scopes源码顶部定义了 OAuth 所需常量index.tsconst CLIENT_ID decode(...base64...); // Google OAuth Client ID const CLIENT_SECRET decode(...base64...); // Client Secret服务端换码用 const REDIRECT_URI http://localhost:51121/oauth-callback; const AUTH_URL https://accounts.google.com/o/oauth2/v2/auth; const TOKEN_URL https://oauth2.googleapis.com/token; const DEFAULT_PROJECT_ID rising-fact-p41fc; const DEFAULT_MODEL google-antigravity/claude-opus-4-6-thinking;其中 Client ID / Secret 以 base64 编码硬编码在源码中并注释说明从 pi-ai 的 base64 编码值解码以保持同步REDIRECT_URI固定指向本机回环地址127.0.0.1的51121端口。申请的 OAuth Scopes 共 5 个const SCOPES [ https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile, https://www.googleapis.com/auth/cclog, https://www.googleapis.com/auth/experimentsandconfigs, ];cloud-platform用于访问 Google Cloud 项目资源cclog与experimentsandconfigs是 Cloud Code AssistAntigravity内部服务所需的授权域userinfo.email/profile用于拉取用户邮箱信息。4.2 生成 PKCE 挑战码与授权 URLgeneratePkce()index.ts生成 32 字节随机verifierhex 编码并对其做 SHA-256 后以base64url得到challengebuildAuthUrl()index.ts拼装授权 URL包含client_id、response_typecode、redirect_uriscope上面 5 个 Scope 空格连接code_challengecode_challenge_methodS256PKCE 核心参数state16 字节随机 hex用于防 CSRF登录成功后会被校验access_typeoffline申请刷新令牌与promptconsent强制展示同意页保证能拿到 refresh_token。4.3 两种回调方式本地服务器与手动粘贴loginAntigravity根据运行环境自动选择回调方式index.tsfunction shouldUseManualOAuthFlow(isRemote: boolean): boolean { return isRemote || isWSL2(); }本机运行非远程、非 WSL2调用startCallbackServer()在本机127.0.0.1:51121启动一个 HTTP 回调服务器index.ts随后自动用系统浏览器打开授权 URL等待 Google 把授权码回调到/oauth-callback。回调成功后服务器立即返回一个 Authentication complete HTML 页面并自动关闭整个等待超时时间为 5 分钟。远程环境或 WSL2因为远端/虚拟化环境无法访问本地localhost:51121回调插件改为手动流程在终端打印授权 URLparams.log会把 URL 原样输出便于复制源码注释提到这是修复 #1772 的做法等待用户登录完成后把完整重定向 URL 粘贴回终端。parseCallbackInput()index.ts会校验粘贴内容必须是合法 URL 且包含code与state参数否则报错并提示请粘贴完整重定向 URL不只是 code。WSL 检测逻辑index.ts通过读取/proc/version判断是否包含microsoft/wslWSL以及wsl2/microsoft-standardWSL2从而决定是否走手动流程。4.4 校验 state 并换取令牌无论走哪种回调拿到code后都会先做state 校验若回调返回的state与本地生成的state不一致立即抛错 OAuth state mismatch. Please try again.index.ts。随后exchangeCode()index.ts向https://oauth2.googleapis.com/token发起表单 POST携带client_id、client_secret、code、grant_typeauthorization_code、redirect_uri与 PKCE 的code_verifier换取access_token、refresh_token和expires_in。实现上有几个值得注意的细节强校验缺少access_token或refresh_token都会分别抛错绝不静默接受不完整响应过期时间预留缓冲expires Date.now() expiresIn * 1000 - 5 * 60 * 1000即把有效期提前 5 分钟视为过期避免令牌在边缘时间失效导致请求失败。4.5 拉取用户信息与项目 ID换码成功后插件并行完成两项信息补充fetchUserEmail()index.ts调用https://www.googleapis.com/oauth2/v1/userinfo?altjson获取用户邮箱失败时静默返回undefinedfetchProjectId()index.ts依次向CODE_ASSIST_ENDPOINTS中的两个 Cloud Code Assist 端点发起v1internal:loadCodeAssist请求从响应中的cloudaicompanionProject字段解析 Antigravity 绑定的 Google Cloud 项目 ID两个端点都失败时回退到默认项目rising-fact-p41fc。const CODE_ASSIST_ENDPOINTS [ https://cloudcode-pa.googleapis.com, https://daily-cloudcode-pa.sandbox.googleapis.com, ];4.6 登录成功后的落盘与配置补丁整个run返回的认证结果会交给 openclaw-cn 的认证基础设施index.tsprofileIdgoogle-antigravity:email邮箱缺失时回退为google-antigravity:default。这与 docs/concepts/model-failover.md 描述的 OAuth 多账号失效转移约定一致——provider:email形式的 profile 可用于按账号区分与故障切换credential记录type: oauth、provider、access、refresh、expires、email、projectId等字段令牌持久化到 Gateway 主机的 auth profiles 存储中configPatch把google-antigravity/claude-opus-4-6-thinking写入agents.defaults.models并通过defaultModel字段声明默认模型——这就是--set-default的落点notes向用户提示 Antigravity uses Google Cloud project quotas. 与 Enable Gemini for Google Cloud on your project if requests fail.。五、令牌的后续使用与自动刷新登录只是开始。openclaw-cn 的 OAuth 令牌消费逻辑在 src/agents/auth-profiles/oauth.tsbuildOAuthApiKey()oauth.ts特别指出google-gemini-cli与google-antigravity两个提供商需要projectId因此会把{ token: access, projectId }序列化为 JSON 作为 API Key 使用refreshOAuthTokenWithLock()oauth.ts在每次调用前检查Date.now() cred.expires未过期直接复用过期则通过getOAuthApiKey()走刷新流程并且整个读写过程使用proper-lockfile对 auth store 加锁避免多进程并发刷新互相踩踏。六、运行时模型侧集成工具净化与模型兼容接入 Antigravity 后openclaw-cn 在模型运行时侧也做了针对性适配这些代码位于 src/agents/pi-embedded-runner/ 与 src/agents/pi-embedded-helpers/google.ts工具 Schema 净化sanitizeToolsForGoogle()针对google-antigravity与google-gemini-cli提供商剔除 Antigravity 后端不支持的 JSON Schema 关键字如minProperties、maxProperties避免工具调用被拒logToolSchemasForGoogle()还会在运行时输出净化后的工具索引便于调试Thinking 块净化sanitizeAntigravityThinkingBlocks()通过 base64 风格签名正则ANTIGRAVITY_SIGNATURE_RE识别并处理 Antigravity 返回的思考块保持助手消息内容合法模型目录前向兼容resolveAntigravityOpus46ForwardCompatModel()model.ts针对 pi-ai 模型目录可能滞后于真实平台的问题——当google-antigravity的模型 ID 包含opus-4-6或opus-4.6但注册表中还没有时会克隆claude-opus-4-5模板以保证google-gemini-cli的 API 与 baseUrl 正确沿用Claude 模型识别pi-embedded-helpers/google.ts 通过modelId是否包含claude判断是否需要对 Antigravity 模型启用 Claude 相关的特殊处理。这些适配说明google-antigravity不只是一个能登录的提供商openclaw-cn 在模型路由、工具序列化、思维链解析层面都对其做了深度兼容。七、注意事项与故障排查结合插件 README 的 Notes 与源码实现接入时请重点核对以下几点配额与启用检查README 原文Antigravity uses Google Cloud project quotas. —— Antigravity 消费的是 Google Cloud 项目配额登录绑定的项目配额不足时请求会失败If requests fail, ensure Gemini for Google Cloud is enabled. —— 若请求失败请先在 Google Cloud 控制台确认该项目已启用Gemini for Google Cloud服务。启用插件后必须重启 Gateway否则注册的提供商不可见同时确认全局未设置plugins.enabled: false、插件未被加入plugins.deny见 src/plugins/enable.ts。远程服务器 / WSL2 环境OAuth 回调走手动粘贴流程。登录完成后浏览器地址栏会显示形如http://localhost:51121/oauth-callback?code...state...的 URL请把完整 URL粘贴回终端而不是只粘贴codeparseCallbackInput会严格校验。回调端口冲突回调服务器固定监听127.0.0.1:51121若该端口被占用插件会自动降级为手动粘贴流程startCallbackServer失败时callbackServer null不影响最终完成登录。令牌过期插件在exchangeCode阶段就把过期时间提前了 5 分钟之后由 src/agents/auth-profiles/oauth.ts 的加锁刷新流程在过期后自动续期日常使用通常无需手动重新登录。八、延伸阅读官方模型提供商总览docs/concepts/model-providers.md其中 Google Vertex / Antigravity / Gemini CLI 一节给出了与本文一致的启用与登录命令OAuth 多账号与模型失效转移provider:emailprofile 约定见 docs/concepts/model-failover.md认证健康检查与诊断src/agents/auth-health.test.ts 与 src/agents/auth-profiles/ 中包含了 auth store 的读写与刷新行为测试同类插件对照Gemini CLI 的 OAuth 插件google-gemini-cli-auth见 extensions/google-gemini-cli-auth/两者的启用、登录与令牌存储方式一致可互为参考。赞分享人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载相关推荐PicoClaw 接入 Google Antigravity 认证与集成完全指南从 OAuth 2.0 PKCE 到流式调用PicoClaw 接入 Google Antigravity 认证与集成完全指南从 OAuth 2.0 PKCE 到流式调用 本指南系统讲解 PicoCl人工智能AI 应用AI Agent交互助手工具调用MCP ClientsAgent 记忆PicoClaw 接入 Google AntigravityCloud Code AssistOAuthPKCE 认证、模型管理与企业级集成实战指南PicoClaw 接入 Google AntigravityCloud Code AssistOAuthPKCE 认证、模型管理与企业级集成实战指南 P人工智能AI 应用AI Agent交互助手工具调用MCP ClientsAgent 记忆PicoClaw 接入 AntigravityGoogle Cloud Code Assist供应商OAuth 认证、模型管理与生产部署实战指南PicoClaw 接入 AntigravityGoogle Cloud Code Assist供应商OAuth 认证、模型管理与生产部署实战指南 导读本人工智能AI 应用AI Agent交互助手工具调用MCP ClientsAgent 记忆创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于IoT23数据集的网络流量异常检测与分类实战指南

基于IoT23数据集的网络流量异常检测与分类实战指南

简介:这份资源面向网络安全与机器学习方向的学习者,提供基于IoT23数据集的网络流量异常检测与多分类完整实验方案。项目使用Python 3.8.8,结合scikit-learn、pandas、numpy、matplotlib、seaborn及psutil等工具,覆盖朴素贝叶斯、决…

2026/10/15 18:36:49 阅读更多 →
北京本地定制游旅行社有什么推荐判断法?给家庭游客的 6 个问题

北京本地定制游旅行社有什么推荐判断法?给家庭游客的 6 个问题

常有朋友临行前发来消息:"帮我推荐一家北京本地定制游旅行社吧。" 我们通常不会直接报名字,而是把六个问题发给他 —— 口碑能否核对、服务模式是否写清、行程能否调整、主体能否查证、讲解有没有深度、沟通跟不跟得上。我们在服务家庭游客时发…

2026/10/15 18:36:49 阅读更多 →
React Native跨平台进度条防溢出实战:从百分比计算到鸿蒙适配

React Native跨平台进度条防溢出实战:从百分比计算到鸿蒙适配

前两周我在做一个跑在 iOS、Android 和鸿蒙平台上的跨平台数据看板项目,里面有个存储空间使用率的模块,需求很单纯:一条条形图,填充宽度按value / max计算,旁边再显示当前值 / 最大值的文本标签,比如760 / …

2026/10/15 18:36:49 阅读更多 →

最新新闻

30天从零开始学AI应用开发(Day 26):项目三完工:调试 Agent 的血泪经验

30天从零开始学AI应用开发(Day 26):项目三完工:调试 Agent 的血泪经验

这是系列的第 26 篇。整个系列写给零基础、想入行 AI 的朋友,每天一篇,30 天后你会做出 3 个能写进简历的项目。这篇解决什么问题 昨天项目三跑通了,有几个朋友说规划步骤挺像样,也有人报告了各种奇怪的状况:跑着跑着不…

2026/10/15 19:24:19 阅读更多 →
中国汽车工业软件的卡脖子清单:从PLM到MES的国产替代路线分析

中国汽车工业软件的卡脖子清单:从PLM到MES的国产替代路线分析

文章目录引言:一辆车背后的软件战争一、汽车工业软件的全景图:五大品类与三条工具链二、卡脖子清单逐项拆解2.1 三维CAD:有替代,但成熟度差距明显2.2 CAE仿真:国产空白最多的重灾区2.3 EDA电子设计自动化:差…

2026/10/15 19:24:19 阅读更多 →
全球大厂的“去英伟达”实验

全球大厂的“去英伟达”实验

头图由AI生成文 | 田渝编 | 沈校10月12日晚间,微软董事长兼首席执行官萨提亚纳德拉在社交媒体上公布了微软自研芯片的最新计划。2027年,微软计划大规模部署Azure Maia 300。当日,微软股价当天上涨1.14%至541.15美元,市值重回4万亿…

2026/10/15 19:24:19 阅读更多 →
被停牌的茶百道,更惨的是加盟商?

被停牌的茶百道,更惨的是加盟商?

多米诺骨牌效应才刚开始。文|段泽钰编|郭梦仪1848年,加州淘金热兴起。商人布兰南做了一件事:他先囤积了大量采矿工具,然后跑到街上大喊“金子!金子!”人群蜂拥而至,工具价格翻倍&…

2026/10/15 19:24:19 阅读更多 →
3Dmol.js 分子可视化实战:浏览器端渲染与交互分析

3Dmol.js 分子可视化实战:浏览器端渲染与交互分析

简介:这份前端项目资源以3Dmol.js为核心,面向具备一定JavaScript基础、希望在网页中实现分子结构可视化的开发者与化学教育工作者。它解决的是在浏览器端解析并渲染PDB、MOL、SDF等分子数据、构建可交互三维模型的问题,适合用于化学教学演示、…

2026/10/15 19:24:19 阅读更多 →
北航何静:Codex调用SketchUp实操,常见智能体均适用

北航何静:Codex调用SketchUp实操,常见智能体均适用

北京航空航天大学副教授何静实测 AI 智能体驱动 SketchUp 草图大师自动建模,覆盖 ChatGPT、Claude Code、Workbuddy、OpenClaw 多款智能体,对比 4 种建模实现路径,完成多类型建筑场景建模与迭代修改。实测场景:现代住宅、10 层玻璃…

2026/10/15 19:23:17 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →