问题根源: 1) constants.rs 中的 KNOWN_STABLE_VERSION 硬编码了低版本号,当本地 IDE 检测失败时回退该版本作为请求头,导致 Google 拒绝 Gemini 3.1 Pro 模型。2) 新增的远端版本网络调用直接在 LazyLock 初始化(Tokio 异步上下文)中执行,导致 Cannot block the current thread 严重崩溃。
[核心修复] Cherry Studio / Claude 协议兼容性 (Fix Issue #2007):
maxOutputTokens 限制: 修复了 Cherry Studio 等客户端发送超大 maxOutputTokens (128k) 导致 Google API 返回 400 INVALID_ARGUMENT 的问题。现在自动将 Claude 协议的输出上限限制为 65536,确保请求始终在 Gemini 允许的范围内。
Adaptive 思考模式对齐: 针对 Gemini 模型优化了 Claude 协议的 thinking: { type: "adaptive" } 行为。现在自动映射为 24576 的固定思考预算 (与 OpenAI 协议一致),解决了 Gemini Vertex AI 对 thinkingBudget: -1 的不兼容问题,显著提升了 Cherry Studio 的思考模式稳定性。
[核心修复] 修复 OpenAI 协议下 Vertex AI 思考模型签名缺失问题 (Issue #1650):
Sentinel 注入: 移除了对 Vertex AI (projects/...) 模型的哨兵签名注入限制。现在即使缺少真实签名,系统也会自动注入 skip_thought_signature_validator,从而避免 Field required for thinking signature 错误。
v4.1.7 (2026-02-06):
[核心修复] 修复图像生成 API (429/500/503) 自动切换账号问题 (Issue #1622):
自动重试: 为 images/generations 和 images/edits 引入了与 Chat API 一致的自动重试与账号轮换机制。
Antigravity Tools 🚀
您的个人高性能 AI 调度网关
不仅仅是账号管理,更是打破 API 调用壁垒的终极解决方案。
核心功能 • 界面导览 • 技术架构 • 安装指南 • 快速接入
简体中文 | English
Antigravity Tools 是一个专为开发者和 AI 爱好者设计的全功能桌面应用。它将多账号管理、协议转换和智能请求调度完美结合,为您提供一个稳定、极速且成本低廉的 本地 AI 中转站。
通过本应用,您可以将常见的 Web 端 Session (Google/Anthropic) 转化为标准化的 API 接口,消除不同厂商间的协议鸿沟。
💖 赞助商 (Sponsors)
☕ 支持项目 (Support)
如果您觉得本项目对您有所帮助,欢迎打赏作者!
🚀 推荐项目 (Recommended Projects)
如果您喜欢本项目,可能也会对以下项目感兴趣:
🌟 深度功能解析 (Detailed Features)
1. 🎛️ 智能账号仪表盘 (Smart Dashboard)
2. 🔐 强大的账号管家 (Account Management)
3. 🔌 协议转换与中继 (API Proxy)
/v1/chat/completions端点,兼容 99% 的现有 AI 应用。/v1/messages接口,支持 Claude Code CLI 的全功能(如思思维链、系统提示词)。429 (Too Many Requests)或401 (Expire)时,后端会毫秒级触发 自动重试与静默轮换,确保业务不中断。4. 🔀 模型路由中心 (Model Router)
gemini-3-pro-high)。5. 🎨 多模态与 Imagen 3 支持
size(如1024x1024,16:9) 参数自动映射到 Imagen 3 的相应规格。📸 界面导览 (GUI Overview)
仪表盘
账号列表
关于页面
API 反代
系统设置
💡 使用案例 (Usage Examples)
Claude Code 联网搜索
Cherry Studio 深度集成
Imagen 3 高级绘图
Kilo Code 接入
🏗️ 技术架构 (Architecture)
graph TD Client([外部应用: Claude Code/NextChat]) -->|OpenAI/Anthropic| Gateway[Antigravity Axum Server] Gateway --> Middleware[中间件: 鉴权/限流/日志] Middleware --> Router[Model Router: ID 映射] Router --> Dispatcher[账号分发器: 轮询/权重] Dispatcher --> Mapper[协议转换器: Request Mapper] Mapper --> Upstream[上游请求: Google/Anthropic API] Upstream --> ResponseMapper[响应转换器: Response Mapper] ResponseMapper --> Client安装指南 (Installation)
选项 A: 终端安装 (推荐)
跨平台一键安装脚本
自动检测操作系统、架构和包管理器,一条命令完成下载与安装。
Linux / macOS:
Windows (PowerShell):
macOS - Homebrew
如果您已安装 Homebrew,也可以通过以下命令安装:
Arch Linux
您可以选择通过一键安装脚本或 Homebrew 进行安装:
方式 1:一键安装脚本 (推荐)
方式 2:通过 Homebrew (如果您已安装 Linuxbrew)
其他 Linux 发行版
安装后会自动将 AppImage 添加到二进制路径并配置可执行权限。
选项 B: 手动下载
前往 GitHub Releases 下载对应系统的包:
.dmg(支持 Apple Silicon & Intel).msi或 便携版.zip.deb或AppImage选项 C: Docker 部署 (推荐用于 NAS/服务器)
如果您希望在容器化环境中运行,我们提供了原生的 Docker 镜像。该镜像内置了对 v4.0.2 原生 Headless 架构的支持,可自动托管前端静态资源,并通过浏览器直接进行管理。
Copyright © 2024-2026 lbjlaq
🛠️ 常见问题排查 (Troubleshooting)
macOS 提示“应用已损坏,无法打开”?
由于 macOS 的安全机制,非 App Store 下载的应用可能会触发此提示。您可以按照以下步骤快速修复:
--no-quarantine参数来规避此问题:🔌 快速接入示例
🔐 OAuth 授权流程(添加账号)
如何接入 Claude Code CLI?
如何接入 OpenCode?
~/.config/opencode/opencode.json配置文件:antigravity-manager(不覆盖 google/anthropic 原生配置)antigravity-accounts.json(plugin-compatible v3 格式),供 OpenCode 插件直接导入C:\Users\<用户名>\.config\opencode\(与~/.config/opencode规则一致)。快速验证命令:
如何接入 Kilo Code?
http://127.0.0.1:8045。/v1/chat/completions/responses这种非标准路径,导致 Antigravity 返回 404。因此请务必填入 Base URL 后选择 Gemini 模式。如何在 Python 中使用?
如何使用图片生成 (Imagen 3)?
方式一:OpenAI Images API (推荐)
支持的参数:
size: 任意WIDTHxHEIGHT格式(如1280x720,1024x1024,1920x1080),自动计算并映射到标准宽高比(21:9, 16:9, 9:16, 4:3, 3:4, 1:1)quality:"hd"→ 4K 分辨率(高质量)"medium"→ 2K 分辨率(中等质量)"standard"→ 默认分辨率(标准质量)n: 生成图片数量(1-10)response_format:"b64_json"或"url"(Data URI)方式二:Chat API + 参数设置 (✨ 新增)
所有协议(OpenAI、Claude)的 Chat API 现在都支持直接传递
size和quality参数:参数说明:
imageSize: 直接指定分辨率 ("1K"/"2K"/"4K")quality: 通过质量等级推断分辨率 ("standard"→ 1K,"medium"→ 2K,"hd"→ 4K)imageSize和quality,系统会优先使用imageSize方式三:Chat 接口 + 模型后缀
模型后缀说明:
-16-9,-9-16,-4-3,-3-4,-21-9,-1-1-4k(4K),-2k(2K), 不加后缀(标准)gemini-3-pro-image-16-9-4k→ 16:9 比例 + 4K 分辨率方式四:Cherry Studio 等客户端设置
在支持 OpenAI 协议的客户端(如 Cherry Studio)中,可以通过模型设置页面配置图片生成参数:
gemini-3-pro-image模型WIDTHxHEIGHT格式(如1920x1080,1024x1024)standard/hd/medium参数映射规则:
size: "1920x1080"→ 自动计算为16:9宽高比quality: "hd"→ 映射为4K分辨率quality: "medium"→ 映射为2K分辨率📝 开发者与社区
版本演进 (Changelog):
v4.1.31 (2026-03-25):
oauth_client_key跟踪机制,支持主动切换。project_id),并优化了失败提示。fetchAvailableModels接口添加了 Sandbox -> Daily -> Prod 的自动回退路径,在遇到 429 或 5xx 错误时自动尝试备选环境。v1internal协议不支持同时使用googleSearch和functionDeclarations的限制。choices格式,彻底解决了 IDE 解析器因TypeError导致的 UI 冻结问题。data: [DONE]终止符,并优化了错误状态下的存储路径探测逻辑。v4.1.30 (2026-03-15):
fetchAvailableModelsAPI 引入了 Sandbox -> Daily -> Prod 的端点自动降级机制。当请求遇到429 (Too Many Requests)或5xx服务器错误时,系统会自动平滑切换到备选端点,显著提升了配额刷新和模型列表获取的稳定性。TransferEncodingError的问题。系统现在会将流错误捕获并封装为标准的 JSON 格式数据帧输出,确保连接能够优雅关闭并向前端传递清晰的错误信息。v4.1.29 (2026-03-12):
high/low)访问权限不一致导致的404/400报错问题。系统现在会根据选中账号的实际权限,在同系列模型间自动执行平滑回退(例如:gemini-3.1-pro-high->gemini-3.1-pro-low-> 默认层级)。API 弃用规则 > 账号感知回退 > 用户自定义映射 > 系统默认映射的科学优先级链条。docs/model-remapping-logic.md,完整记录了复杂的重映射逻辑流程。APPDATA、LOCALAPPDATA以及NVM_HOME等路径的自动扫描机制,确保即使 CLI 未正确配置在系统PATH中也能被精准识别。.cmd和.bat脚本的调用方式,解决了直接执行无法稳定获取版本号的问题。v4.1.28 (2026-03-03):
claude,gemini-3-flash等)精确拦截已耗尽账号,消除 90s 的无效等待。thinkingLevel导致 400 报错 (Fix Issue #2208):gemini-3.1-pro-high/gemini-3.1-pro-low等 Gemini 系列模型误判为支持thinkingLevel,而thinkingLevel是 Vertex AI Claude 原生协议专有参数,Gemini 系列底层走 v1internal 协议,仅接受thinkingBudget,导致请求被 Google API 拒绝并返回400 INVALID_ARGUMENT。thinkingLevel的触发条件从contains("gemini-3")修正为contains("claude"),确保thinkingLevel仅在 Claude 协议路径下注入,Gemini 系列模型在 adaptive 模式下统一回落到安全的thinkingBudget: 24576。googleSearch与自定义functionDeclarations同时使用的限制。gemini-3-flash系列纳入 “thinking 模型” 范畴,致使在首次函数调用(无 Session 签名缓存)时,thoughtSignature字段未被注入,Google v1internal API 返回400 INVALID_ARGUMENT。is_gemini_flash_thinking判断变量,在functionCall构建阶段,当 Session 缓存为空时自动注入哨兵值skip_thought_signature_validator。gemini-3-flash/gemini-3.1-flash加入target_model_supports_thinking识别列表;无签名时 flash 模型不再强制禁用 thinking,改为依赖现有哨兵注入路径(build_contentsL1249-1256),保留模型思考能力。wrap_request的functionCall处理块中,当 Session 缓存为空时对 flash 模型补充哨兵 fallback,覆盖首次调用场景。thinkingConfig注入逻辑,不影响非思考类请求的正常路径;顺带修复了test_wrap_request_with_signature单元测试中session_id参数位置错误的既有 Bug。'localtime'转换机制。无论用户身处全球何处,统计图表的时间轴都将自动与其系统时钟对齐,彻底解决了北京时间或其他非 UTC 时区下的数据错位问题。v4.1.27 (2026-03-01):
ProxyConfig默认初始化时缺失global_system_prompt、proxy_pool和image_thinking_mode字段导致的编译失败问题。OpenAIContentBlock枚举匹配中的未知类型兜底分支 (_ => {}),消除非穷尽匹配的编译警告/错误。preserve_tool_result_images开关,现已强制保留tool_result中的图片数据结构,转为大模型支持的inlineData结构,大幅简化逻辑。antigravity-manager更新为lbjlaq/antigravity-manager。.env文件来灵活覆盖默认配置。@ai-sdk/anthropic) 配合 OpenCode 使用时,因原生蛇形命名budget_tokens导致系统无法启动并抛出AI_UnsupportedFunctionalityError: 'thinking requires a budget'的问题。budget_tokens与小驼峰的budgetTokens字段。fetchAvailableModels接口在特定负载下无法正确返回remainingFraction的缺陷。由于缺失project标识,导致接口错误地为已耗尽配额(HTTP 429)的账号返回1.0(100%),进而导致智能路由算法将请求持续分配给不可用账号,引发长时间重试及配额显示错误。{"project": project_id}结构。恢复了配额信息的准确感知,并在未破坏原生字段(如supportsThinking)的前提下实现了接口完全兼容。gemini-3-pro-image更新为包含最新的gemini-3.1-flash-image。modelConfig.ts中补全了新版绘图模型的 UI 定义,确保图标和标签正常渲染。max_output_tokens等硬限额数据。model_specs.json集中管理 30+ 种模型的默认参数,彻底告别映射器中的硬编码逻辑。thinkingLevel支持,而非失效的 budget 逻辑。thinkingBudget。maxOutputTokens自动提升补齐逻辑增加了65536的模型硬上限保护,根除参数越界导致的请求失败。v4.1.26 (2026-02-27):
disabled或proxy_disabled的账号。std::process::Command封装注入CREATE_NO_WINDOW标志,解决了在 Windows 端应用底层组件(如版本探测、重启更新等)调用系统命令时引发的命令行窗口一闪而过的视觉干扰,确保全过程无边框静默执行。v4.1.25 (2026-02-27):
gemini-3-pro-image的硬编码限制。通过新增的clean_image_model_name智能清洗后缀(如-4k,-16x9),全面兼容如gemini-3.1-flash-image等任意未来新增的画图模型。normalize_to_standard_id,使用image关键词宽泛匹配,确保新模型也能正确触发配额保护机制。image的模型名时,系统会将常规文本生成请求静默转移给高级画图引擎。)以 SSE 流式返回图片链接,完美适配所有支持 Markdown 的聊天客户端。1024x1024的行为。现在,如果模型名带有后缀(如gemini-3-pro-image-16x9-4k),后台会严格优先解析后缀分辨率进行穿透绘图。v4.1.24 (2026-02-26):
src-tauri/src/lib.rs中取消start_scheduler的注释并解除Settings.tsx中相关 UI 的注释后重新编译使用。constants.rs中的KNOWN_STABLE_VERSION硬编码了低版本号,当本地 IDE 检测失败时回退该版本作为请求头,导致 Google 拒绝 Gemini 3.1 Pro 模型。2) 新增的远端版本网络调用直接在LazyLock初始化(Tokio 异步上下文)中执行,导致Cannot block the current thread严重崩溃。max(本地版本, 远端版本, 4.1.27),始终取最高值。2) 将网络探测逻辑移至独立 OS 线程并配合mpsc通道,安全避开异步运行时限制。保证无论本地版本新旧,指纹均不低于上游要求,且应用能稳定启动。maxOutputTokens超过模型物理上限(如 Flash 限制 64k),导致上游返回 400 错误。quota.models数据。model_limits.rs内置已知限额(如 Flash 65536)。wrap_request()中注入裁剪逻辑,确保请求参数合法。v4.1.23 (2026-02-25):
thinkingLevel字符串("NONE"/"LOW"/"MEDIUM"/"HIGH")到generationConfig.thinkingConfig。当 AGM 通过 Google v1internal API 代理请求时,Google 会因为 v1internal 仅接受数字型thinkingBudget而拒绝请求,返回400 INVALID_ARGUMENT。wrap_request()的现有 budget 处理逻辑之前,新增一个早期转换步骤:检测thinkingLevel字符串,将其映射为对应的数字thinkingBudget(NONE→0,LOW→4096,MEDIUM→8192,HIGH→24576),然后删除thinkingLevel字段并写入thinkingBudget,确保下游所有 budget 处理逻辑(预算封顶、maxOutputTokens调整、自适应检测)都能看到正确的数值预算。thinkingLevel: "LOW"到gemini-3.1-pro-high(Gemini 原生协议),请求现返回200 OK,不再报 400 错误。interval * 60 * 1000超过 JS 引擎 32 位有符号整数上限2,147,483,647ms,浏览器会将setInterval延迟静默截断为 1ms,导致前端每秒触发数千次refreshAllQuotas/syncAccountFromDb请求,进而引发多线程并发写同一[uuid].json文件,造成字节流交错、JSON 尾部残留,账号数据永久损坏。account.rs):save_account改为先写入 UUID 后缀的临时文件,再通过fs::rename(POSIX)/MoveFileExW(Windows)原子替换目标文件,与已有的save_account_index保持一致,从根本上消除并发写导致的 JSON 损坏。BackgroundTaskRunner.tsx): 对refresh_interval和sync_interval两个定时器的延迟参数加上Math.min(..., 2147483647)上界限制,防止超过 INT32_MAX 后被浏览器截断为 1ms 无限循环。Settings.tsx): 将refresh_interval和sync_interval输入框的max属性从60更新为35791(35791 min × 60000 < INT32_MAX),并在onChange中添加NaNfallback(默认为 1)及范围夹紧[1, 35791],从源头阻断非法值输入。exchange_code(首次授权)和refresh_access_token(静默续期)的换票请求,移除了底层网络库的 Chrome JA3 指纹伪装,恢复标准纯净的 TLS特征。CURRENT_VERSION) 构建专属的User-Agent(如vscode/1.X.X (Antigravity/4.1.27)),以匹配纯净 TLS 链路。MODEL_CONFIG读取硬编码模型信息,导致账号实际下发的动态新模型(如GPT-OSS 120B、Gemini 3.1 Pro (High)等)无法出现在这些列表中。useProxyModelsHook:以账号quota.models动态数据为第一优先数据源,聚合所有账号里所有模型的display_name(为主展示名称)和name(为模型 ID);MODEL_CONFIG仅作为图标/分组的样式补充,以及无账号数据时的静态兜底。ApiProxy页面本身不调用fetchAccounts,现在 Hook 内部检测到 store 为空时自动触发,保证动态模型在任意导航路径下均可正常展示。PinnedQuotaModels组件:采用同等策略,从useAccountStore拉取全账号动态模型,并修复了已固定的 “thinking” 类型模型显示”未知”的问题,改为优先展示其真实display_name。name(小写)去重,并额外过滤掉-thinking后缀的 MODEL_CONFIG 静态别名条目(这类变体已由账号数据中的supports_thinking标记覆盖)。v4.1.22 (2026-02-21):
application/grpc) 或 gRPC-Web (application/grpc-web) 协议代理支持仍在积极测试中,如果您有相关的测试经验或想法,非常欢迎联系讨论,也欢迎您建立新分支一起探索!📸 点击查看 gRPC 实时转换 OpenAI 规范测试演示
claude-sonnet-4-6及claude-sonnet-4-6-thinking作为主推模型。claude-sonnet-4-5重定向至4.6。gemini-pro-high/low迁移至gemini-3.1-pro,确保与 Google 最新 API 命名对齐。MODEL_CONFIG。Claude 4.5描述全面升级为正式版4.6,并将G3描述统一为G3.1。claude-opus-4-6-thinking在 Claude 协议下返回400 INVALID_ARGUMENT的问题。通过强制对齐thinkingBudget(24576) 与maxOutputTokens(57344),并剔除在该模式下不兼容的stopSequences,确保其请求参数与 100% 成功的 OpenAI 协议完全一致,提升了对 Claude 原生协议客户端的兼容性。v4.1.21 (2026-02-17):
maxOutputTokens(128k) 导致 Google API 返回400 INVALID_ARGUMENT的问题。现在自动将 Claude 协议的输出上限限制为 65536,确保请求始终在 Gemini 允许的范围内。thinking: { type: "adaptive" }行为。现在自动映射为 24576 的固定思考预算 (与 OpenAI 协议一致),解决了 Gemini Vertex AI 对thinkingBudget: -1的不兼容问题,显著提升了 Cherry Studio 的思考模式稳定性。custom-protocol特性,修复了生产环境下自定义协议 (如tauri://) 加载失败的问题,确保本地资源和特殊协议请求的稳定性。AppRuntimeFlags状态管理,实现了窗口关闭行为与托盘状态的联动。extract_semver),能从复杂的命令行输出中准确识别版本,提升了自动更新和环境检测的准确性。create_codex_sse_stream,补全了 OpenAI Responses API 规范要求的完整 SSE 事件生命周期(response.output_item.added、content_part.added/done、output_item.done、response.completed),解决了 Cherry Studio 因事件缺失导致无法组装响应内容的问题。builtin_web_search工具声明,防止其与inject_google_search_tool冲突,确保 Google Search 工具被正确注入。groundingMetadata解析,支持在联网搜索结果中回显搜索查询和来源引文。should_disable_thinking_due_to_history检查,不再因历史消息格式问题永久禁用思考模式,改为依赖thinking_recovery机制自动修复。v4.1.20 (2026-02-16):
400 INVALID_ARGUMENT错误(通过恢复 v4.1.16 的核心协议格式)。image/imagen关键字的支持,确保图像模型的配额信息能正常同步。X-Client-Name,X-Client-Version,X-Machine-Id,X-VSCode-SessionId等关键指纹头,实现了从网络层到应用层的像素级伪装,进一步降低了 403 风控概率。v4.1.19 (2026-02-15):
text: "") 导致上游 API 报错Field required的问题。mcp__puppeteer_navigate而非注册名mcp__puppeteer__puppeteer_navigate)的问题,实现了智能模糊匹配算法。claude-opus-4-6-thinking模型定义的问题,确保该模型能被客户端正确识别和调用。v4.1.18 (2026-02-14):
rquest核心库并集成 BoringSSL,实现了像素级复刻 Chrome 123 的 TLS 指纹 (JA3/JA4),有效解决高防护上游的 403/Captchas 拦截问题。Box<dyn Stream>实现了对reqwest(标准) 与rquest(伪装) 响应流的统一兼容,消除了底层类型冲突。invalid_grant等)。gemini-3-pro-image及其分辨率/比例后缀(如-4k,-16x9)因归一化匹配不精确导致的配额校验失效问题。v4.1.17 (2026-02-13):
updater.json,减少对 GitHub API 的直接依赖,提升检查速度。v4.1.16 (2026-02-12):
400 Invalid Argument错误。thinking字段注入,现在统一使用 Google 原生协议推荐的generationConfig.thinkingConfig嵌套结构。usage字段被错误地附加到每一个数据块 (Chunk) 中,导致客户端 (如 Cline/Roo Code) 统计的 Token 用量呈指数级虚高的问题。updater.json中增加了对linux-x86_64和linux-aarch64平台的支持,使 Linux AppImage 用户现在也能正常收到自动更新通知。.AppImage.sig签名文件,实现了 macOS、Windows 与 Linux 三大主流平台的自动更新能力闭环。install.sh(Linux/macOS) 和install.ps1(Windows) 脚本,支持通过极简的curl或irm命令实现全自动下载、安装与环境配置。opencode二进制是否存在,允许在 Docker 等隔离环境下仅通过配置文件管理同步状态。gemini-3-pro-image及其 4k/2k 变体因包含gemini-3-pro关键词,被系统错误判定为支持 Adaptive Thinking 从而误注入effortLevel导致的 HTTP 400 错误。antigravity-tools.rbCask 配置至 v4.1.16,确保 macOS 与 Linux 用户通过brew install始终获取最新稳定版本。v4.1.15 (2026-02-11):
updater.json) 的逻辑。现在系统会自动根据.sig签名文件构建完整的更新索引,支持 darwin-aarch64, darwin-x86_64 以及 windows-x86_64 架构。project_id的空字符串过滤逻辑。project_id为空时,现在会触发自动重新获取流程,有效解决了 Issue #1846 和 #1851 中提到的 “Invalid project resource name projects/“ 错误。bold-spark-xxx)。若项目不存在,请创建新项目并启用所需的 Vertex AI API。gcloud auth login) 重新进行身份验证,并确保gcloud config set project指向了正确的有效项目。v4.1.15 (2026-02-11):
is_forbidden的问题。mapped_model为空时,自动回退显示原始模型 ID 而非 “Unknown”,提升信息透明度。RefreshCw图标本身,交互更加细腻。effort参数 (low/medium/high),允许用户动态调整模型的思考深度与预算。maxOutputTokens未能正确感知 Budget 导致被截断的问题,确保长思维链不被腰斩。docs/adaptive_mode_test_examples.md,涵盖多轮对话、复杂任务场景及 Budget 模式切换的完整验证指南。imageSize参数的直接支持,可在所有协议(OpenAI/Claude/Gemini)中使用。imageSize参数 >quality参数推断 > 模型后缀推断。imageSize字段直接指定分辨率(“1K”/“2K”/“4K”)。quality参数和模型后缀方式,不影响现有代码。v4.1.15 (2026-02-11):
brew upgrade --cask流程,实现无缝升级体验。gemini-3-pro-image的请求。flatten_refs等深度递归逻辑引入了MAX_RECURSION_DEPTH(10) 限制,有效防止了由循环引用或过深嵌套导致的程序崩溃。create_openai_sse_stream中tool_calls的索引分配逻辑,确保同一个 chunk 中的多个工具调用拥有独立且连续的index,避免了参数被错误拼接导致解析失败的现象。bamboo-precept-lgxtn),确保 API 请求的连续性。Settings.tsx和ApiProxy.tsx中硬编码的中文字符串替换为t()国际化调用。v4.1.12 (2026-02-10):
claude-opus-4-6-thinking支持,提供更强大的推理能力。claude-opus-4.5/claude-opus-4到4.6的自动重定向,旧版配置无需修改即可直接享受新模型。maxOutputTokens小于thinkingBudget导致的 400 报错。现在系统会自动补全并对齐 Token 限制,确保请求合规。~/.bun/bin及全局安装路径的探测,解决了 bun 用户无法自动同步 Claude CLI 配置的问题。v4.1.11 (2026-02-09):
claude-opus-4-6等高端模型实施了严格的 Capability Filtering。系统现在会检查账号实际持有的model_quotas,只有明确拥有目标模型配额的账号才能参与轮询,彻底解决了 Pro/Free 账号因 “Soft Priority” 而被错误选中的问题。Ultra > Pro > Free的绝对优先级排序策略。只要 Ultra 账号可用,系统将始终优先调度 Ultra 账号,防止降级到 Pro 账号,确保了高端模型的服务质量。设置 -> 自定义模型映射或gui_config.json,确保没有配置"claude-opus-4-*": "claude-opus-4-5-thinking"这样的通配符,否则会导致claude-opus-4-6-thinking被错误映射到claude-opus-4-5-thinking。建议为claude-opus-4-6-thinking添加明确的精确映射。ABV_BIND_LOCAL_ONLY环境变量。当设置为true时,Docker/Headless 模式将仅绑定127.0.0.1,不再默认向0.0.0.0暴露服务,满足特定安全网络需求。ag_enc_前缀来明确标识已加密的密码字段。useful-flow-g3dts),此类 ID 目前会被 Google API 拦截并返回 404。bamboo-precept-lgxtn,确保 API 请求的连续性与稳定性。v4.1.10 (2026-02-08):
cli_sync和opencode_sync中新增了对.volta/bin及其内部二进制文件的自动探测支持,确保 Volta 用户在同步 CLI 配置时能够获得“零配置”的顺滑体验。-4k,-2k)或显式参数(quality: "hd")指定的高分辨率设置,防止由于请求体中的默认值导致的分辨率降级。includeThoughts: false,优先保证单图生成质量。account_bindings被覆盖的问题,确保绑定关系跨重启有效。zh.json内容缺失及各语言翻译不统一问题。socks5h://协议建议提示,并统一了后端代理 URL 标准化逻辑,显著增强了远程 DNS 解析的引导。v4.1.9 (2026-02-08):
model字段及镜像环境清理),确保同步后的兼容性。.antigravity.bak备份,支持一键还原。GlobalSystemPrompt组件,支持一键启用及多行内容编辑。temperature和top_p的数据类型从f32升级为f64。0.95变成0.949999...),显著提升了上游调用的稳定性。NavLogo和Settings页面中硬编码的 “Antigravity Tools”,全面采用app_name翻译键,确保 UI 语言切换的一致性。gemini-3-pro-image及其 4k/2k 变体因包含gemini-3-pro关键词,被系统错误判定为“思维模型”(Thinking Model)。thinkingConfig与图像生成imageConfig发生的冲突,解决了导致后端分辨率降级(降至 1k)的问题。en.json中的所有缺失键值,涵盖了 Cloudflared、断路器、OpenCode 同步等新功能。UpstreamCallResult统一管理上游请求结果,优化了流式与非流式响应的处理路径。v4.1.8 (2026-02-07):
claude-opus-4-6系列模型自动启用 Thinking 模式并预设 Budget,无需用户手动干预即可享受最新推理能力。claude-opus-4-6-thinking及其别名 (claude-opus-4-6,20260201) 的支持,并将其归入claude-sonnet-4.5配额组进行统筹管理。npm,pnpm,Yarn,NVM,FNM等)的自动扫描。PATH环境不完整时可能导致检测失败的问题,并增强了对.cmd和.bat文件的支持。tool_calls和 Claudetool_use。draggable="false",防止用户在意外拖拽时触发浏览器的默认行为,提升交互稳定性。get_token排序 hot path 中直接使用缓存。std::fs::read_to_string)导致的同步 I/O 阻塞,显著降低了高并发下的请求推迟与延迟。projects/...) 模型的哨兵签名注入限制。现在即使缺少真实签名,系统也会自动注入skip_thought_signature_validator,从而避免Field required for thinking signature错误。v4.1.7 (2026-02-06):
[核心修复] 修复图像生成 API (429/500/503) 自动切换账号问题 (Issue #1622):
images/generations和images/edits引入了与 Chat API 一致的自动重试与账号轮换机制。[核心功能] 新增账户自定义标签支持 (PR #1620):
[核心修复] 修复数据库为空时
get_stats返回 NULL 导致崩溃的问题 (PR #1578):COALESCE(SUM(...), 0)确保在没有日志记录时依然返回数值,解决了rusqlite无法将NULL转换为u64的问题。[核心修复] Claude 403 错误处理与账号轮换优化 (PR #1616):
is_forbidden并从活跃池中移除,避免该账号在接下来的请求中被继续选中。VALIDATION_REQUIRED错误,并对相关账号执行 10 分钟的临时阻断。[核心功能] OpenCode CLI 配置同步集成 (PR #1614):
~/.config/opencode/opencode.json,支持 Anthropic 和 Google 双 Provider 自动配置。antigravity-accounts.json,供 OpenCode 插件直接导入。[核心功能] 允许隐藏未使用的菜单项 (PR #1610):
[核心修复] Gemini 原生协议图像生成完全修复 (Issue #1573, #1625):
contents数组缺失role: "user"字段导致的INVALID_ARGUMENT错误。generationConfig.imageConfig(如aspectRatio,imageSize) 能正确透传给上游,不再被错误过滤。[核心增强] 自定义映射支持手动输入任意模型 ID:
claude-opus-4-6。用户可以通过自定义映射将请求路由到这些实验性模型。v4.1.6 (2026-02-06):
thinking_recovery机制。当检测到历史消息中包含陈旧思考块或陷入状态循环时,自动进行剥离与引导,提升了在复杂工具调用场景下的稳定性。Invalid signature(HTTP 400) 报错。thinking_budget越界导致的 HTTP 400 错误 (#1592, #1602):显示旧版本日志 (v4.1.5 及更早)
v4.1.5 (2026-02-05):
localStorage迁移至会话级的sessionStorage,显著降低了在公共设备上的安全风险。localStorage密钥,将其自动转移到sessionStorage并彻底清除旧数据,确保现有用户无缝过渡且消除安全隐患。account_id为None导致代理选择异常的问题。现在系统会为新账号生成临时 UUID,确保所有 OAuth 请求都有明确的账号上下文。refresh_access_token和get_effective_client的日志记录,提供更详细的代理选择信息,帮助诊断 Docker 环境下的网络问题。IpAccessLogQuery添加page和page_size的默认值,解决/api/security/logs返回 400 Bad Request 的问题AddBlacklistWrapper和AddWhitelistWrapper结构体,解决/api/security/blacklist和/api/security/whitelistPOST 返回 422 Unprocessable Content 的问题ipPattern→ip_pattern,确保与后端 API 参数一致token_manager.rs中添加set_forbidden方法,支持标记账号为禁用状态quota.is_forbidden状态,自动跳过被禁用的账号request.ts修复路径参数替换后从 body 中移除已使用的参数,避免重复传参request字段,简化请求结构useDebugConsole.ts添加isTauri环境检测,区分 Tauri 和 Web 环境request()替代invoke(),确保 Web 环境下的正常调用--legacy-peer-deps标志,解决前端依赖冲突@lobehub/iconspeer dependencies,修复前端依赖缺失导致的构建失败invokeAPI 导致的TypeError崩溃。现在通过兼容性请求层进行后端通信。HTTP Error 422报错。通过调整后端包装类,使其兼容前端嵌套的profile对象。/api/system/save-file及其关联函数,并在数据库导入接口中增加了路径遍历防范 (..校验)。save_text_file和read_text_file命令引入了统一的路径校验器,严禁目录遍历并封堵了系统敏感目录的访问权限。v4.1.4 (2026-02-05):
TokenManager的账号获取逻辑,在全量加载、同步以及调度路径中增加了对disabled和proxy_disabled状态的深度校验,彻底杜绝已禁用账号被误选的问题。validation_blocked字段体系,专门处理 Google 的VALIDATION_REQUIRED(403 临时风控) 场景,实现了基于截止时间的智能自动绕过。/proxy路径),解决了 Web 模式下调试模式无法开启的问题。admin_bind_device_profile_with_profile接口增加了BindDeviceProfileWrapper结构,修复了前端发送嵌套参数导致的 HTTP 422 错误。serde alias功能在 API 层同时支持 camelCase(前端)和 snake_case(后端文件),确保旧账号文件正常加载。Wrapper),直接解构业务模型,提升了代码的简洁性与开发效率。finish_reason被错误设置为stop导致 OpenAI 客户端提前终止对话的问题。现在系统会强制将有工具调用的响应finish_reason设置为tool_calls,确保工具循环正常运行。cmd/code/script等非标准参数名统一转换为command,提升了工具调用的兼容性。claude-sonnet-4-5-thinking)的工具调用流程,解决了 OpenCode 等客户端的中断问题。v4.1.3 (2026-02-05):
invoke封装的嵌套参数格式(如{"config": ...})的问题,确保安全配置能正确持久化。camelCase重命名支持,解决了 Web 端 Query 参数大小写不匹配导致的添加失败与删除失效。gemini-3-pro等模型在 OpenAI、Claude 和 Gemini 原生协议下思考块缺失的问题。thinkingConfig的自动注入与默认开启机制,确保即使客户端未发送配置,模型也能正确激活思考能力。wrapper.rs内部类型处理,解析并解决了高并发场景下的配置冲突。v4.1.2 (2026-02-05):
ClientAdapter框架并应用Arc引用计数,实现了 Handler 层与下游客户端逻辑的完全解耦,支持更安全的跨线程共享。opencode等第三方客户端,实现了 4 种协议(Claude/OpenAI/Gemini/OA-Compatible)的无缝接入,彻底解决了AI_TypeValidationError报错。let_it_crash快速失败机制,显著提升了高并发场景下的稳定性和错误反馈速度。event: error/ 非流式 JSON),确保客户端能正确解析上游异常。proxy_disabled) 的问题。SignatureCache机制,通过session_id物理隔离不同会话的思维签名存储,彻底杜绝多轮对话或并发请求导致的签名污染。[undefined])的识别与自动清洗逻辑,提升了对不同客户端(如 Cherry Studio)的兼容性。@lobehub/icons图标库,在账号卡片、表格及详情页中展示不同模型的 brand 图标,视觉体验更佳。get_account_state_on_disk机制,在获取 Token 的关键路径增加磁盘状态二次确认,彻底解决内存缓存延迟导致的禁用账号误选问题。toggle_proxy_status指令,禁用账号时会自动检查并关闭对应的固定账号模式,并立即触发代理池重载。invalid_grant错误并自动禁用账号时,现在会物理清理内存中的 Token、限流记录和会话绑定,确保故障账号即刻下线。Warmup) 与定时调度器 (Scheduler) 的禁用状态检查,大幅减少无效的后台网络请求。futures流的并发执行机制,将顺序检查重构为并发处理(并发上限 20)。crypto.randomUUIDAPI 导致的应用崩溃(”Unexpected Application Error”)及批量导入失败问题。v4.1.1 (2026-02-04):
request.ts的命令映射,并新增对PATCH方法的支持,解决了 Web 端因映射缺失导致的 API 调用错误。UserToken数据库初始化逻辑,支持从旧版本自动通过ALTER TABLE补全缺失列(如expires_type,max_ips,curfew_*等),极大提升了版本升级的稳定性。-e ABV_DATA_DIR=/app/data),解决了默认隐藏目录权限及可见性问题。GitHub API -> GitHub Raw -> jsDelivr的三层回退机制,极大提升了版本检测的成功率。antigravityUnifiedStateSync.oauthToken新格式,并保持对旧版格式的向下兼容。react-router依赖至安全版本,修复了ScrollRestoration组件在服务端渲染 (SSR) 时可能造成的跨站脚本攻击 (XSS) 风险。v4.1.0 (2026-02-04):
ip:port),自动补全http://方案。google.com拦截问题;更换保底检查 URL 至cloudflare.com。ProxyRequestLog初始化时缺失username字段导致的编译错误。.no_proxy()的客户端,防止 localhost 请求被错误路由到外部代理导致 502/401 错误。/internal/*路径的鉴权,确保内部预热请求不会被拦截。v4.0.15 (2026-02-03):
v4.0.14 (2026-02-02):
ABV_API_KEY)的覆盖能够被前端正确获取。v4.0.13 (2026-02-02):
ref冲突导致移动端/桌面端点击判定异常。v4.0.12 (2026-02-01):
connector.rs) 的核心逻辑,消除了历史遗留的低效代码。v4.0.11 (2026-01-31):
Sandbox -> Daily -> Prod。优先使用宽松环境,从源头减少 403 错误的发生。VALIDATION_REQUIRED(403) 错误时,系统会自动将该账号标记为“临时阻断”状态并持续 10 分钟。期间请求会自动跳过该账号,避免无效重试导致账号被进一步风控。TokenManager实例,实现了管理后台与反代服务共享单例账号管理器。/health和/healthz路由。"status": "ok"和当前应用版本号的 JSON,方便监控系统进行版本匹配和存活检查。gemini-2.0-flash-thinking)中,默认或上游传入的thinking_budget(例如 32k) 超过模型上限 (24k) 导致 API 报错400 Bad Request的问题。v4.0.9 (2026-01-30):
User-Agent头部。这允许用户模拟任意客户端版本(如 Cheat 模式),有效绕过部分地区的版本封锁或风控限制。check_and_protect_quota()函数在处理禁用账号时提前退出的逻辑缺陷。现在即便账号被禁用,系统仍会扫描并实时更新其protected_models(模型级保护列表),确保配额不足的账号在重新启用后不会绕过保护机制继续被使用。src-tauri/src/modules/cache.rs模块,用于计算和管理应用运行期间产生的各类临时文件分布(如翻译缓存、日志指纹等)。v4.0.8 (2026-01-30):
debug_logger.rs,支持捕获并记录 OpenAI、Claude 及 Gemini 处理器的原始请求、转换后报文及完整流式响应。TokenStats.tsx中的 Tooltip 定位算法,确保在小窗口或高缩放比例下,悬浮提示信息始终在可视区域内显示,防止被窗口边界遮挡。LazyLock预编译正则表达式解析版本号,提升运行效率并降低内存抖动。parametersJsonSchema重命名为parameters,确保与 Gemini 最新 API 规范完全对齐。/api/proxy/status缺少port字段且base_url构造错误的问题,确保前端能正确显示监听地址。auth_mode默认值改为auto。在 Docker 或允许局域网访问的环境下,系统现在会自动激活身份验证,确保WEB_PASSWORD生效。ABV_AUTH_MODE和AUTH_MODE环境变量,允许用户在启动时显式覆盖鉴权模式(支持off,strict,all_except_health,auto)。v4.0.7 (2026-01-29):
[性能优化] 优化 Docker 构建流程 (Fix Issue #1271):
[性能优化] 解决 Docker 版本在大数据量下的卡顿与崩溃问题 (Fix Issue #1269):
spawn_blocking),彻底解决了在查看大型日志文件(800MB+)时可能导致的 UI 卡死及反代服务不可用的问题。[核心修复] 解决 OpenAI 协议 400 Invalid Argument 错误 (Fix Issue #1267):
maxOutputTokens: 81920设置。该值超过了许多旧模型(如gemini-3-pro-preview或原生 Claude 3.5)的硬性限制,导致请求被直接拒绝。-thinking结尾的模型自动注入thinkingConfig,避免了对不支持该参数的标准模型(如gemini-3-pro)产生副作用。[兼容性修复] 修复 OpenAI Codex (v0.92.0) 调用错误 (Fix Issue #1278):
external_web_access字段,消除了 Gemini API 返回的 400 Invalid Argument 错误.name字段的强制校验。当客户端发送缺失名称的无效工具定义时,代理层现在会自动跳过并记录警告,而不是直接让请求失败。[核心功能] 自适应熔断器 (Adaptive Circuit Breaker):
account_id:model的复合 Key 限流追踪,确保单一模型的配额耗尽不会导致整个账号被锁定。[60, 300, 1800, 7200]等多级退避阶梯,自动根据失败次数增加锁定时间。TokenManager内存缓存,实现配置修改后反代服务即刻生效,无需重启。[核心优化] 完善日志清理与冗余压制 (Fix Issue #1280):
v4.0.6 (2026-01-28):
upsert(更新或新增) 模式。现在重新授权已存在的账号会平滑更新其 Token 和项目信息,不再弹出报错。TokenManager,确保所有平台共用同一套健壮的账号核验与存储逻辑。ModelCapacityExhausted错误(如 503),将原有的固定 15 秒重试等待优化为[5s, 10s, 15s]阶梯式策略,显著减少了偶发性容量波动的等待时间。max_tokens从 16k 提升至 81,920 (80k)。--no-autoupdate/--loglevel),解决了 cloudflared 进程启动即退出的问题。DETACHED_PROCESS标志,实现了隧道的完全静默后台运行,消除了弹窗干扰。v4.0.5 (2026-01-28):
localhost作为 OAuth 重定向 URI,绕过了 Google 对私网 IP 和非 HTTPS 环境的拦截策略。ar) 翻译支持。RateLimitTracker和TokenManager中底层实现了手动与自动触发的清除逻辑,确保高并发下的状态一致性。DELETE /api/proxy/rate-limits),方便开发者进行编程化管理与集成。v4.0.4 (2026-01-27):
/v1/images/generate) 调用 Gemini 3 图像模型,支持size、quality等参数。docs/gemini-3-image-guide.md,提供完整的 Gemini 图像生成集成指南。common_utils.rs) 和 Gemini/OpenAI 映射逻辑,确保大尺寸 Payload 传输稳定。accounts.json),导致重启后或桌面端无法识别的问题。TokenManager的保存逻辑,复用了modules::account的核心方法,确保了文件锁与索引更新的原子性。device_id也会报“不安全的应用版本”警告。cloudcode-pa.googleapis.com) 当前频繁的 429 错误。订阅等级 > 剩余配额 > 健康分。确保在同等级、同配额情况下,始终优先通过历史表现最稳定的账号。TokenManager核心接口,并完成了全量处理器(Claude, Gemini, OpenAI, Audio, Warmup)的同步适配,确保调度层变更对业务层透明。Retry-After或速率限制头部包含带小数点的毫秒值,导致解析失败。v4.0.3 (2026-01-27):
ABV_MAX_BODY_SIZE,支持用户根据需求动态调整最大限制。state参数的生成与回调验证,增强了 OAuth 流程的安全性和兼容性。v4.0.2 (2026-01-26):
/api/health) 的免鉴权豁免,避免 UI 加载初期因状态检测失败触发登录。admin_update_model_mapping接口正确调用持久化逻辑,配置在重启容器后依然生效。minLength,pattern,format等)前,自动将其转化为描述提示。CONSTRAINT_FIELDS常量和move_constraints_to_description函数,确保模型能通过描述理解原始约束。{"minLength": 5}→{"description": "[Constraint: minLen: 5]"}extract_best_schema_from_union函数,使用评分机制选择最佳类型(object > array > scalar)。"Accepts: type1 | type2"提示到描述中,保留所有可能类型的信息。get_schema_type_name函数,支持显式类型和结构推断。ToolAdaptertrait,为不同 MCP 工具提供定制化 Schema 处理能力。PencilAdapter,自动为 Pencil 绘图工具的视觉属性(cornerRadius,strokeWidth)和路径参数添加说明。clean_json_schema_for_tool函数应用工具特定优化。clean_json_schema_cached函数和缓存统计功能,预计性能提升 60%+。ABV_WEB_PASSWORD或WEB_PASSWORD环境变量设置独立的管理后台登录密码。API_KEY(确保向后兼容)。API_KEY进行认证,实现权限隔离。v4.0.1 (2026-01-26):
v4.0.0 (2026-01-25):
deploy/arch/PKGBUILD.template中硬编码data.tar.zst导致的提取失败问题。.deb包。ABV_PUBLIC_URL自定义,完美适配远程 VPS 或 NAS 部署场景。deploy目录及其旧版脚本,项目结构更加现代。antigravity-manager,并整合专属的docker/目录与部署手册。400 Invalid signature报错。common.rs,实现全局统一调度。Retry-After就立即重试导致封号的问题。现在所有处理器在重试前必须通过共享模块执行物理等待,有效保护 IP 信誉。ANTHROPIC_API_KEY时自动移除冲突的ANTHROPIC_AUTH_TOKEN,解决 Claude CLI 同步报错问题。ANTHROPIC_MODEL等可能干扰模型输出的环境变量,确保 CLI 使用标准模型。/compact提示,避免死锁。stream: false),后端也会自动建立流式连接与上游通信,极大提升了连接稳定性和配额利用率。mapped_model和account_email字段,导致无法定位出错的具体模型和账号。👥 核心贡献者 (Contributors)
感谢所有为本项目付出汗水与智慧的开发者。
🤝 鸣谢项目 (Special Thanks)
本项目在开发过程中参考或借鉴了以下优秀开源项目的思路或代码,排名不分先后:
learn-claude-code
Practical-Guide-to-Context-Engineering
CLIProxyAPI
antigravity-claude-proxy
aistudio-gemini-proxy
gcli2api
版权许可: 基于 CC BY-NC-SA 4.0 许可,严禁任何形式的商业行为。
安全声明: 本应用所有账号数据加密存储于本地 SQLite 数据库,除非开启同步功能,否则数据绝不离开您的设备。
如果您觉得这个工具有所帮助,欢迎在 GitHub 上点一个 ⭐️
Copyright © 2025 Antigravity Team.