1. 项目概述为OpenClaw找回免费的AI编程助手如果你是一名开发者尤其是深度依赖AI辅助编程的开发者那么过去几个月Google对Cloud Code Assist API的改动可能让你感到非常头疼。原本在OpenClaw中内置的、无需API密钥即可使用的google-antigravity-auth提供商被移除了更糟糕的是Google在2026年3月还彻底改变了API的请求和响应格式。这直接导致了许多人熟悉的、通过个人Google账户免费使用Gemini和Claude高级模型的“后门”失效要么是功能直接消失要么是不断收到400 Bad Request的错误。我最近就在为这件事折腾。OpenClaw本身是个非常强大的AI编程工具但失去了这个核心的免费模型接入能力体验大打折扣。手动去申请、配置各种商业API密钥不仅麻烦还有持续的成本。于是我花了不少时间研究最终找到了一个社区维护的解决方案OpenClaw Antigravity OAuth Plugin API Proxy。这个项目本质上是一个“桥接器”它通过一个本地的代理服务器重新打通了OpenClaw与Google Antigravity服务之间的通道让你能再次用个人Google账户零成本地调用Gemini 3 Pro、Claude Opus 4.6等顶级模型。这个方案的核心价值在于“修复”和“增强”。它不仅仅是把被移除的功能找回来还通过一个智能的本地代理解决了因Google API格式变更而导致的兼容性问题。这意味着无论OpenClaw官方未来如何更新只要这个代理能跟上Google的变化你的免费AI编程助手就能一直用下去。当然天下没有完全免费的午餐使用这类非官方集成存在一定的风险主要是可能违反Google的服务条款有导致账户受限的可能性。因此强烈建议使用一个不重要的、专用于此目的的Google副账户避免牵连你的主账户。接下来的内容我将为你详细拆解这个插件的运作原理、手把手的安装配置流程、以及在实际使用中可能遇到的各种“坑”和解决方案。无论你是刚接触OpenClaw的新手还是正在为Antigravity失效而烦恼的老用户这篇指南都能帮你重新搭建起这条高效的免费AI编程流水线。2. 核心原理与架构设计要理解这个插件如何工作我们得先弄明白问题出在哪里以及它用什么巧妙的方式绕过了这些问题。整个设计可以看作是一个“三层桥接”架构。2.1 问题根源Google的两记“重拳”首先是OpenClaw移除了内置的google-antigravity-auth提供商。这可能是出于合规性或架构调整的考虑但结果就是用户配置里少了一个关键选项。其次也是更致命的一击是Google在2026年初更改了其Cloud Code Assist API的内部数据格式。OpenClaw内置的Google驱动通常是基于google-generative-aiSDK仍然按照旧的、标准的Gemini API格式发送请求。而新的Antigravity端点期待的是一个完全不同的、封装过的结构。具体来说格式变化如下请求格式从{ httpBody: { data: ... }, projectId: ... }变成了{ project: ..., model: ..., request: { contents: [...] } }。新的格式多了一层request封装并且字段名也变了。响应格式从直接返回{ candidates: [...] }变成了{ response: { candidates: [...] } }同样多了一层嵌套。如果你直接用旧格式请求新接口Google的服务器会毫不客气地返回一个400 Bad Request错误提示你格式未知或无效。这就是为什么很多人在更新后突然无法使用的原因。2.2 解决方案本地代理作为“翻译官”这个插件的核心创新点就是引入了一个运行在你本机上的轻量级Node.js代理服务器antigravity-proxy.mjs。它的角色就像一个专业的翻译官和协调员。代理的工作流程如下监听代理在本地通常是127.0.0.1:51199启动一个HTTP服务器。接收OpenClaw被配置为向http://127.0.0.1:51199/v1发送请求并且使用openai-completions这种通用的API格式。这屏蔽了后端具体是Google还是Anthropic。翻译代理收到OpenAI格式的请求后进行一系列复杂的转换格式转换将{model, messages}的格式翻译成Google Antigravity API所需的{project, model, request: {contents}, requestType}格式。协议桥接处理流式响应True Streaming。Google的API返回的是特定的Server-Sent Events数据流代理需要将其解析并转换成OpenAI SDK能识别的标准流式数据块。工具调用适配将OpenAI格式的tool_calls描述精确映射为Google API的functionCall结构并确保在流式响应中分两次初始化参数正确发送以满足OpenClaw内部处理工具调用的逻辑。请求头伪装Google会检查客户端版本。代理会伪装成最新的官方客户端如Antigravity/1.19.6以绕过某些版本封锁确保能访问到最新的模型如Gemini 3.1 Pro。转发与返回代理使用你通过OAuth获取的访问令牌将翻译好的请求发送给真正的Google Cloud Code Assist API然后将API的响应再翻译回OpenAI格式返回给OpenClaw。提示为什么选择代理模式而不是直接修改OpenClaw源码这是最优雅的解法。首先它完全解耦不依赖OpenClaw的具体版本更新OpenClaw时插件配置不会被覆盖。其次当Google再次改变API时只需要更新这个独立的代理脚本即可维护成本低。最后它将敏感的令牌刷新逻辑隔离在代理内部更安全。2.3 认证流程安全的OAuth PKCE模型访问的核心是身份认证。插件采用了OAuth 2.0的PKCEProof Key for Code Exchange流程这是目前桌面和移动应用最推荐的安全授权方式。认证步骤详解当你在终端执行openclaw models auth login --provider google-antigravity时插件会启动一个本地临时服务器通常在端口51121并生成一个包含code_challenge的授权URL。你的浏览器会打开这个URL引导你在Google的页面上登录并授权应用访问“Cloud Code Assist API”的相关权限。这里授权的对象看起来是Google自己的服务而不是第三方应用这降低了风险感知。授权成功后Google会将一个授权code重定向回你的本地临时服务器。插件用这个code以及之前生成的code_verifier向Google的令牌端点交换得到access_token短期访问令牌和refresh_token长期刷新令牌。这些令牌被安全地存储在~/.openclaw/agents/main/agent/auth-profiles.json文件中。代理服务器在需要调用API时会读取这个文件中的令牌。当access_token过期时代理会自动使用refresh_token去获取新的access_token整个过程对用户无感。这种设计意味着你只需要在初次安装时登录一次后续的令牌维护全部由后台自动完成提供了接近原生集成的无缝体验。3. 详细安装与配置指南了解了原理我们开始动手。这里提供两种安装方式一键脚本推荐给大多数用户和手动安装适合需要自定义或排查问题的用户。3.1 前置环境检查在开始之前请确保你的系统满足基本要求OpenClaw已安装并运行版本在2026.2.x到2026.3.x之间。可以通过openclaw --version检查。Node.js版本18或更高。通过node --version检查。Git用于克隆仓库。systemdLinux用于管理代理服务。macOS用户可使用launchd但插件提供的脚本主要针对systemd。3.2 方案一一键安装脚本推荐这是最快捷、最不容易出错的方式。该脚本会自动完成克隆、安装依赖、配置代理服务等所有步骤。打开你的终端直接运行以下命令curl -sL https://raw.githubusercontent.com/wbbtmusic/openclaw-antigravity-oauth/main/install.sh | bash脚本执行了哪些关键操作克隆仓库将插件代码克隆到OpenClaw的标准扩展目录~/.openclaw/extensions/下。安装依赖进入插件目录运行npm install --production只安装运行必需的包。创建符号链接确保OpenClaw能正确找到插件的分发dist目录。部署代理脚本将核心的antigravity-proxy.mjs复制到~/.openclaw/目录下。配置Systemd服务创建用户级的systemd服务单元文件并设置开机自启和自动重启。这保证了代理在后台稳定运行。提示后续步骤脚本最后会输出如何进行OAuth认证的提示。运行完毕后你需要重启OpenClaw的网关服务以使插件生效systemctl --user restart openclaw-gateway.service3.3 方案二手动安装步骤如果你对一键脚本不放心或者想更清晰地了解每一步可以跟随以下步骤手动操作。3.3.1 下载与放置插件首先将插件仓库克隆到OpenClaw的扩展目录git clone https://github.com/wbbtmusic/openclaw-antigravity-oauth.git \ ~/.openclaw/extensions/opencode-antigravity-auth进入插件目录并安装生产依赖cd ~/.openclaw/extensions/opencode-antigravity-auth npm install --production创建必要的符号链接这是OpenClaw插件机制的要求ln -sf $(pwd)/node_modules/opencode-antigravity-auth/dist dist3.3.2 部署并启动API代理服务代理是核心我们需要让它作为后台服务运行。# 1. 复制代理主脚本到OpenClaw配置目录 cp antigravity-proxy.mjs ~/.openclaw/antigravity-proxy.mjs # 2. 创建systemd用户服务文件 mkdir -p ~/.config/systemd/user cat ~/.config/systemd/user/antigravity-proxy.service EOF [Unit] DescriptionAntigravity API Proxy (OpenClaw) Afternetwork.target [Service] Typesimple ExecStart$(command -v node) \$HOME/.openclaw/antigravity-proxy.mjs Restartalways RestartSec5 EnvironmentNODE_NO_WARNINGS1 [Install] WantedBydefault.target EOF # 3. 重新加载systemd配置启用并启动服务 systemctl --user daemon-reload systemctl --user enable antigravity-proxy.service systemctl --user start antigravity-proxy.service关键点解释Restartalways和RestartSec5确保代理进程如果意外崩溃会在5秒后自动重启极大增强了稳定性。EnvironmentNODE_NO_WARNINGS1suppresses some Node.js runtime warnings for cleaner logs.3.3.3 配置OpenClaw识别新的提供商现在需要编辑OpenClaw的主配置文件告诉它有一个新的模型提供商叫google-antigravity并且地址是我们刚启动的本地代理。用你喜欢的编辑器如nano或vim打开~/.openclaw/openclaw.jsonnano ~/.openclaw/openclaw.json找到models: { providers: { ... } }部分添加或修改google-antigravity的配置。完整的相关配置段应该类似下面这样{ models: { providers: { google-antigravity: { baseUrl: http://127.0.0.1:51199/v1, apiKey: proxy-handled, api: openai-completions, models: [ {id: gemini-3-flash, name: Gemini 3 Flash}, {id: gemini-3-pro-high, name: Gemini 3 Pro High}, {id: gemini-3-pro-low, name: Gemini 3 Pro Low}, {id: gemini-3.1-pro-high, name: Gemini 3.1 Pro High}, {id: gemini-3.1-pro-low, name: Gemini 3.1 Pro Low}, {id: claude-opus-4-6-thinking, name: Claude Opus 4.6}, {id: claude-sonnet-4-6, name: Claude Sonnet 4.6} ] } // ... 你其他的提供商配置如openai, anthropic等 ... } }, plugins: { entries: { opencode-antigravity-auth: true // 确保这里没有旧的 google-antigravity-auth: true如果有就删除它 } } }配置项解析baseUrl: 指向本地代理服务器。/v1是为了模拟OpenAI API的端点结构。apiKey: 设为proxy-handled这是一个占位符。真正的认证由代理通过OAuth令牌处理。api: 设为openai-completions这是OpenClaw内部用于兼容OpenAI格式的通用接口。models: 列出你希望通过这个提供商使用的模型ID。列表中的模型ID必须与代理支持的模型对应。保存并退出编辑器。最后别忘了重启OpenClaw网关服务来加载新配置systemctl --user restart openclaw-gateway.service4. 认证流程与关键配置安装配置完成后最关键的步骤就是进行OAuth认证让代理获得访问你Google账户的权限。4.1 执行OAuth登录在终端中运行以下命令openclaw models auth login --provider google-antigravity正常情况下你的默认浏览器会自动打开一个Google登录页面。请使用你的Google账户登录再次强调建议使用副账户并授权所需的权限。授权成功后页面可能会显示一个错误如“无法连接”这是正常的因为临时的本地服务器可能已经关闭。认证过程在后台已经完成。4.2 处理无头服务器Headless Server场景如果你是在没有图形界面的远程服务器VPS上操作浏览器不会自动打开。命令行会显示一个URL类似于Please open the following URL in your browser to complete authentication: https://accounts.google.com/o/oauth2/v2/auth?...你需要将这个URL复制下来。在你本地有浏览器的电脑上打开这个URL完成登录和授权。授权后浏览器会被重定向到一个类似http://localhost:51121/?code...scope...的地址通常会显示错误页面。将这个完整的重定向URL即地址栏里的整个URL复制下来。回到远程服务器的终端粘贴这个URL并回车。如果远程服务器的服务监听在localhost上你本地浏览器是无法直接回调的。此时需要用到SSH端口转发# 在本地机器上执行 ssh -L 51121:localhost:51121 useryour-server-ip这样你本地浏览器对localhost:51121的访问就会被隧道转发到远程服务器的51121端口从而完成OAuth回调。4.3 关键步骤添加projectId这是很多用户认证成功后仍然失败的根本原因。Google的Cloud Code Assist API要求每个请求都必须包含一个projectId。这个ID在OAuth流程中不会自动获取需要手动添加到认证配置文件中。必须在登录后立即执行以下操作python3 -c import json import os auth_file os.path.expanduser(~/.openclaw/agents/main/agent/auth-profiles.json) if os.path.exists(auth_file): with open(auth_file, r) as f: data json.load(f) profiles data.get(profiles, {}) updated False for key, profile in profiles.items(): if antigravity in key and projectId not in profile: # 这个 projectId 是公开的用于标识“项目”与你的账户无关 profile[projectId] rising-fact-p41fc updated True print(fAdded projectId to profile: {key}) if updated: with open(auth_file, w) as f: json.dump(data, f, indent2) print(✅ projectId added successfully. Please restart OpenClaw gateway.) else: print(No antigravity profile found or projectId already exists.) else: print(Auth profile file not found. Please complete OAuth login first.) 为什么需要这个projectId这个rising-fact-p41fc是一个公开的、似乎与Google内部测试或默认项目关联的标识符。它不是你的私人项目ID而更像是一个通用的“通道”标识。没有它代理在尝试刷新访问令牌时会失败导致认证状态无效。添加后代理就能在请求中正确带上这个参数。执行完上述命令后再次重启网关服务systemctl --user restart openclaw-gateway.service5. 验证与测试完成以上所有步骤后我们来验证整个系统是否工作正常。5.1 检查代理服务状态首先确认代理服务正在运行systemctl --user status antigravity-proxy.service你应该看到状态是active (running)。还可以查看实时日志journalctl --user -u antigravity-proxy.service -f --no-pager按CtrlC退出日志查看。5.2 验证健康检查端点代理提供了一个简单的健康检查端点curl -s http://127.0.0.1:51199/health预期返回{status:ok,port:51199}5.3 在OpenClaw中列出模型查看OpenClaw是否识别出了我们配置的新提供商和模型openclaw models list在输出列表中你应该能看到类似google-antigravity/gemini-3-flash这样的模型名称。5.4 进行API测试直接通过代理发送一个测试请求这能最直接地检验链路是否通畅curl -s -X POST http://127.0.0.1:51199/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer proxy-handled \ -d { model: gemini-3-flash, messages: [ {role: user, content: Hello, please respond with a short greeting.} ], stream: false, max_tokens: 50 } | jq .如果一切正常你会收到一个结构正确的JSON响应其中包含AI生成的问候语。使用jq是为了美化输出如果没有安装jq可以去掉| jq .部分。5.5 在OpenClaw IDE中测试最后打开你的OpenClaw IDE通常是VS Code或Cursor中的扩展。尝试向AI提问或者在代码编辑器中请求代码补全、解释。在聊天界面或命令面板中确保选择的模型是google-antigravity/下的某个模型如gemini-3-flash。如果前几步都成功了这里应该能正常收到响应。6. 高级配置与故障排查实录即使按照指南操作也可能会遇到一些问题。以下是我在部署和使用过程中遇到的一些典型问题及其解决方案。6.1 常见错误与解决方案问题一OAuth令牌刷新失败 (OAuth token refresh failed)现象初次登录成功但一段时间后使用模型时提示认证失败。根本原因99%的情况是缺少projectId如上文所述。代理在刷新令牌时需要这个字段。解决方案严格按照4.3节的步骤使用Python脚本为你的antigravity认证配置文件添加projectId字段然后重启网关服务。问题二400 Bad Request 或 “Unknown name” 错误现象请求模型时在OpenClaw界面或日志中看到400错误。可能原因代理服务未运行这是最常见的原因。OpenClaw配置指向错误baseUrl没有指向本地代理 (127.0.0.1:51199)。排查步骤# 1. 检查代理服务状态和日志 systemctl --user status antigravity-proxy.service journalctl --user -u antigravity-proxy.service -n 30 --no-pager # 2. 如果服务未运行启动它 systemctl --user start antigravity-proxy.service # 3. 检查OpenClaw配置 cat ~/.openclaw/openclaw.json | grep -A5 -B5 \google-antigravity\确保配置中的baseUrl是http://127.0.0.1:51199/v1。如果不是请参照3.3.3节修正。问题三“Invalid Google Cloud Code Assist credentials” 错误现象提示凭证无效。根本原因OpenClaw的配置文件可能在更新后被重置或覆盖google-antigravity提供商的配置丢失或变成了指向Google官方API的旧配置。解决方案手动修复配置文件。可以运行以下脚本它会安全地更新配置python3 -c import json, os config_path os.path.expanduser(~/.openclaw/openclaw.json) with open(config_path, r) as f: config json.load(f) # 确保models和providers结构存在 config.setdefault(models, {}).setdefault(providers, {}) # 更新或添加 google-antigravity 配置 config[models][providers][google-antigravity] { baseUrl: http://127.0.0.1:51199/v1, apiKey: proxy-handled, api: openai-completions } with open(config_path, w) as f: json.dump(config, f, indent2) print(Configuration fixed. Restarting gateway...) os.system(systemctl --user restart openclaw-gateway.service) 问题四插件冲突现象启动OpenClaw时出现关于google-antigravity-auth的错误。原因系统中残留了旧版的内置插件配置。解决方案编辑~/.openclaw/openclaw.json找到plugins.entries部分确保只有opencode-antigravity-auth: true而没有google-antigravity-auth: true。如果有后者将其删除。6.2 性能调优与模型选择代理本身非常轻量但模型推理速度取决于Google的服务器。以下是一些优化体验的建议模型选择策略追求速度选择gemini-3-flash或claude-sonnet-4-6。它们响应最快适合代码补全、简单问答。追求深度和代码质量选择gemini-3-pro-high或claude-opus-4-6-thinking。它们在复杂逻辑推理、代码重构、问题诊断上表现更好但速度稍慢。平衡选择gemini-3-pro-low或gemini-3.1-pro-low在速度和能力之间取得了很好的平衡。设置默认模型为了避免每次手动选择可以设置OpenClaw的默认主模型openclaw config set agents.defaults.model.primary google-antigravity/gemini-3-flash监控代理日志如果遇到响应缓慢可以查看代理日志看是否是网络问题或Google服务端延迟journalctl --user -u antigravity-proxy.service --since 5 minutes ago --no-pager6.3 安全与维护建议定期检查更新这个插件是社区维护的当Google API再次发生变化时作者会更新代理脚本。关注GitHub仓库的Release页面或星标项目以便接收通知。备份认证文件~/.openclaw/agents/main/agent/auth-profiles.json包含了你的刷新令牌。可以定期备份但请注意其敏感性。使用隔离的Google账户这是最重要的安全实践。创建一个全新的Google账户专门用于此类实验性集成不要使用与重要服务如Gmail、Drive、支付关联的主账户。理解风险使用非官方方式访问服务可能存在违反服务条款的风险可能导致该Google账户被限制访问某些服务。知晓并接受此风险是使用的前提。通过以上详细的步骤和问题排查指南你应该能够成功地在OpenClaw中重新启用通过Google账户免费使用高级AI模型的功能。这个方案恢复了一个强大的生产力工具其背后的代理设计思路也非常巧妙值得学习和借鉴。如果在实践中遇到本文未覆盖的问题建议仔细阅读项目的GitHub Issues页面很可能已经有其他开发者遇到了类似情况并提供了解决方案。