PicoClaw 接入 Antigravity(Google Cloud Code Assist)提供商:OAuth 认证、模型管理与 Docker 部署实战
PicoClaw 接入 AntigravityGoogle Cloud Code Assist提供商OAuth 认证、模型管理与 Docker 部署实战【免费下载链接】picoclawTiny, Fast, and Deployable anywhere — automate the mundane, unleash your creativity项目地址: https://gitcode.com/gh_mirrors/pi/picoclaw本篇指南完整讲解如何在 PicoClaw 中配置并使用AntigravityGoogle Cloud Code Assist提供商从 OAuth 登录、无界面服务器headless/VPS、Coolify/Docker下的手动授权流程到模型查看与切换、环境变量注入、凭据持久化以及空响应、429 配额、404 模型 ID 等高频故障的处理方案。读完你可以独立完成 Antigravity 提供商从零到生产环境的接入并理解其背后的 OAuth 凭证刷新与 API 调用机制。前提条件在开始之前请确认满足以下两点拥有一个Google 账户。已启用Google Cloud Code Assist通常通过 Gemini for Google Cloud 的引导/onboarding 流程开通新用户一般会附带免费配额。说明Antigravity 本质上是 Google 基于其 OAuth 体系对外提供的模型访问通道可访问 Claude、Gemini 等模型因此认证必须依赖 Google 账户且模型可用性由你的项目配额决定。相关认证细节还可参考仓库中的 ANTIGRAVITY_AUTH.zh.md。1. 认证OAuth 登录在本地终端执行以下命令完成 Antigravity 的 OAuth 认证picoclaw auth login --provider antigravity从源码看--provider同时接受google-antigravity与antigravity两个别名见 cmd/picoclaw/internal/auth/login.go 中supportedProvidersMsg的定义与 cmd/picoclaw/internal/auth/helpers.go 的分发逻辑两者等价。登录成功后PicoClaw 会做三件收尾工作见 cmd/picoclaw/internal/auth/helpers.go将 OAuth 凭证写入本地凭据存储默认位于~/.picoclaw/下具体实现见 pkg/auth/store.go在~/.picoclaw/config.json的ModelList中追加一条antigravity/gemini-3-flash模型配置AuthMethod: oauth将默认模型设置为gemini-flash随后终端会提示Try it: picoclaw agent -m Hello world。手动认证无界面 / VPS 环境如果你在服务器Coolify/Docker上运行无法访问本机浏览器与localhost请按下述步骤完成认证运行上面的picoclaw auth login --provider antigravity命令复制终端显示的授权 URL在本地浏览器中打开使用 Google 账户完成登录浏览器会被重定向到一个localhost:51121开头的 URL该页面无法加载属正常现象从浏览器地址栏复制这个最终 URL将 URL 粘贴回 PicoClaw 正在等待输入的终端中。PicoClaw 会自动从该 URL 中提取授权码authorization code并完成 OAuth 交换流程无需手动处理 token。进阶提示headless 环境下auth login子命令还提供--no-browser不自动唤起浏览器与--device-code使用设备码流程两个标志见 cmd/picoclaw/internal/auth/login.go可按部署环境选用。登录背后的源码实现Antigravity 的请求链路封装在 pkg/providers/oauth/antigravity_provider.go 中理解它有助于排查认证问题API 地址https://cloudcode-pa.googleapis.com模型对话走v1internal:streamGenerateContent?altsse流式端点请求体是包含project、model、request、requestType、userAgent、requestId的 envelope 结构见antigravityBaseURL常量与Chat方法。Token 自动刷新每次请求前provider 会通过createAntigravityTokenSource读取凭证若凭证NeedsRefresh()且存在RefreshToken会自动调用RefreshAccessToken刷新并回写存储见 pkg/auth/oauth.go无需你手动续期。Project ID 获取凭据中的ProjectID为空时provider 会调用v1internal:loadCodeAssist端点动态获取若获取失败则回退到默认项目 ID源码注释表明与 OpenCode 使用的 fallback 一致。登录自动写入配置登录成功后会同步更新config.json把 Antigravity 模型注入模型列表并设为默认模型这一点在前述helpers.go中可以看到完整实现。2. 模型管理列出可用模型查看当前 Google 项目可访问的模型及其配额状态picoclaw auth models该命令会向v1internal:fetchAvailableModels端点发起请求见 pkg/providers/oauth/antigravity_provider.go 中的FetchAntigravityModels返回每个模型的 ID、显示名称以及配额信息remainingFraction、resetTime、isExhausted。同时会兜底保证gemini-3-flash-preview与gemini-3-flash始终出现在列表中。如果尚未登录该命令会提示not logged in to Google Antigravity. run: picoclaw auth login --provider google-antigravity切换模型修改默认模型有两种方式方式一编辑配置文件在~/.picoclaw/config.json中更改默认模型字段{ agents: { defaults: { model: claude-opus-4-6-thinking } } }方式二命令行单次覆盖仅对本次调用生效# 为单个命令覆盖模型 picoclaw agent -m Hello --model claude-opus-4-6-thinking在 provider 实现中模型名会先做归一化空值或antigravity、google-antigravity会被替换为默认模型gemini-3-flash同时去除google-antigravity/、antigravity/前缀后才会进入请求体见 antigravity_provider.go。因此你既可以写短 IDgemini-3-flash也可以写带前缀的完整形式。3. 实际使用Coolify / Docker 部署若你通过 Coolify 或 Docker 部署 PicoClaw按以下两步完成 Antigravity 的接入验证步骤 1注入环境变量在容器或 Coolify 应用配置中设置PICOCLAW_AGENTS_DEFAULTS_MODELgemini-flash该环境变量对应配置中agents.defaults.model字段映射关系见 pkg/config/envkeys.go用于指定默认模型Docker 部署的完整环境变量说明可参考 docs/guides/docker.zh.md。步骤 2认证凭据持久化服务器环境无法直接唤起浏览器登录时有两种方式将本地认证带到服务器方式 A拷贝本地凭据scp ~/.picoclaw/auth.json useryour-server:~/.picoclaw/方式 B服务器终端登录——如果你能拿到服务器终端直接在上面运行一次picoclaw auth login --provider antigravity并按照上文「手动认证」的步骤完成授权即可。凭据文件默认存放在~/.picoclaw/目录config.json与auth.json同目录若服务通过 Docker 挂载卷运行请确保该目录已通过 volume 映射进容器避免容器重建后凭据丢失。4. 故障排查空响应empty response如果模型返回空的回复通常说明该模型在你的 Google 项目中受到限制。此时可切换为文档实测可靠的模型picoclaw agent -m Hello --model gemini-3-flash # 或 picoclaw agent -m Hello --model claude-opus-4-6-thinking从源码看provider 在解析完 SSE 响应后会做一次空响应校验若Content为空且没有工具调用会直接报错model returned an empty response (this model might be invalid or restricted)见 antigravity_provider.go因此空响应不是静默失败而是可观测的错误。429 速率限制rate limitAntigravity 有严格的配额限制。触发限制时PicoClaw 会在错误信息中展示配额重置时间reset time。其实现位于parseAntigravityError当 HTTP 状态码为 429 时会尝试从错误详情ErrorInfo.metadata.quotaResetDelay中提取重置延迟并拼入报错例如antigravity rate limit exceeded: ... (reset in 30s)可通过picoclaw auth models查看各模型的剩余配额remainingFraction、isExhausted来预估等待时间或临时切换到配额更充裕的模型。404 Not Found模型 ID 错误出现 404 时请确认使用的模型 ID 必须出现在picoclaw auth models的返回列表中使用短 ID例如gemini-3-flash不要使用完整路径形式的模型名。如前文所述provider 会自动剥离antigravity/、google-antigravity/前缀因此短 ID 是最稳妥的写法。5. 实测可靠的模型总结根据文档与仓库默认配置中的测试结论以下模型在 Antigravity 通道下可靠性最高模型 ID特点gemini-3-flash快速、高可用也是 provider 的默认模型见antigravityDefaultModel常量gemini-2.5-flash-lite轻量级适合低延迟/低成本场景claude-opus-4-6-thinking高性能包含推理reasoning/thinking能力需要说明的是模型的具体可用性与配额由你的 Google 项目决定建议以picoclaw auth models的实时返回为准。参考与延伸阅读ANTIGRAVITY_USAGE.zh.md本指南的中文版原始文档ANTIGRAVITY_AUTH.zh.mdAntigravity 认证与安全配置详解credential_encryption.zh.md本地凭据加密存储机制providers.zh.mdPicoClaw 全部提供商总览configuration.zh.mdconfig.json完整配置说明docker.zh.mdDocker/Coolify 部署指南providers/oauth/antigravity_provider.goAntigravity provider 核心实现cmd/picoclaw/internal/auth/helpers.goauth login/auth models/auth logout命令实现config/config.example.json配置示例文件【免费下载链接】picoclawTiny, Fast, and Deployable anywhere — automate the mundane, unleash your creativity项目地址: https://gitcode.com/gh_mirrors/pi/picoclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考