技術報告与一手證据檔案 • 更新日期:2026 年 11 月 5 日(桌面端 v2.29.0 / CLI v1.5.1) • GitHub 檔案庫: magiccodelab/antigravity-256k-context-discrepancy
執行摘要
Google Antigravity 是 Google 面向智能体驅動軟體開發的統一平台,涵蓋 Antigravity 2.0 桌面端應用、Antigravity IDE、閉源 agy 命令列工具以及 Python SDK [11][12]。該平台在官方文檔与用戶端界面中均標稱並顯示 Gemini 4 Argon 与 Gemini 3.8 Flash 支援 1,048,576(1M)Tokens 上下文視窗 [1][3][12]。但對官方用戶端二進位檔案的靜態反匯編与本地 SQLite 會話資料庫的唯讀審計表明,用戶端代碼設置了模型白名單,并執行一段硬編碼机器碼指令序列,將自動上下文壓縮触發閾值鉗制在 256,000 Tokens(即標稱視窗的 25%)[1][2][3]。在 2026 年 10 月同一時期,Google 官方支援人員在未修改正式《附加服務條款(ToS)》的情況下,透過更新非合約性質的 FAQ 頁面,撤回了此前在開發者論壇針對「第三方編程工具透過本地子進程呼叫 agy -p」連續給出的 10 次書面合規确認 [13][14][31][32][34][36]。
範圍与方法論說明: 本文檔彙整截至 2026 年 11 月 5 日核實的一手技術證据、x86-64 反匯編記錄、本地 SQLite 軌跡統計、控制變數配額基准測試、論壇回覆原文以及二進位檔案加密校驗雜湊。所有被分析的官方二進位檔案均提供 Google Cloud Storage(storage.googleapis.com)官方下載直鏈及 SHA-256 / SHA-512 摘要,供獨立驗證。
- 1. 標稱 1,048,576(1M)窗口与硬編碼 0x3E800(256,000)二進位鉗制: 在桌面端 v2.29.0(
language_server.exe)与 CLI v1.5.0–v1.5.1(antigravity)中,defaultmodels.Gemini4Argon注冊的最大上下文視窗确為0x100000(1,048,576 Tokens)。但檢查點配置計算函式cortex/utils/utils.GetCheckpointConfig執行了硬編碼 x86-64 指令序列cmp $0x3e800, %edx; mov $0x3e800, %esi; cmovb %edx, %esi(机器碼81 fa 00 e8 03 00 be 00 e8 03 00 0f 42 f2,位于桌面端 v2.29.0 檔案偏移0x176cca2、CLI v1.5.0 檔案偏移0x7fe5802及 CLI v1.5.1 檔案偏移0x7fb0fe2),將所有模型的自動壓縮触發閾值鉗制為min(計算值, 256,000)。盡管 CLI v1.5.0 与 v1.5.1 恢復了此前在 v1.3.5–v1.4.x 中被編譯為空字符串的os.LookupEnv("AGY_CLI_AUTO_COMPACT_OVERRIDE")讀取呼叫,但0x3E800鉗制指令本身保持不變 [1][2][11]。 - 2. 一致的 256,000 Token 上限与 70 秒壓縮開銷: 對本机補丁前(2026 年 11 月 4 日之前)209 個 Antigravity CLI 1M-Gemini 會話(15,575 次模型呼叫)以及
@murias002在 Issue #878 中對 310 個 CLI 會話(65,613 次模型呼叫)的獨立審計顯示,100.0% 的 1M-Gemini 請求中繼資料記錄將max_context_tokens設為256000(15,575 / 15,575),單次無重試呼叫超過 300K Tokens 的次數為 0(#878 中最大輸入為 255,999)。每次自動壓縮會使執行暫停中位 70 秒,不在gen_metadata中記錄摘要呼叫的 Token 消耗,將約 250K Tokens 的歷史記錄替換為 15K–17K 的散文式摘要(CORTEX_STEP_TYPE_CHECKPOINT = 23,truncation_reason = 2),並使 240K+ 的隱式提示詞快取失效 [1][3][4]。 - 3. Gemini 4 Argon 3.0 倍配額消耗比与受控上下文檔位: 在同一 5 小時配額視窗內的控制變數 A/B 測試顯示,按公開 API 挂牌价歸一化後,Gemini 4 Argon 消耗訂閱配額的速率是 Gemini 3.8 Flash 的 3.00 倍(折合每百万輸入/輸出 Tokens $6.00/$30.00,公開挂牌价為 $2.00/$10.00,在 Web 端純輸入測試中則達每美元 7.64x–9.25x)[42]。与此同時,用戶端二進位檔案內部已包含
512K(1.3x 配額倍率)和900K(1.8x 配額倍率,Expensive: true)上下文視窗選項,受長度為 1 的"Gemini 4 Argon"白名單与伺服器端功能開關限制 [1][18][19]。 - 4. 透過更新 FAQ 完成的 26.5 小時 agy -p 政策反轉: 在 2026 年 9 月 16 日至 10 月 8 日(16:23 UTC)期間,三位 Google 官方支援工程師在官方開發者論壇發布了 10 次書面确認,明确說明由第三方編程工具(如 OpenAI Codex 和 Anthropic Claude Code)將未修改的
agy -p二進位檔案作為本地子進程運行符合《附加服務條款》第 6 條 [23][24][26][27][28][29][30][31][32][33]。約 26.5 小時後(10 月 8 日 17:34 UTC),官方人員撤回了這一立場並提示該用法會触發自動賬號封禁(cloudcode-pa.googleapis.comHTTP 403TOS_VIOLATION)[34],隨後在論壇帖子 #191689 第 8 樓确認正式《服務條款》自 9 月以來未作修改,僅在 10 月中旬更新了非合約性質的 FAQ 頁面 [13][14][36]。
已核實核心指標彙整表
下表彙整了靜態二進位分析、SQLite 會話審計以及公開 GitHub/論壇記錄中核實的各項定量測量結果、二進位狀態与政策節點。
| 類別 | 指標 / 組件 | 實測數值 / 二進位狀態 | 統計範圍与證据來源 | 引用序號 |
|---|---|---|---|---|
| 上下文容量 | Gemini 4 Argon / 3.8 Flash 標稱視窗 | 1,048,576 Tokens (1.0M) | 官方文檔、模型卡、CLI /context 界面及 defaultmodels.Gemini4Argon (0x100000) |
[1][3][12][44] |
| 上下文容量 | SQLite ContextWindowMetadata 上限欄位 |
max_context_tokens = 256000; truncation_reason = 2 |
本机補丁前 209 個 1M Gemini CLI 會話 100.0% 呼叫(15,575 / 15,575)及 Issue #1245 (@Circumsized) |
[1] |
| 二進位門禁 #3 | Cortex GetCheckpointConfig 硬鉗制 |
cmp $0x3e800, %edx; mov $0x3e800, %esi; cmovb %edx, %esi (256,000) |
桌面端 v2.29.0 @ 0x14176d6a2; CLI v1.5.0 @ 0x7fe5802; CLI v1.5.1 @ 0x7fb0fe2(.text 段唯一一處) |
[1][2] |
| 二進位門禁 #1 & #2 | CLI 上下文選擇器模型白名單 | 位于 0xc592be0 的 len=1 切片:["Gemini 4 Argon"] |
由 SelectorModel.offersContextWindow (0x9e92140) 与 store.(*Store).ContextWindow (0x9c49fe0) 消費 |
[1][2] |
| 環境變數覆蓋 | AGY_CLI_AUTO_COMPACT_OVERRIDE 讀取 |
v1.3.5–v1.4.x:編譯為 "" (xor %eax,%eax); v1.5.0–v1.5.1:恢復 os.LookupEnv |
在 CLI v1.5.0/v1.5.1 的 VA 0x9c49d00 處恢復(未寫入更新日志),0x3E800 鉗制仍生效 |
[1][2][11] |
| 生產環境遙測 | 310 個會話 / 65,613 次模型呼叫 (@murias002) |
最大輸入:255,999; >300K 呼叫:0; 壓縮前中位數:255,070 |
2026-08-30 至 2026-10-04 全量 CLI 資料庫審計,涵蓋 276 次壓縮事件(壓縮後中位數:45,304) | [3] |
| 壓縮輸出 | 壓縮後散文式摘要体積 | 15,363 – 17,336 Tokens(歷史縮減 >93%) | @Burntgogi 94 輪 Argon 會話(分別從 276,110 和 249,867 Tokens 触發壓縮) |
[1] |
| 外部閾值 | 第三方外掛安全壓縮上限 | 239,616 Tokens(256K - 16K 輸出餘量) | Nous Research Hermes Agent 外掛配置,用于避開 agy 內部的 256K 壓縮 |
[48] |
| 壓縮延遲 | 自動壓縮暫停時長与用量記錄 | 中位數 70 秒(範圍 35–602 秒); gen_metadata 中記錄為 0 Tokens |
@Emily2040 對 15 份無頭運行日志的審計(1,279 次 Argon High 呼叫,22 個檢查點) |
[1][4] |
| 快取失效 | 壓縮後快取留存率与重建呼叫 | 快取留存率 0%; 隨後緊跟 44,990–70,041 未快取輸入 Tokens | 將對話前綴改寫為散文式摘要會使約 240K 的隱式提示詞快取失效 | [1][4] |
| 快取失效 | 運行中途前綴快取未命中 | 17 次呼叫(1.3%)= 3,292,077 Tokens(占全部未快取輸入的 31.0%) | 17 次中途快取未命中裡有 15 次發生在用戶端注入 system_message 步驟後的兩步之內 |
[4][5] |
| CLI 開銷 | 無頭 agy -p 啟停与存儲 I/O |
11.3 – 12.2 秒固定開銷; 943 KB 摘要儲存檔案在 90 秒內重寫 27 次 | @Emily2040 5 輪基准測試(伺服器端執行耗時 4.5–8.2 秒,二進位啟動/退出耗時約 12 秒) |
[4] |
| 配額倍率 | 內置上下文視窗檔位倍率 | 256K: 1.0x | 512K: 1.3x | 900K: 1.8x (Expensive: true) |
CLI 字符串表 (0x5cf26c0)、ContextWindowOption.GetExpensive、解鎖後的 /model 界面及桌面端拆包 |
[1][18][19] |
| 配額消耗 | Gemini 4 Argon 与 3.8 Flash 同桶消耗比 | 按公開 API 每美元折算為 3.00x 配額($6/$30 對比公開价 $2/$10) | @Yiji_Kong 在 Antigravity v2.27.0 Ultra 5x 上的控制變數 A/B 測試(隱含 5 小時桶容量約 $150 USD) |
[42] |
| 配額消耗 | Gemini Web 8 位小數 ΔWeekly 純輸入消耗比 |
原始 24.67x / 每美元 9.25x(扣除基礎開銷後每美元 7.64x) | Argon Low 發送 28 字符 "OK" 提示詞 (+0.00015849) 比 Flash High 撰寫 4,013 詞長文 (+0.00014157) 多消耗 12% 配額 |
[42] |
| 政策變更 | 第 10 次論壇批准与政策反轉的時間差 | 71 分鐘 (#187536 -> #187241) / 26.5 小時 (#186246 -> #187241) |
10 次書面批准(9 月 16 日至 10 月 8 日 16:23 UTC)透過 10 月中旬 FAQ 更新被推翻,ToS 自 9 月起未修改 | [31][32][33][34][36] |
| 賬號申訴 | 二振出局執法与申訴停滯時長 | 1 次重認證机會,第 2 次標記永久封禁; 申訴停滯 100+ 天 | Discussion #20632 政策与 GitHub Issues #927、#29576 及論壇 #186089 中未解決的申訴記錄 | [8][9][10][45] |
如上表所示,標稱 1M 上下文視窗与 256,000 Token 實際運行上限之間的差异在桌面端語言服務程式与 CLI 二進位檔案中均被一致強制執行,而訂閱配額消耗与無頭 CLI 使用政策也在 2026 年 10 月經歷了同步調整。
1. 產品背景、架构与事件時間線
1.1 24 億美元 Windsurf 團隊交易、核心人員与 jetski 代碼庫
2025 年 7 月,Google 与 AI 編程初創公司 Windsurf(原名 Codeium)達成了 24 億美元的非排他性技術許可与人才引進協議。Windsurf 聯合創始人兼首席執行官 Varun Mohan(現任 Google DeepMind 軟體工程總監)与產品工程負責人 Kevin Hou(現任 Google DeepMind Antigravity 產品工程負責人)攜核心工程團隊加入 Google DeepMind,主導构建 Google Antigravity [55][56]。
對 Windows 桌面端語言服務程式(language_server.exe,含 214,663 個符號)与 Linux CLI 二進位檔案(antigravity v1.5.0,含 177,405 個符號)內部 Go 運行時 pclntab 函式符號表的檢查證實,桌面端二進位中約 92,000 個函式与 CLI 中約 90,000 個函式編譯自同一個內部 Google 單体倉庫(monorepo)源碼樹,並帶有 Windsurf/Codeium 的歷史研發代號:google3/third_party/jetski/ [2]。關鍵共享符號与 CLI 專屬符號包括:
google3/third_party/jetski/cli/model/model.SelectorModel.offersContextWindow
google3/third_party/jetski/cli/store/store.(*Store).ContextWindow
google3/third_party/jetski/cli/store/store.(*Store).ContextWindowChoice
google3/third_party/jetski/cli/store/store.AutoCompactOverride
google3/third_party/jetski/cortex/utils/utils.GetCheckpointConfig
google3/third_party/jetski/cortex/tokens/compaction/compaction.go
google3/third_party/jetski/cortex/shared/snapshot/snapshot.go下表列出了本報告所引用的公開記錄中涉及的核心管理層及官方倉庫/論壇工作人員:
| 姓名与職務 | 平台賬號 | 公開記錄中的角色与參与情況 | 引用序號 |
|---|---|---|---|
| Varun Mohan — Google DeepMind 軟體工程總監 | X: @_mohansolo |
Windsurf (Codeium) 前聯合創始人兼 CEO,2025 年 7 月透過 24 億美元技術許可与人才協議加入 Google DeepMind 並負責 Antigravity。 | [56] |
| Kevin Hou — Google DeepMind Antigravity 產品工程負責人 | X: @kevinhou22 | GitHub: @khou22 |
Windsurf/Codeium 前產品工程負責人,曾在 AI Engineer Summit 發表主題演講《Get Out of the Model's Way》,主張避免在模型外圍設置僵化的腳手架限制。 | [1][55] |
| Chandra Shakher Kamasani — Antigravity CLI 倉庫核心維護者 | GitHub: @chandrashakherkamasani |
于 2026 年 10 月 15 日自行認領 Issue #1245(256K 硬編碼壓縮),并于 10 月 19 日認領 Issue #1291(70 秒壓縮与快取失效),僅添加了 feedback 標籤而非 bug 標籤,截至 2026 年 11 月 5 日公開評論數為 0。 |
[1][4] |
| Maniraj Chervirala — Antigravity CLI 維護者与論壇支援人員 | GitHub: @manirajc | Forum: @Maniraj_Chervirala |
GitHub Issues #878、#1072、#927 和 #743 的負責人,于 2026 年 10 月 29 日在論壇帖子 #196351 中代表官方回覆,确認公開的 API 价格僅适用于按量付費計費,訂閱配額乘數不予公開。 | [3][5][6][8][42] |
| Rebbanpalli Naveen, Ambati Rajendra & Chunduriv — 官方論壇支援工程師 | Forum: @Rebbanpalli_Naveen, @Ambati_Rajendra, @chunduriv |
在 2026 年 9 月 16 日至 10 月 8 日(16:23 UTC)期間撰寫了 10 次确認本地子進程呼叫 agy -p 合規的書面回覆,並在 10 月 8 日(17:34 UTC)之後發布宣布基于 FAQ 禁止該用法的后續回覆。 |
[23]–[41] |
1.2 用戶端形態、舊版 gemini-cli 停用与共享配額池机制
根据 Google Antigravity 的官方文檔与版本更新日志,該平台包含四個共享統一智能体運行框架与訂閱配額池的用戶端形態 [12]:(1)Antigravity 2.0 桌面端應用(基于 Electron 的多智能体桌面應用,捆綁 language_server.exe、瀏覽器自動化、Jupyter 查看器与語音模式,v2.29.0 于 2026 年 11 月 3 日發布)[12][17],(2)Antigravity IDE 及擴充套件(基于 VS Code 派生的編輯器与 IDE 外掛)[12],(3)Antigravity CLI(agy,閉源單体 Go 二進位程式,提供交互式 TUI、無頭模式 agy -p / --print 以及在 v1.5.0 中引入的 agy acp Agent Client Protocol 標准輸入輸出服務)[11][12],以及(4)Antigravity Python SDK(google-antigravity/antigravity-sdk-python)[12][33][40]。
2026 年 6 月 18 日,Google 終止了個人消費者賬號對早期開源 Node.js 版 @google/gemini-cli 的訪問權限,要求所有免費及付費個人訂閱用戶遷移至閉源 agy 二進位程式 [10][45]。除終結用戶端的源碼級可見性外,此次遷移還移除了企業和自動化工作流此前用于在終端外部統計輸入、輸出、緩存与思考 Token 的原生 OpenTelemetry(OTLP)Token 用量導出器(記錄于 GitHub Issue #366)[7]。
個人消費級訂閱分為 Free、Google AI Plus、Google AI Pro(約 $20/月)以及 Google AI Ultra($200–$250/月的 5x 与 20x 檔位),提供對第一方 Gemini 模型(Gemini 3.5/3.6/3.7/3.8 Flash、Gemini 3.1 Pro 以及 2026 年 10 月中旬發布的旗艦模型 Gemini 4 Argon)与第三方模型配額桶(Claude Opus 5.5、Claude Sonnet 5.5 和 GPT-OSS 120B Medium)的訪問權限 [1][12][13][27][42]。所有用戶端形態(包括 Gemini Web 与無頭模式 agy -p)均從同一個共享的「5 小時滾動刷新池(5-Hourly Pool)」与「7 天週上限池(Weekly Pool)」中扣減配額 [31][32][42]。來自 LanguageServerService/GetUserStatus 与 8 位小數精度 /usage 接口的遙測數据顯示,1 個週配額池嚴格等于 20 × 5 小時配額池,其中 Ultra 5x 計划的單個 5 小時池按 Gemini 3.8 Flash 挂牌价(每百万 Tokens $0.75/$3.75)折算約為 $150 USD [42]。為防止基礎配額耗盡后系統自動扣減付費的 Google One AI Credits,用戶必須同時在 ~/.gemini/config/config.json 中設置 "useAiCredits": false 並在 ~/.gemini/antigravity-cli/settings.json 中設置 "useG1Credits": false [38][39]。
1.3 事件時間線(2025 年 7 月至 2026 年 11 月 5 日)
以下按時間順序排列的事件時間線根据 GitHub Issue 与 Release 時間戳、Google AI 開發者論壇 JSON 存檔中的 UTC 時間戳以及官方文檔發布記錄重建。
第一階段 團隊組建、早期賬號封禁与閉源遷移(2025-07 至 2026-08)
- 2025-07: Google 与 Windsurf(Codeium)完成 24 億美元的技術許可与核心團隊引進協議,Varun Mohan 与 Kevin Hou 加入 Google DeepMind,基于內部
google3/third_party/jetski代碼庫构建 Antigravity [2][55][56]。 - 2026-02-27 23:18 UTC: 在
cloudcode-pa.googleapis.com因第三方 OAuth 代理工具触發自動封號潮(同時將合規的@google/gemini-cli与 Gemini Code Assist 用戶鎖定并報錯 HTTP 403PERMISSION_DENIED (TOS_VIOLATION))後,Google 維護者@jackwotherspoon在google-gemini/gemini-cli發布了 Discussion #20632。該公告執行了一次性解封重置,並確立了「二振出局政策(Two-Strike Policy)」:首次被標記的用戶可提交重認證 Google 表單(Recertification Form)以等待定期自動解封(1–2 天),而第二次触發 ToS 違規標記將導致永久封禁 [9]。 - 2026-05-25 至 2026-05-30: Google AI Pro 年度訂閱用戶
@jlwainwright在政策明确前短暫測試某 OpenClaw 外掛后被標記為TOS_VIOLATION(盡管提交申訴,仍持續被封禁超過 100 天)[8]。5 月 30 日,r/google_antigravity上的一個熱門討論帖(#1trr4dy)報告稱,激進的歷史自動壓縮在遠未達到 Gemini 標稱的 1M 上下文視窗前就已將對話截斷 [21]。 - 2026-06-11 与 2026-06-18: 開發者
@UesugiErii提交 GitHub Issue #366,反映agy移除了 OTLP Token 用量導出功能 [7]。6 月 18 日,Google 終止個人消費者賬號對開源@google/gemini-cli的訪問,要求遷移至閉源 Go 二進位程式agy[10][45]。 - 2026-07-23 至 2026-08-26: 開源項目
agy-acp作者@shindgew(#175905)、@Ahmad3(#178472)与@JJPop(#179013)在官方論壇發帖詢問:將未修改的agy二進位檔案作為單用戶本地子進程啟動是否符合第 6 條規定 [23][S1][S2]。同期,@Pitt_zhang(#176775)記錄了多步任務中的智能体上下文丟失問題 [46],@thealgebraist提交 Issue #743 請求增加可配置的max_context_tokens設置 [6],8 月 26 日@schalatap提交 GitHub Issue #878 請求提供關閉自動壓縮并解鎖完整 1M 上下文視窗的選項 [3]。
第二階段 連續十次批准本地子進程呼叫的官方論壇書面确認(2026-09-02 至 2026-10-08 16:23 UTC)
- 2026-09-02 至 2026-09-25:
@jlwainwright提交 Issue #927,記錄持續 100 天以上未獲解決的 ToS 申訴 [8]。9 月 16 日(#175905,第 1 次确認)与 9 月 17 日(#183429,第 2 次确認),Google 工作人員@Rebbanpalli_Naveen与@Ambati_Rajendra書面确認:在本地將未修改的agy二進位檔案作為子進程啟動或從開源工具呼叫agy -p屬于官方支援用法,只要不提取 OAuth 憑据就不違反第 6 條 [23][24]。9 月 20 日,@flotoz提交關于配額快速耗盡的 Issue #1072 [5];9 月 23 日,Nous Research 的 Hermes Agent 將安全閾值設為 239,616 Tokens 以避開agy內部的 256K 壓縮 [48];9 月 25 日(#184829),@Ambati_Rajendra指出將agy -p封裝為供 Claude Code 呼叫的 MCP 伺服器不被允許,但直接本地腳本呼叫仍受支援 [25]。 - 2026-09-28 至 2026-10-02: Google 工作人員發出第 3 至第 6 次确認:
@Ambati_Rajendra在#185494(9 月 28 日)确認從另一個 AI 編程工具啟動運行agy -p的腳本是允許的(「you are good to go!」)[27],並在#185460(9 月 28 日)确認在單個個人賬號下將agy作為本地子進程運行是允許的(但禁止多賬號輪換)[26]。9 月 30 日,@chunduriv在#185992(第 5 次确認)中确認,在個人賬號下由 Anthropic 的 Claude Code 透過stdio以無頭模式呼叫未修改的agy.exe是允許的 [28]。10 月 2 日,@Ambati_Rajendra在#185949(第 6 次确認)中确認,由 Codex CLI 或 Claude Code 呼叫触發agyPowerShell 包裝腳本的本地 Skill 符合規定 [29]。 - 2026-10-05 至 2026-10-08 16:23 UTC: 10 月 5 日(00:51 UTC),Eddy Murias(
@murias002)在 Issue #878 中發布了涵蓋 310 個會話 / 65,613 次呼叫的 SQLite 審計,顯示最大輸入為 255,999 Tokens,壓縮前中位上下文為 255,070 Tokens [3]。10 月 5 日晚些時候,@Rebbanpalli_Naveen發出第 7 次确認(#186954,批准本地 AI 編排器子進程呼叫)[30] 与第 8 次确認(#186952,明确确認在個人 Google AI Pro 計划下由 OpenAI Codex 呼叫未修改的agy.exe「完全可以使用」,且屬于「CLI 無頭模式的受支援用法」)[31]。10 月 7 日(15:03 UTC),@chunduriv發出第 9 次确認(#186246),聲明「未修改的agy子進程究竟是由你自己的腳本、本地協調器,還是由另一個本地編程助手(如 Claude Code)啟動,沒有任何區別」[32]。10 月 8 日(16:23 UTC),@Ambati_Rajendra發出第 10 次确認(#187536),批准在個人編排器中進行agy、Codex 与 Claude Code 之間的自動化任務交接 [33]。
第三階段 10 月 8 日政策反轉、FAQ 更新与 0x3E800 門禁的二進位反匯編(2026-10-08 17:34 UTC 至 2026-11-05)
- 2026-10-08 17:34 UTC 与 10 月中旬 FAQ 修改: 距
#187536僅隔 71 分鐘、距其本人在#186246中的回覆僅隔 26 小時 31 分鐘,@chunduriv在#187241中發帖稱,Google 不支援在個人消費者登錄下使用第三方編程智能体(Codex、Claude Code、OpenClaw、OpenCode)編排或包裝agy,並警告該行為會触發自動 ToS 執法与賬號封禁 [34]。同一時期,Google 在未修改 9 月版《附加服務條款》的情況下,向《官方 FAQ》頁面新增了一條禁止在個人消費者計划下將agy包裝進第三方編程智能体的條目 [13][14][36]。 - 2026-10-14 至 2026-10-20:
@Burntgogi于 10 月 14 日提交 Issue #1245,記錄了 Gemini 4 Argon 在約 250K–276K 處發生強制壓縮的現象 [1]。10 月 15 日,維護者@chandrashakherkamasani自行認領#1245并打上feedback標籤(未打bug標籤),@NuCl34R与@Circumsized公佈了實驗結果与 SQLiteContextWindowMetadata(max_context_tokens = 256000)證据 [1],@Hello_there在論壇#189476報告了壓縮後捏造標識符的問題 [43],同時桌面端 v2.24.0 正式發布 Gemini 4 Argon 与/compact[12]。10 月 16 日(#189905),@Rebbanpalli_Naveen聲明 FAQ 取代早期的論壇評論 [35]。10 月 19 日,@Emily2040提交 Issue #1291,記錄了中位耗時 70 秒的壓縮以及由中途前綴快取未命中導致的 31% 未快取輸入 [1][4]。 - 2026-10-22 至 2026-10-29: 10 月 22–23 日,
@LiraNuna在 Issue #1245(第 5 和第 6 條評論)中公佈了三道二進位門禁的完整反匯編代碼并發布了patch_agy.py[1][2]。在論壇#191689(10 月 26–27 日)中,面對訂閱用戶@b_w与@Tora39的追問,@Rebbanpalli_Naveen确認正式 ToS 在 9 月之後並未修改,僅在 10 月中旬更新了 FAQ [36]。10 月 26 日至 10 月 29 日期間(#194998、#190756、#190815、#196472),官方工作人員將限制範圍擴大至來自 Claude Code 的本機檔案交接以及獨立 Python 協調器服務 [37][38][39][40]。10 月 28–29 日,@Yiji_Kong在論壇#196351發布了控制變數 A/B 配額基准測試,顯示 Argon 按公開挂牌价每美元消耗的配額是 Flash 的 3.00 倍,@Maniraj_Chervirala确認這一現象符合預期,原因是訂閱配額乘數不予公開 [42],同時u/Lberondroth的 v2.28.1 拆包比對(#1xij7jx)發現了帶有Expensive: true的ContextWindowOptions[18]。 - 2026-11-02 至 2026-11-05(桌面端 v2.29.0 与 CLI v1.5.0–v1.5.1): 11 月 2 日,
@AsabaLazy發布了 AUR 軟體包antigravity-cli-fix-bin[1][S5]。11 月 3 日,Google 發布桌面端 v2.29.0(language_server.exe增加 +4.47 MB,新增cortex/tokens/compaction、cortex/shared/snapshot以及受控開關enable-context-usage-indicator)[12][17]。11 月 4 日,Google 發布 CLI v1.5.0(新增agy acp,並在 VA0x9c49d00處靜默恢復了os.LookupEnv("AGY_CLI_AUTO_COMPACT_OVERRIDE"),同時在0x7fe5802處保留了0x3E800鉗制指令)[11]。11 月 5 日(約 07:34 UTC),Google 發布 CLI v1.5.1(BuildID696031ae...),全部 11 項更新日志均為常規維護修復,0x3E800鉗制指令在檔案偏移0x7fb0fe2處保持逐字節一致,核心 Issues #1245、#878 与 #1291 仍無官方回覆 [1][3][4][11]。
2. 256K 硬編碼門禁、二進位靜態反匯編与 SQLite 資料庫審計
2.1 標稱 1M 容量与五組獨立生產會話數据集對比
在 Google Antigravity 的官方文檔、版本更新日志 [12]、模型卡以及 agy CLI 的交互式 /context 面板中,Gemini 4 Argon 与 Gemini 3.8 Flash 均顯示上下文視窗容量為 1,048,576 Tokens(1.0M)[1][3][12][44]。當會話達到約 222K Tokens 時,CLI /context 面板報告使用率為 21.2%(222.4k/1.0M tokens),並顯示 Free space: 826.2k (78.8%) [44][51]。
公開界面參考截圖:(1)解鎖後的 agy CLI /model 菜單截圖(由 @LiraNuna 發布于 GitHub Issue #1245 [1],展示了隱藏的 Context: Default | 256K | [512K] | 900K 選項行以及紅色的 about 1.3x quota per turn 提示);(2)CLI /context 与桌面端上下文用量面板並排對比截圖(由 @dimitr-io 發布于論壇帖子 #184694 [44][51],展示了一個處于 222.4k–225.0k Tokens 的會話在已有 1 個早期檢查點被摘要折疊的情況下,仍報告在 1.0M 總量中剩餘 823.6k / 78.5% 的可用空間)。
盡管界面報告剩餘超過 75% 的可用容量,在 Linux 与 Windows 環境下收集的五組獨立生產會話遙測數据集一致證實,所有未修改用戶端的會話均在約 240K–276K Tokens(以 256,000 常數為中心)處被截斷或壓縮:
- 1. Eddy Murias (
@murias002) 對 310 個會話与 65,613 次模型呼叫的全庫審計(Issue #878)[3]: 對 Linux 下 2026 年 8 月 30 日至 10 月 4 日期間~/.gemini/antigravity-cli/conversations/*.db中全部gen_metadata記錄(310 個會話,65,613 次呼叫,其中 86.6% 運行在 Gemini 3.8 Flash 上)的審計顯示,單次呼叫輸入中位數(p50)為 136,487 Tokens,p90 為 229,000 Tokens,歷史單次呼叫最高輸入為 255,999 Tokens,超過 300,000 輸入 Tokens 的呼叫為 0 次。在全部 276 次壓縮事件(單步 Token 下降 >40%)中,壓縮前上下文体積中位數為 255,070 Tokens(p10 = 247,360,p90 = 255,874),壓縮後中位數降至 45,304 Tokens。 - 2.
@Burntgogi對 94 輪 Gemini 4 Argon 重构會話的軌跡測量(Issue #1245)[1]: 在 Windows 10 x64 下使用agy 1.3.5進行的一次持續 50 分鐘的多階段 TypeScript 重构會話(94 個PLANNER_RESPONSE輪次,264 個步驟,累計提示詞輸入 10.38M Tokens,快取讀取 9.43M Tokens)中,兩次強制壓縮与一次運行中途前綴快取未命中發生在下表所示的精确邊界處。 - 3.
@NuCl34R控制環境變數覆蓋實驗(Issue #1245 Comment #1)[1]: 在 Linux x64agy 1.3.5(gemini-4-argon)上,未設置環境變數的會話分別在 269,597 和 274,270 Tokens 處触發壓縮,而導出了AGY_CLI_AUTO_COMPACT_OVERRIDE=900000的會話分別在 272,784 和 279,687 Tokens 處触發壓縮,證實該環境變數在 1.3.5 中不生效。 - 4.
@Emily2040對 15 份無頭運行日志与 1,279 次 Gemini 4 Argon High 呼叫的審計(Issue #1245 & #1291)[1][4]: 在agy 1.4.0–1.4.2的 1,279 次模型呼叫中,共触發了 22 次檢查點自動壓縮步驟;在每次壓縮緊鄰的前一步呼叫中,總提示詞上下文(input + cache_read)均嚴格落在 235K 至 268K Tokens 之間。 - 5. 本机補丁前 Antigravity CLI 資料庫對 209 個會話与 15,575 次 1M-Gemini 呼叫的審計(< 2026-11-04 00:00:00 UTC+8): 在修改時間早于 2026 年 11 月 4 日的全部 237 個本地 CLI SQLite 資料庫(包含 209 個活躍的 1M 上下文 Gemini 會話和 15,575 次模型呼叫:Gemini 3.8 Flash 11,110 次、Gemini 4 Argon 2,826 次、Gemini 3.7/3.6/3.5 Flash 1,639 次)中,100.0% 的呼叫(15,575 / 15,575)記錄
max_context_tokens = 256,000,單次無重試呼叫(retries = 0)超過 300,000 提示詞 Tokens 的次數為 0(p50 = 108,493,p90 = 211,227,p99 = 250,610),共包含 79 次CORTEX_STEP_TYPE_CHECKPOINT(step_type = 23)壓縮步驟与 52 次truncation_reason = 2(MAX_TOKEN_LIMIT)事件。
下表彙整了 @Burntgogi 在 Issue #1245 的 94 輪 Gemini 4 Argon 會話中測得的關鍵軌跡事件 [1]:
| 事件節點 | 步驟 / 輪次 | 事件前提示詞 Tokens(快取 + 輸入) | 事件後提示詞 Tokens | 事件後 cache_read_tokens |
觀察到的机制与影響 |
|---|---|---|---|---|---|
| 檢查點 1 | Step 79 (Turn 21) | 276,110(263,524 快取 + 12,586 輸入) | 17,336 | 0 | 跨越約 256K 閾值,触發首次強制壓縮並將提示詞快取清零 [1] |
| 中途前綴未命中 | Step 193 (Turn 67) | 239,857(237,239 快取 + 2,618 輸入) | 243,064 | 0 | 在 Step 191 後 25 秒發生完整前綴快取失效(243,064 Tokens 按未快取計費)[1] |
| 檢查點 2 | Step 200 (Turn 70) | 249,867(247,369 快取 + 2,498 輸入) | 15,363 | 0 | 達到約 250K,触發第二次強制壓縮,將 93.8% 的上下文替換為散文式摘要 [1] |
2.2 Antigravity CLI SQLite 架构、Protobuf 結构与壓縮邊界回放
Antigravity CLI 將會話數据持久化保存在本地 ~/.gemini/antigravity-cli/ 下的兩層 SQLite 資料庫中:(1)全局會話索引庫(conversation_summaries.db,包含 conversation_summaries 表与 conversations_fts FTS5 虛擬表);以及(2)單會話軌跡資料庫(conversations/<uuid>.db,每個庫包含 7 張表:trajectory_meta、steps、gen_metadata、executor_metadata、parent_references、trajectory_metadata_blob 和 battle_mode_infos)。
在 steps 表中,CORTEX_STEP_TYPE_PLANNER_RESPONSE = 15 代表模型規划輪次,CORTEX_STEP_TYPE_CHECKPOINT = 23 代表自動上下文壓縮檢查點。在 gen_metadata 表中,每一行存儲一次模型呼叫的序列化 exa.cortex_pb.GeneratorMetadata Protobuf 記錄。當後台壓縮触發(step_type = 23)時,用戶端僅向 steps 表插入一行記錄,而不向 gen_metadata 表寫入對應行,因此摘要呼叫本身的 Token 用量被排除在軌跡統計之外。直接從 agy 二進位內嵌的 google.protobuf.FileDescriptorProto 表(檔案偏移 0x66298e2–0x662a950 与 0x65d62cd)提取的 gen_metadata.data 內部 Protobuf 層級結构如下:
exa.cortex_pb.GeneratorMetadata
├── field 1: chat_model (exa.cortex_pb.ChatModelMetadata)
│ ├── field 3: model (exa.codeium_common_pb.Model enum)
│ ├── field 4: usage (exa.codeium_common_pb.ModelUsageStats)
│ │ ├── field 2: input_tokens (uint64) # 計費的未快取提示詞輸入 Tokens
│ │ ├── field 3: output_tokens (uint64) # 生成的輸出 Tokens
│ │ ├── field 4: cache_write_tokens (uint64) # 寫入提示詞快取的 Tokens
│ │ ├── field 5: cache_read_tokens (uint64) # 讀取的已快取前綴 Tokens
│ │ └── field 9: thinking_output_tokens (uint64)
│ ├── field 9: chat_start_metadata (exa.cortex_pb.ChatStartMetadata)
│ │ ├── field 1: start_step_index (uint32) # 壓縮前為 0,壓縮後跳變至檢查點 idx
│ │ ├── field 2: checkpoint_index (int32) # 壓縮前為 -1
│ │ ├── field 3: steps_covered_by_checkpoint (repeated uint32)
│ │ ├── field 4: created_at (google.protobuf.Timestamp)
│ │ └── field 10: context_window_metadata (exa.cortex_pb.ContextWindowMetadata)
│ │ ├── field 1: estimated_tokens_used (int32)
│ │ ├── field 2: truncation_reason (0=UNSPECIFIED, 1=CACHE_TTL_EXPIRED, 2=MAX_TOKEN_LIMIT)
│ │ ├── field 3: token_breakdown (exa.cortex_pb.TokenBreakdown)
│ │ └── field 4: max_context_tokens (optional int32) # 在 100% 的 1M Gemini 呼叫中記錄為 256000
│ ├── field 14: retries (uint32)
│ ├── field 19: response_model (string)
│ └── field 21: model_display_name (string)
└── field 2: step_indices (repeated uint32)下表回放了本机補丁前 CLI 會話 5681d8b4-f18f-4efa-be2b-35091d09b953.db(gen_idx 338..346)中的一個典型壓縮邊界。在 gen_idx = 343 時,estimated_tokens_used 達到 255,912(距 256,000 上限僅差 88 Tokens)。在 step 700 處,CORTEX_STEP_TYPE_CHECKPOINT(step_type = 23)触發,且未寫入 gen_metadata 行。在下一次呼叫(gen_idx = 344,steps 701–702)中,start_step_index 從 0 跳變至 700,truncation_reason 記錄為 2(MAX_TOKEN_LIMIT),estimated_tokens_used 降至 35,148,cache_read_tokens 從 267,056 降至 20,399:
gen_idx |
steps.idx |
input_tokens |
cache_read_tokens |
prompt_total |
estimated_tokens_used |
start_step_index |
truncation_reason |
max_context_tokens |
|---|---|---|---|---|---|---|---|---|
| 338 | 688, 689 | 5,264 | 263,016 | 268,280 | 253,367 | 0 (ckpt=-1) | 0 | 256,000 |
| 340 | 692, 693 | 5,728 | 263,000 | 268,728 | 253,770 | 0 (ckpt=-1) | 0 | 256,000 |
| 342 | 696, 697 | 2,220 | 267,033 | 269,253 | 254,211 | 0 (ckpt=-1) | 0 | 256,000 |
| 343 | 698, 699 | 4,942 | 267,056 | 271,998 | 255,912 | 0 (ckpt=-1) | 0 | 256,000 |
| (step 700) | 700 (type=23) | (未記錄) | (未記錄) | (未記錄) | (CHECKPOINT) | — | — | — |
| 344 | 701, 702 | 5,962 | 20,399 | 26,361 | 35,148 | 700 (ckpt=0) | 2 (MAX_TOKEN_LIMIT) | 256,000 |
| 345 | 703, 704 | 3,662 | 24,476 | 28,138 | 36,719 | 700 (ckpt=0) | 0 | 256,000 |
| 346 | 705, 706 | 4,778 | 24,472 | 29,250 | 37,813 | 700 (ckpt=0) | 0 | 256,000 |
2.3 二進位靜態反匯編 模型注冊、三道硬編碼門禁与環境變數演變
對官方桌面端 v2.29.0 language_server.exe 二進位檔案(PE32+ x86-64,SHA-256 c98e7c33...e1c3d5)和官方 Linux CLI 二進位檔案(v1.5.0 BuildID 5fb6af4f... 及 v1.5.1 BuildID 696031ae...)的靜態反匯編,結合 @LiraNuna 在 Issue #1245 中對 v1.3.5–v1.4.x 的反匯編分析 [1][2],确認了四個層面的精确指令級實現:
第一層 — 模型注冊(代碼中存在真實的 1,048,576 Token 容量定義)
在桌面端与 CLI 二進位檔案中,Gemini 4 Argon 的模型描述符均由 defaultmodels.Gemini4Argon -> defaultmodels.GeminiModelInfo 构造,向結構體偏移 +0x14 處寫入最大上下文視窗 0x100000(1,048,576 Tokens),向結構體偏移 +0x70 處寫入 65,536 Tokens(0x10000)的輸出/安全餘量欄位,並按思考檔位傳入模型家族 ID 1417/1418/1419(0x589/0x58a/0x58b):
; Desktop language_server.exe (VA 0x141ce5015) & CLI v1.5.0 (VA 0x8540415):
mov DWORD PTR [rax+0x14], 0x100000 ; MaxContext = 1,048,576 tokens (1M)
mov DWORD PTR [rax+0x70], 0x10000 ; Secondary field = 65,536 tokens (64K)第二層(門禁 #1 与門禁 #2)— CLI 中長度為 1 的 "Gemini 4 Argon" 白名單切片与桌面端實驗開關
在 CLI 二進位檔案(v1.5.0)中,字符串表在檔案偏移 0x5cf26c0 附近相鄰存儲了 "512K"、"1.3x"、"900K"、"1.8x" 与 "256K",且 Protobuf 消息 ContextWindowOption 包含布爾訪問器 (*ContextWindowOption).GetExpensive。在 /model TUI 菜單中,透過 Tab 鍵在 Context: Default (256K) | 256K | [512K] | 900K 之間循環切換的邏輯已經實現 [1]。但該功能被兩處針對同一全局白名單切片的完全相同的檢查所阻斷,該切片透過 ELF .rela.dyn 重定位表(檔案偏移 0x9fa8)解析:
Relocation 1: r_offset = 0xc592be0 -> addend 0xc580ef0 (Slice header at 0xc592be0: {ptr=0xc580ef0, len=1, cap=1})
Relocation 2: r_offset = 0xc580ef0 -> addend 0x5dcc4d3 (String header at 0xc580ef0: {ptr=0x5dcc4d3, len=14})
Target string at 0x5dcc4d3 (14 bytes): "Gemini 4 Argon"這個長度為 1 的白名單切片在 CLI 二進位檔案的兩處獨立門禁中被消費:(1)門禁 #1(google3/third_party/jetski/cli/model/model.SelectorModel.offersContextWindow,VA 0x9e92140),它將當前模型名稱与該切片(@0x9e922ba–0x9e922e0)進行比對,對 Gemini 3.8 Flash 及所有其他非 Argon 的 1M 模型返回 false(xor %eax, %eax),從而在 /model 中隱藏 Context 選擇欄;以及(2)門禁 #2(google3/third_party/jetski/cli/store/store.(*Store).ContextWindow,v1.3.5 偏移 0x917d892 / v1.5.0 VA 0x9c49fe0),它在讀取 settings.json 之前重複執行完全相同的白名單循環 [1][2]:
; Gate #2: store.(*Store).ContextWindow() — v1.3.5 (@LiraNuna) / v1.5.0 (VA 0x9c49fe0, load @ 0x9c4a032):
917d892: mov 0x279b727(%rip), %rdx ; Load whitelist slice header at 0xc592be0 ("Gemini 4 Argon")
...
917d913: jl 0x917d952 ; If active model is not in whitelist, jump to exit branch
917d952: xor %eax, %eax ; Return empty string pointer "" (VA 0x9c4a0f2 in v1.5.0)
917d954: xor %ebx, %ebx ; Return string length 0
917d956: leave
917d957: ret ; Returns ("", 0) without reading settings.json由于 Manager.syncContextWindow() 呼叫的是 store.(*Store).ContextWindow() 而非直接配置讀取函式 store.(*Store).ContextWindowChoice()(VA 0x9c49fa0),任何非 Argon 模型都會收到 backend.SetContextWindow(""),導致保存在 ~/.gemini/antigravity-cli/settings.json 中的任何 "contextWindow": "512K" 或 "900K" 設置被丟棄 [1]。在桌面端,language_server.exe 不包含 CLI 專屬的 offersContextWindow 符號;相反,model_config.ContextWindowOptions(VA 0x141242e20)從伺服器端控制的功能開關(feature flag)鍵 "context-window-options"(字符串位于 0x1436d7c0a)讀取可用選項。
第三層(門禁 #3)— cortex/utils/utils.GetCheckpointConfig 中的硬編碼 0x3E800(256,000)鉗制指令
即使用戶選擇了 Gemini 4 Argon(透過了門禁 #1 和門禁 #2),會話仍然會在約 256K Tokens 處触發壓縮。對 google3/third_party/jetski/cortex/utils/utils.GetCheckpointConfig(桌面端 v2.29.0 VA 0x14176d580、CLI v1.3.5 偏移 0x7861894、CLI v1.5.0 VA 0x7fe57fe、CLI v1.5.1 偏移 0x7fb0fde)的反匯編顯示,在檢查內部模型家族 ID 323(0x143,該分支在 0x14176da77 / 0x7fe5bd7 處獲得 1,000,000 閾值)的特判直通路徑並減去安全餘量 max(model_field, 40,000)(0x9c40)之後,該函式執行了一段 14 字節的硬編碼鉗制指令序列(81 fa 00 e8 03 00 be 00 e8 03 00 0f 42 f2)[1][2]:
; Desktop v2.29.0 (VA 0x14176d5aa..0x14176d6b0) & CLI v1.5.0 (VA 0x7fe570a..0x7fe5810) / v1.5.1 (0x7fb0fde):
14176d5aa: cmp DWORD PTR [rcx+0x8], 0x143 ; Special case check for internal family ID 323 (0x143)
14176d5b1: je 0x14176da2b ; If family == 323 -> jump to 1,000,000 (0xf4240) fast path
...
14176d5dc: cmp rdi, 0x9c40 ; Compare model margin field against 40,000 (0x9c40)
14176d5e9: cmovg r8, rdi ; margin = max(model_field, 40000) [65,536 for Argon]
14176d5f6: sub rdx, r8 ; candidate = context_window - margin [983,040 for Argon]
...
14176d69e: mov edx, DWORD PTR [rsp+0x4c] ; Load candidate threshold into %edx (CLI v1.5.0 @ 0x7fe57fe)
14176d6a2: cmp edx, 0x3e800 ; Compare %edx against 0x3e800 (256,000) [CLI v1.5.0 @ 0x7fe5802]
14176d6a8: mov esi, 0x3e800 ; Load 256,000 into %esi
14176d6ad: cmovb esi, edx ; Unsigned conditional move: esi = min(candidate, 256000)
14176d6b0: mov DWORD PTR [rsp+0x50], esi ; Write clamped 256,000 into TokenThreshold!
14176d6ba: cmp edx, 0x4000 ; Secondary field clamped against 16,384 (0x4000)對桌面端 language_server.exe 整個 56 MB .text 代碼段以及 CLI antigravity(v1.5.0 与 v1.5.1)整個 60 MB .text 代碼段的全段掃描證實,14 字節机器碼序列 81 fa 00 e8 03 00 be 00 e8 03 00 0f 42 f2 在每個二進位檔案中均只出現唯一一次。相鄰函式 ClampCheckpointConfigForModelInfo(桌面端 VA 0x14176dce0)僅按 max_context - 0x9c40(40,000)約束閾值,不包含任何 256K 常數。代入 Gemini 4 Argon 注冊的參數可得:threshold = min(1,048,576 - 65,536, 256,000) = 256,000。
第四層 — AGY_CLI_AUTO_COMPACT_OVERRIDE 的兩階段演變及有損壓縮与請求前截斷的區別
在 google3/third_party/jetski/cli/store/store.AutoCompactOverride 中,該函式原本編寫為從隱藏環境變數 AGY_CLI_AUTO_COMPACT_OVERRIDE 解析百分比(如 80%)或整數 Token 數量。在不同發布版本中,其實現經歷了兩個階段:
- 第一階段(CLI v1.3.5–v1.4.x,2026 年 10 月 — 編譯期替換為空字符串)[1][2]: 如
@LiraNuna在 Issue #1245 Comment #5 中反匯編所示,os.Getenv("AGY_CLI_AUTO_COMPACT_OVERRIDE")呼叫在編譯期被替換為寄存器清零指令(xor %eax, %eax; xor %ebx, %ebx; call strings.TrimSpace),向strconv.ParseInt傳入空字符串""並無條件返回無覆蓋結果。 - 第二階段(CLI v1.5.0–v1.5.1,2026 年 11 月 4–5 日 — 在二進位中靜默恢復)[11]: 在 CLI v1.5.0(VA
0x9c49d00)与 v1.5.1 中,Google 恢復了查找序列:lea rax, [rip+->"AGY_CLI_AUTO_COMPACT_OVERRIDE"](字符串位于0x5ec74c5,長度 29)+mov ebx, 0x1d+call os.LookupEnv(0x6b21260) +call strings.TrimSpace(0x6b50780),後接位于 VA0x9c49d40的百分比/整數解析邏輯(當未保存視窗選擇時由Store.ContextWindow在0x9c4a0fa處呼叫)。但這一改動未寫入CHANGELOG.md,且GetCheckpointConfig中的0x3E800鉗制指令保持未變。 - 有損壓縮与靜默請求前截斷的區別 (
@Circumsized, Issue #1245) [1]: 資料庫記錄与 CLI v1.4.9 更新日志證實存在兩种獨立的上下文縮減机制:(a)壓縮(CORTEX_STEP_TYPE_CHECKPOINT = 23),將約 250K Tokens 的歷史記錄替換為帶有CHECKPOINT: "# Resuming from a compaction..."標記的 15K–17K 散文式摘要;以及(b)請求前截斷(truncation_reason = 2),當 Token 數接近max_context_tokens = 256000時,在發出請求負載前直接從前端裁剪早期歷史記錄,不生成摘要也不顯示檢查點提示橫幅。
3. 工程影響、70 秒壓縮停頓与 Gemini 4 Argon 配額消耗
3.1 多步工程中的上下文丟失与壓縮後回歸缺陷
當多步工程會話跨越約 256K 閾值並經歷有損散文式壓縮(Token 縮減 >93%)或靜默請求前裁剪時,早期輪次中讀取的精确符號定義、數值比例尺与跨檔案約束會被丟棄。公開 Issue 与論壇報告記錄了四种典型失效模式:
- 跨檔案符號幻覺与 200 倍數值比例尺失真 (
@Burntgogi, Issue #1245) [1]: 在 Gemini 4 Argon 的 94 輪 TypeScript 重构會話中,智能体在 Steps 1–75 期間透過view_file讀取了目錄与狀態初始化文件。當檢查點 1 在 Step 79 触發(276,110 -> 17,336 Tokens)後,所有逐字記錄的view_file輸出均被替換為散文式摘要。在 Steps 159–177 編寫升級映射且未重新讀取檔案時,模型憑空构造了一個不存在的 tier-3 目錄鍵名,並將按1000..2000比例尺初始化的狀態欄位誤認為歸一化的0..10比例尺(使數值縮小了 200 倍)。在 Step 200 触發檢查點 2(249,867 -> 15,363 Tokens)後,模型又在 UI 模塊中使用了連字符格式的localStorage鍵名,而在入口模塊中使用了下划線格式的鍵名。 - 壓縮後標識符憑空捏造 (
@Hello_there, 論壇 #189476) [43]: 在触發"Resuming from a compaction — you have lost access to the full conversation history"後,由于缺少壓縮後的文件重新校驗門禁,智能体引入了 6 個不存在的標識符,并用硬編碼值覆蓋了初始化約束。官方支援人員(@chunduriv)建議用戶在~/.gemini/GEMINI.md中手動添加規則,指示智能体在壓縮後重新運行view_file。 - 多段級聯上下文丟失 (
@jlukic&@Infinnerty, Issue #878) [3]: 在經歷多次壓縮的會話中,每次生成的新摘要僅對前一段已被截斷的約 100K 上下文進行二次濃縮,導致第 3 段完全無法獲知第 1 段的細節,並使摘要引用不存在的函式名或超出文件末尾的行號。 - API 契約不匹配与驗證缺口 (
@Pitt_zhang, 論壇 #176775) [46]: 在對一項多步全棧任務的審計中,跨輪次的上下文丟失導致前端呼叫/portal-api/**与/mock-channel/**,而後端暴露的卻是帶有不兼容 DTO 結构的/api/**,同時還在登錄回退分支中引入了當 API 請求失敗時直接賦予本地管理員狀態的邏輯。
3.2 提示詞快取失效与 70 秒壓縮開銷
在 GitHub Issues #1291 与 #1245 中,@Emily2040 分析了 agy v1.4.0–v1.4.2 運行 Gemini 4 Argon High 的 15 份無頭模式 stream-json 日志(共 1,279 次模型呼叫,累計未快取輸入 10,619,129 Tokens,快取讀取 192,374,637 Tokens)[1][4]。由于 Gemini 4 Argon 依賴隱式快取(Implicit Caching)進行逐字節精确前綴匹配(快取讀取的計費价格僅為未快取輸入的 1/20,即每百万 Tokens $0.30 對比 $6.00)[4][42],提前触發的壓縮与運行中途的前綴變化會顯著增加 Token 与配額消耗:
- 70 秒中位壓縮停頓与未記錄的摘要用量 [1][4]: 在測得的全部 22 個檢查點步驟(均在 235K 至 268K Tokens 之間触發)中,每次壓縮使執行暫停 35 至 602 秒,中位耗時為 70 秒。由于
step_type = 23不向gen_metadata寫入記錄,摘要呼叫在用戶可見日志中報告的 Token 用量為 0,但實際仍從用戶的訂閱配額池中扣減額度 [4][42]。 - 每次壓縮後提示詞快取完全歸零 [1][4][5]: 將約 250K 的對話前綴改寫為 15K–17K 的摘要會使整個已快取前綴失效(
cache_read_tokens降至 0)。15 份日志中的每一個檢查點之後,都緊跟著一次 44,990 至 70,041 Tokens 的未快取輸入呼叫以重建快取,隨後智能体為恢復丟失的上下文還會發起額外的文件重讀操作。 - 注入 system_message 後的運行中途前綴快取未命中(占未快取輸入的 31.0%)[4]: 在 1,279 次呼叫中,僅 17 次
input > 100K且cache_read_tokens = 0的呼叫(單次 113,735 至 268,032 Tokens,占總呼叫次數的 1.3%)就消耗了 3,292,077 未快取輸入 Tokens,占整個工作負載全部未快取輸入的 31.0%。這 17 次未命中裡有 15 次發生在用戶端注入system_message步驟(如子代理通知或定時器喚醒)後的兩步之內。
3.3 控制變數 A/B 配額基准測試(@Yiji_Kong,論壇 #196351)与檔位倍率
2026 年 10 月 28–29 日,開發者 @Yiji_Kong 在 Google AI 開發者論壇帖子 #196351 中公佈了在 Antigravity 桌面端(v2.27.0,Google AI Ultra 5x 計划)与 Gemini Web 界面上完成的兩組控制變數 A/B 實驗,用于測量訂閱配額的內部扣減倍率 [42]。
實驗 1 — Antigravity 用戶端內同配額桶、單輪、零快取 A/B 對比測試
透過每 30 秒輪詢一次 LanguageServerService/GetUserStatus 中的 quotaInfo.remainingFraction,並在靜置 8 分鐘后從 GetCascadeTrajectoryGeneratorMetadata 讀取精确的 Token 計數,實驗向 Gemini 4 Argon (High) 与 Gemini 3.8 Flash (High) 發送了完全相同的單輪無工具提示詞(快取讀取為 0)[42]:
| 模型 | 輸入 / 輸出 Tokens | 5 小時池配額下降值 | 按公開 API 挂牌价折算的隱含成本 | 每 $1 公開 API 成本對應的配額下降 | 相對 Flash 的歸一化配額消耗比 |
|---|---|---|---|---|---|
| Gemini 4 Argon (High) | 14,918 輸入 / 4,233 輸出 | 0.00144340 | $0.0722 USD(按每百万 $2.00 / $10.00 計) | 0.02000 | 3.00x (0.02000 / 0.00667) [42] |
| Gemini 3.8 Flash (High) | 15,111 輸入 / 3,451 輸出 | 0.00016180 | $0.0243 USD(按每百万 $0.75 / $3.75 計) | 0.00667 | 1.00x(基准)[42] |
按各模型公開的 API 挂牌价歸一化後,Gemini 4 Argon 每公開美元消耗的訂閱配額嚴格等于 Gemini 3.8 Flash 的 3.00 倍。若 Flash 按其公開挂牌价(每百万 $0.75/$3.75)計權,則 Ultra 5x 的 5 小時配額池對應約 $150.0 USD($0.024274 / 0.00016180),而 Argon 在內部按每百万輸入 $6.00 / 輸出 $30.00 計權(即其宣傳的 $2.00 / $10.00 API 首發价格的 3 倍)[42]。此外,一次路由至 gemini-3.8-flash-tiered(內部模型枚舉 M322,12,773 輸入 / 16,332 輸出,0 快取)的子代理探測呼叫使 remainingFraction 下降了 0.01048544,約為標准 Flash 預期下降值(~0.00047)的 22 倍 [42]。
實驗 2 — Gemini Web 端 8 位小數週配額池(ΔWeekly)純輸入、零思考交叉驗證
為排除本地用戶端記帳變數与思考 Token 的開銷,@Yiji_Kong 于 2026 年 10 月 29 日記錄了五個測試用例在 Web 端 /usage 接口返回的 8 位小數週配額使用率(percentageUsed)[42]:
| 測試用例与場景 | 模型与檔位 | 輸入 / 輸出負載 | 5 小時池變化量 | 精确週配額池變化量(ΔWeekly,8 位小數) |
實測消耗比与結果 |
|---|---|---|---|---|---|
| 測試 1A(純輸入,0 思考,0 快取) | Gemini 3.8 Flash (Low) | 51,262 字符(約 13.5K Tokens)輸入 / 回覆 "OK"(1 Token,0 思考) |
0.10 -> 0.10 (0.00) | +0.00003685 (0.09984048 -> 0.09987733) | 基准 1.00x [42] |
| 測試 1B(純輸入,0 思考,0 快取) | Gemini 4 Argon (Low) | 51,262 字符(等長排列 B)輸入 / 回覆 "OK"(1 Token,0 思考) |
0.10 -> 0.12 (+0.02) | +0.00090908 (0.09987733 -> 0.10078641) | 相對 Flash 原始消耗為 24.67x(每公開美元 9.25x,扣除基礎開銷後原始 20.37x / 每美元 7.64x)[42] |
| 測試 2A(高思考 4,013 詞長文) | Gemini 3.8 Flash (High) | 107 字符輸入 / 28,389 字符(4,013 詞 Paxos/Raft 文章)輸出 | 0.12 -> 0.12 (0.00) | +0.00014157 (0.10078641 -> 0.10092798) | 生成一篇 4,013 詞的技術文章消耗了週配額池的 0.014% [42] |
| 測試 2B(高思考 4,284 詞長文) | Gemini 4 Argon (High) | 107 字符輸入 / 27,859 字符(4,284 詞 Paxos/Raft 文章)輸出 | 0.12 -> 0.15 (+0.03) | +0.00157077 (0.10092798 -> 0.10249875) | 相對 Flash 原始消耗為 11.10x(每公開美元 4.24x,單輪消耗約 5 小時池的 3.1%)[42] |
| 測試 1C(最小 28 字符基礎校准) | Gemini 4 Argon (Low) | 28 字符 "Reply with only the word: OK" 輸入 / 回覆 "OK" |
0.15 -> 0.16 (+0.01) | +0.00015849 (0.10249875 -> 0.10265724) | 在 Argon Low 上發送 28 字符 "OK" 提示詞 (+0.00015849) 比在 3.8 Flash High 上撰寫 4,013 詞長文 (+0.00014157) 多消耗 12% 配額 [42] |
在帖子 #196351 的第 6 樓,Google 維護者 @Maniraj_Chervirala 回應稱,https://ai.google.dev/gemini-api/docs/pricing 上的單 Token 費率僅适用于按量付費(pay-as-you-go)API 計費,而個人消費者的 5 小時和週訂閱限額反映的是可用容量、模型算力与總智能体工作量,並補充表示:「固定的單模型配額乘數不予公佈,因為訂閱限額會隨系統容量動態調整」[42]。
受控上下文視窗倍率(1.0x / 1.3x / 1.8x)与近期版本更新(v1.4.3–v1.5.1 / 桌面端 v2.29.0)
CLI v1.3.5–v1.5.1 与桌面端 v2.27.0–v2.29.0 中的二進位字符串表和 Protobuf 描述符將內置的三檔上下文視窗選項綁定到了明确的單輪配額乘數:Default (256K) / 256K 為 1.0x,512K 為 1.3x("about 1.3x quota per turn"),900K 為帶有 Expensive: true 的 1.8x [1][18][19]。在 2026 年 10 月 20 日至 11 月 5 日期間,Google 陸續發布了 CLI v1.4.3–v1.4.10 以修補自動壓縮的次生問題(v1.4.3 保留子代理 ID、v1.4.4 保留工具聲明以複用快取、v1.4.6 保留圖片与 PDF、v1.4.7 修復超大消息引起的死循環壓縮、v1.4.9 修復歷史裁剪后遺留的孤立工具呼叫、v1.4.10 在子代理摘要中保留最近 10 條父級消息)[11],在桌面端 v2.29.0(language_server.exe 增加 +4.47 MB)中新增了 cortex/tokens/compaction、cortex/shared/snapshot 以及受控開關 enable-context-usage-indicator [17],並在 11 月 4–5 日發布了 CLI v1.5.0 与 v1.5.1,同時保持 GetCheckpointConfig 中的 0x3E800(256,000)鉗制指令未變 [11]。
4. agy -p 無頭模式政策反轉与賬號封禁申訴
4.1 合約文本背景 附加服務條款第 6 條与官方 FAQ 對比
根据《Google Antigravity 附加服務條款》(https://antigravity.google/terms)第 1 條与第 2 條的規定,Google LLC 与用戶之間具有法律約束力的協議(Agreement)由三份文件构成:(1)《Google 服務條款》,(2)《Google Antigravity 附加服務條款》,以及(3)《Google 隱私政策》[14]。网站 FAQ 頁面並未被列為具有約束力的合約檔案。自 2026 年 9 月以來未作修改的《附加服務條款》第 6 條全文如下:
「6. 您不得濫用、損害、干扰或破坏本服務。這包括但不限于將本服務与非我們提供的產品結合使用。使用第三方軟體、工具或服務訪問本服務(例如結合 Antigravity OAuth 使用 OpenClaw)即构成對本協議的違反。此類行為可作為暫停或終止您的 Antigravity 及/或 Gemini CLI 賬號的依据。」
— 《Google Antigravity 附加服務條款》第 6 條(2026 年 9 月)[14](來源鏈接)
由于官方 agy CLI 提供了公開文檔化的無頭執行模式(agy -p "<prompt>"、--output-format json、--output-format stream-json),專門供外部進程透過標准輸入/輸出(stdio)進行呼叫,開發者紛紛在官方支援論壇(discuss.ai.google.dev/c/antigravity/64)發帖詢問:在本地將未修改的 agy 二進位檔案作為子進程呼叫是否符合第 6 條規定。2026 年 10 月中旬,Google 在未修改《附加服務條款》第 6 條的情況下,向《官方 FAQ》頁面(https://antigravity.google/docs/faq/)添加了以下條目 [13][36]:
「我能否在第三方編程智能体中使用 Antigravity CLI 無頭模式或自動切換賬號?
Antigravity CLI 無頭模式(agy -p)旨在用于直接腳本編寫与 CI 工作流。在個人消費者計划下,不支援將 agy 包裝在第三方編程智能体或應用程式內部,也不支援自動輪換賬號。」
— 《Google Antigravity 官方 FAQ》(2026 年 10 月中旬更新)[13](來源鏈接)
4.2 第一階段(2026 年 9 月 16 日至 10 月 8 日 1623 UTC)— Google 工作人員連續十次書面合規确認
在 2026 年 9 月 16 日至 2026 年 10 月 8 日 16:23 UTC 期間,三位 Google 官方支援工程師(@Rebbanpalli_Naveen、@Ambati_Rajendra 与 @chunduriv)在多個獨立的論壇主題帖中連續發出了 10 次書面确認,明确說明只要不提取或代理 OAuth 憑据,在本地將未修改的 agy / agy.exe 二進位檔案作為子進程呼叫——無論是由開源工具、個人編排器、OpenAI Codex 還是 Anthropic Claude Code 啟動——均符合第 6 條規定 [23][24][26][27][28][29][30][31][32][33]。下表按時間順序記錄了全部 10 次書面确認:
| # | 論壇帖子 ID 与標題 | 回覆時間 (UTC) | 提問者与場景 | Google 工作人員 | 核心官方裁定原文譯文摘錄 | 引用 |
|---|---|---|---|---|---|---|
| 1 | #175905 — 為開放標准編輯器橋接(如 ACP)對 agy CLI 進行本地 IPC/PTY 包裝是否符合 ToS? |
2026-09-16 12:45:42 | @shindgew:開源項目 agy-acp 透過本地單用戶子進程/PTY 包裝未修改的 agy 以連接 Zed/Neovim |
@Rebbanpalli_Naveen |
「是的,你描述的模式符合規定。服務條款對第三方訪問工具的限制旨在防範憑据竊取、非官方 API 逆向工程与多租戶代理。在用戶自己的 agy 登錄會話下,將官方未修改的 agy 二進位檔案作為單用戶本地子進程/PTY 啟動符合規定……」 |
[23] |
| 2 | #183429 — 允許開源工具以無頭模式呼叫官方 agy CLI 嗎? |
2026-09-17 12:06:16 | @darkest_alex:開源 Python 工具 sprite-gen 在本地呼叫 agy --output-format json -p |
@Ambati_Rajendra |
「允許以無頭模式呼叫 agy 嗎?是的。透過 agy -p 在本地呼叫官方 agy 二進位檔案是為程式化腳本构建的官方受支援功能……只要你的工具從不提取、存儲或攔截用戶的 OAuth 憑据,它就不違反第 6 條。」 |
[24] |
| 3 | #185494 — 由另一個 AI 編程工具透過腳本啟動的無頭 agy 運行是否符合附加條款? |
2026-09-28 07:14:31 | @Diggy_Styon:在 Google AI Pro 下,由另一個 AI 編程助手啟動運行 agy -p 的腳本(含呼叫計划內的 Claude 模型) |
@Ambati_Rajendra |
「是的,你的使用場景是允許的。在你自己的賬號下于本地運行官方 agy 二進位檔案(即使透過腳本以無頭模式運行)符合條款規定……只要你執行的是未修改的 agy CLI 且沒有將認證權杖代理到其他應用中,就完全沒問題(you are good to go)!」 |
[27] |
| 4 | #185460 — 同一人擁有多個付費 Google AI Pro 賬號:本地編排器能否配合官方 agy CLI 使用它們? |
2026-09-28 12:22:17 | @Winez:Windows 11 本地單用戶編排器將未修改的 agy 作為子進程呼叫 |
@Ambati_Rajendra |
「雖然我們允許為個人用途在本地將官方 agy CLI 作為子進程運行(只要你使用的是單個個人賬號並直接与之交互),但使用編排器在多個 Google AI Pro 賬號之間輪換……屬于直接違規行為……」 |
[26] |
| 5 | #185992 — 在個人 Google AI 賬號下,允許從本地 AI 編程助手呼叫官方 agy CLI 嗎? |
2026-09-30 23:25:25 | @Ivan_Valenzuela:Anthropic 的 Claude Code 在 Windows 上將 agy.exe 作為子進程啟動并透過 stdio 讀寫 JSON |
@chunduriv |
「在個人賬號下,允許從本地助手以無頭模式呼叫未修改的 agy.exe 二進位檔案嗎?允許(Yes)。第 6 條……禁止在第三方框架內部提取、代理或重用 Antigravity OAuth 憑据以直接呼叫 Antigravity 的後端端點。」 |
[28] |
| 6 | #185949 — 關于 Codex/Claude Skill 透過本地 PowerShell 包裝腳本呼叫官方 agy CLI 的合規确認 |
2026-10-02 20:20:25 | @nothing2:Codex CLI 或 Claude Code -> 本地 Skill -> scripts/invoke.ps1 -> 官方未修改的 agy CLI |
@Ambati_Rajendra |
「簡短回答:是的,你的配置沒有問題。……Codex 或 Claude 呼叫該 Skill:允許,只要它向 agy 發送的是真實任務(如代碼審查或調研提示詞),且 agy 使用你自己的本地登錄運行。」 |
[29] |
| 7 | #186954 — 根据附加條款第 6 條,允許從本地 AI 編排器自動啟動官方 agy CLI 嗎? |
2026-10-05 10:17:42 | @local_ai_builder:本地編排器將未修改的 agy 作為子進程自動啟動 |
@Rebbanpalli_Naveen |
「是的,你描述的單用戶本地工作流透過官方 CLI 無頭模式獲得支援。本地子進程与第 6 條對比:是的,這是允許的,且存在實質性區別。」 | [30] |
| 8 | #186952 — 允許從 Codex 呼叫官方 Antigravity CLI 嗎? |
2026-10-05 10:24:45 | @Hossy:Windows 電腦上的 OpenAI Codex 透過 stdin/stdout 將未修改的 agy.exe 作為本地進程呼叫 |
@Rebbanpalli_Naveen |
「是的,你描述的工作流在你的個人 Google AI Pro 訂閱下完全可以使用。……讓 Codex 在你的 Windows 電腦上將官方、未修改的 agy.exe 二進位檔案作為本地進程呼叫——同時身份驗證(agy auth login)和所有後端通信嚴格保留在 agy.exe 內部——是 CLI 無頭模式的受支援用法。」 |
[31] |
| 9 | #186246 — 本地 AI 協調器能否使用訂閱登錄啟動官方 Antigravity CLI? |
2026-10-07 15:03:46 | @Croixofwar:Claude Code 或自定義本地協調器將未修改的 agy 作為子進程啟動 |
@chunduriv |
「1. 根据第 6 條,允許將官方 agy CLI 作為本地子進程啟動嗎?允許。……2. 如果你自己啟動腳本与由 Claude Code 啟動它,答案會改變嗎?不會。從政策角度來看,未修改的 agy 子進程究竟是由你自己的腳本、本地協調器,還是由另一個本地編程助手(如 Claude Code)啟動,沒有任何區別……」 |
[32] |
| 10 | #187536 — 條款确認:個人 Antigravity CLI 与多 AI 編排器的集成 |
2026-10-08 16:23:34 | @BuddhaRyu:私有 Linux 伺服器在 agy、OpenAI Codex 与 Claude Code 之間編排自動化任務交接 |
@Ambati_Rajendra |
「從你的編排器運行 agy:允許。……在 agy、Codex 与 Claude Code 之間進行任務交接:允許。在你自己的項目中于不同工具之間傳遞諸如代碼差异(diffs)或審查筆記之類的結果是沒有問題的……适用第 6 條嗎?不适用。只有官方 agy 程式在你自己的登錄下与 Antigravity 通信……」 |
[33] |
4.3 第二階段(2026 年 10 月 8 日 1734 UTC 至 11 月 2 日)— 政策反轉、FAQ 更新与限制範圍擴大
2026 年 10 月 8 日 17:34:41 UTC——距帖子 #187536 中的第 10 次确認僅隔 71 分鐘,距 @chunduriv 本人在帖子 #186246 中的确認僅隔 26 小時 31 分鐘——@chunduriv 在帖子 #187241 中回覆了提出相同問題(從 Codex 呼叫 agy)的 Google AI Pro 年度訂閱用戶 @ALAMDAR_BALOCH,附上了法律免責聲明並推翻了此前的指導意見 [34]:
- 1. 首次口徑反轉与封號警告(
#187241,2026 年 10 月 8 日 17:34 UTC)[34]:@chunduriv表示,盡管agy為用戶自己的本地腳本和 CI 管線提供了文檔化的無頭模式(agy -p),但「在個人消費者登錄下,我們不支援使用第三方編程智能体(如 Codex、Claude Code、OpenClaw 或 OpenCode)來編排或包裝agy。透過 Antigravity 路由第三方智能体提示詞或自動化循環可能會触發自動 ToS 執法与賬號封禁。」 - 2. 宣布 FAQ 取代此前工作人員的回覆(
#189905,2026 年 10 月 16 日)[35]: 當開發者@Amane2418指出网站 FAQ 与此前工作人員在#185992等帖子中的回覆存在衝突時,@Rebbanpalli_Naveen回覆稱:「Antigravity FAQ 反映了我們當前針對 Antigravity CLI 無頭模式的政策,凡有不一致之處,均以 FAQ 為准并取代早期的論壇評論」,並補充說明,即使作為本地子進程呼叫未修改的agy二進位檔案且不提取 OAuth 權杖,只要將其包裝在 Claude Code、Codex、OpenClaw 或 OpenCode 內部,即違反服務條款。 - 3. 确認正式《服務條款》未作修改(
#191689,2026 年 10 月 23–27 日)[36]: 在帖子#191689中,付費訂閱用戶@eliavb、@b_w(第 4 樓与第 6 樓)及@Tora39(第 7 樓)引用了#186952与#186246,并要求出示 10 月 5 日之後修改過《服務條款》的證据。@Rebbanpalli_Naveen在第 8 樓(10 月 27 日 12:31 UTC)确認:「《Google Antigravity 服務條款》本身在 9 月之後並未修改,而是在 2026 年 10 月中旬更新了《官方 FAQ》,新增了『我能否在第三方編程智能体中使用 Antigravity CLI 無頭模式或自動切換賬號?』一節……在該 FAQ 條目發布之前,#186246与#186952中的早期論壇回覆給出了過于寬泛的解釋。」 - 4. 限制範圍擴大至本機檔案任務交接、獨立 Python 協調器与無人值守腳本(
#190815、#196472、#190756,2026 年 10 月 28–29 日)[38][39][40]: 在隨後的帖子中,Google 工作人員裁定:(a)由 Claude Code 將任務文件寫入本地資料夾,再由獨立 Python 腳本讀取并傳給agy -p,「仍然算作第三方智能体協調」,必須使用付費 Gemini API 金鑰或 Gemini Enterprise(#190815)[38];(b)在個人消費者登錄下,不支援從獨立的本地 Python 任務協調服務啟動agy -p(#196472)[40];以及(c)在個人消費者計划下,不支援使用無人值守或事件驅動的後台監控腳本呼叫agy -p,即使設置了本地速率限制也可能触發自動封禁(#190756)[39]。
4.4 操作系統級檢測邊界、協議差异与賬號申訴記錄
用戶端可執行文件的靜態二進位檢查与官方論壇上的開發者討論共同指出了圍繞無頭模式政策執法的三個技術与運營問題:
- 1. 用戶端缺乏本地檢測机制与操作系統層面的不可區分性 [35][39]: 對桌面端
language_server.exe(v2.29.0)和 CLIantigravity(v1.5.0/v1.5.1)的全二進位字符串与符號審計證實,代碼中檢查CLAUDECODE/CLAUDE_CODE環境變數、檢查父進程或非 TTY 反自動化檢測的命中次數均為 0(全部 13 個BOT_CHECK_*字符串均屬于瀏覽器 CAPTCHA 處理指令,而Getppid/isatty為標准 Go 運行時符號)。正如開發者@oli_hlmpn在帖子#190756中指出的那樣,在操作系統層面,agy僅能看到bash、powershell或python3作為其父進程,無法區分提示詞字符串或本地.md文件是由人工編寫還是由其他工具輔助生成 [39],且 CLI 在被呼叫時也不會顯示任何警告資訊 [35]。 - 2. agy acp(允許 stdio)与 agy -p(禁止 stdio)之間的政策差异 [11][39][41]: 在論壇帖子
#197131(2026 年 11 月 2 日)与 CLI v1.5.0(2026 年 11 月 4 日)中,Google 官方允許第三方用戶端与編輯器(如 Zed、Neovim 和 T3 Code)使用個人訂閱 OAuth 登錄(oauth-personal)透過stdio啟動agy acp[11][41],但在同一個人訂閱下透過stdio啟動agy -p --output-format stream-json卻被歸類為違反服務條款。 - 3. cloudcode-pa.googleapis.com 的後端執法与超過 100 天未解決的申訴 [8][9][10][45]: 賬號封禁在
cloudcode-pa.googleapis.com网關處透過 HTTP 403PERMISSION_DENIED(原因:TOS_VIOLATION)強制執行,該限制會同時禁用用戶 Google 賬號下的 Antigravity 桌面端、Antigravity IDE、agyCLI、@google/gemini-cli和 Gemini Code Assist [8][9][10]。盡管 Discussion #20632 聲明首次被標記的用戶在提交重認證表單後會在 1–2 天內自動恢復訪問權限 [9],但 GitHub Issue #927(@jlwainwright,自 2026 年 5 月 25 日起被封禁超過 100 天,Google One 工單號2-9245000040533)以及 Issue #29576 / 論壇#186089(@myessaylab1234)記錄表明,解封同步在很長一段時間內未能恢復訪問,同時 Google One 客服与 Google 開發者資料支援團隊均表示 ToS 封禁超出其處理權限 [8][10][45]。
5. 原始引語与一手記錄檔案
本節匯編了本報告所審查的 GitHub Issues #1245、#878、#1291 以及 Google AI 開發者論壇帖子中的一手原文摘錄及其精确時間戳与來源鏈接。
5.1 關于 256K(0x3E800)二進位鉗制、70 秒壓縮与 3 倍配額比的原始引語
引語 1.1 — @LiraNuna 關于二進位門禁 #1 与編譯期移除 AGY_CLI_AUTO_COMPACT_OVERRIDE 的分析(2026-10-22)
「在 /model 菜單中,其實已經具備選擇壓縮上限的完整 UI 和後端支援:Context: Default (256K) | 256K | [512K] | 900K(透過 Tab 鍵循環切換)。然而在 SelectorModel.offersContextWindow 中,用戶端會將所選模型与一個內部白名單切片進行比對。在發布版二進位檔案中,該切片被硬編碼為僅包含 "Gemini 4 Argon"。對于其他模型(如 Gemini 3.8 Flash),offersContextWindow 返回 false,這會完全隱藏 Context 標籤并導致 Tab 按鍵處理函式被忽略。
為什么 AGY_CLI_AUTO_COMPACT_OVERRIDE 不起作用:在 store.AutoCompactOverride() 中,代碼原本設計為解析百分比(如 80%)或整數 Token 數量。然而在編譯後的發布版二進位檔案中,對 os.Getenv("AGY_CLI_AUTO_COMPACT_OVERRIDE") 的呼叫在編譯期被裁掉/內聯成了空字符串 ""(xor %eax, %eax; xor %ebx, %ebx; call strings.TrimSpace)。由于 strconv.ParseInt("", 10, ...) 總是失敗,AutoCompactOverride() 會無條件返回空字符串(無覆蓋)。」
— @LiraNuna,GitHub google-antigravity/antigravity-cli Issue #1245 Comment #5,2026-10-22 16:37:11 UTC [1](來源鏈接)
引語 1.2 — @LiraNuna 關于二進位門禁 #2 与 Cortex 引擎 0x3E800(256,000)匯編鉗制的分析(2026-10-23)
「1. Store.ContextWindow() 會丟棄非 Argon 模型的選擇:盡管 UI 將 "contextWindow": "512K" 保存到了 settings.json 中,但 store.(*Store).ContextWindow() 包含針對 "Gemini 4 Argon" 的第二次完全相同的白名單檢查。對于所有其他模型(如 Gemini 3.8 Flash),它會直接中止并返回 ("", 0),根本不讀取已保存的設置……因此,Manager.syncContextWindow() 呼叫了 backend.SetContextWindow(""),後端永遠不會收到 512K/900K 的選擇。
2. Cortex 在壓縮触發器上有一個硬編碼的 256K(0x3e800)上限:即便後端收到了上下文視窗限制,Cortex 的檢查點計算器(cortex/utils/utils.GetCheckpointConfig)也會顯式鉗制多輪對話級聯的壓縮触發閾值(TokenThreshold):
7861894: mov 0x4c(%rsp), %edx # Calculated threshold (context - 40,000 margin)
7861898: cmp $0x3e800, %edx # 0x3e800 == 256,000 tokens
786189e: mov $0x3e800, %esi
78618a3: cmovb %edx, %esi # Clamps to min(calculated, 256000)
78618a6: mov %esi, 0x50(%rsp) # Writes 256,000 to TokenThreshold!由于 cmovb 指令的存在,任何大于 256,000 Tokens 的計算閾值都會被鉗制到 256,000 Tokens。」
— @LiraNuna,GitHub google-antigravity/antigravity-cli Issue #1245 Comment #6,2026-10-23 01:37:57 UTC [1](來源鏈接)
引語 1.3 — @Circumsized 關于 SQLite max_context_tokens = 256000 及壓縮与請求前截斷區別的分析(2026-10-15)
「每次模型呼叫都會向 ~/.gemini/antigravity-cli/conversations/<session-id>.db 會話資料庫中寫入一條 ContextWindowMetadata 記錄。在運行 Gemini 4 Argon 的 agy 1.3.5 上,本報告中 Token 驟降前夕的呼叫記錄顯示:max_context_tokens = 256000,truncation_reason = 2,而与此同時 /context 卻報告 1.0M 視窗。因此,這不是伺服器拒絕了任何內容,也不是模型的視窗限制:這是用戶端在發送請求前寫入自身請求中繼資料的數字。256,000 恰好是 1,048,576 的 25%——視窗的一個整數分數,這指向一個策略常數而非技術上限。
目前存在兩种不同的机制,其中只有一种是壓縮:
- 壓縮(Compaction)——歷史記錄被替換為散文式摘要,並帶有 CHECKPOINT: "# Resuming from a compaction..." 標記。這是報告中描述的有損情況。
- 請求前截斷(Pre-flight truncation)——當對話接近 max_context_tokens 時,早期歷史記錄在發出請求前就被從請求中裁剪掉。不生成摘要,不出現檢查點標記,從那次請求開始,精确內容便不再存在于請求中。」
— @Circumsized,GitHub google-antigravity/antigravity-cli Issue #1245 Comment #2,2026-10-15 19:35:43 UTC [1](來源鏈接)
引語 1.4 — Eddy Murias (@murias002) 關于 310 個會話与 65,613 次模型呼叫的統計(2026-10-05)
「會話數:310 | 模型呼叫次數:65,613(86.6% 在 Gemini 3.8 Flash 上)| 單次呼叫輸入 Tokens:p50 136,487 · p90 229,000 · 最大值 255,999 | 超過 300k 輸入 Tokens 的呼叫:0 | 壓縮事件(下降 > 40%):276 | 壓縮前瞬間的上下文:中位數 255,070(p10 247,360 · p90 255,874)| 壓縮後瞬間的上下文:中位數 45,304。
因此,在一個支援約 1M Tokens 的模型上,會話總是被固定在大約 256k 處進行摘要,無論是 ~/.gemini/antigravity-cli/settings.json、CLI 參數還是環境變數都無法改變它。」
— Eddy Murias (@murias002),GitHub google-antigravity/antigravity-cli Issue #878 Comment #2,2026-10-05 00:51:10 UTC [3](來源鏈接)
引語 1.5 — @Emily2040 關于 1,279 次模型呼叫、22 個檢查點与 70 秒中位壓縮停頓的測量(2026-10-19)
「數据:在 1.4.0–1.4.2 版本使用 Gemini 4 Argon High 運行的 15 份無頭 stream-json 日志(1,279 次模型呼叫)中,共触發了 22 個檢查點步驟,每一個檢查點前一步呼叫的上下文都介于 235k 至 268k Tokens(input + cache_read)之間,從未高于該範圍。這与上方從請求中繼資料中讀取的 256,000 常數一致。每個檢查點中位耗時 70 秒(35–224 秒,其中一次為 602 秒),未報告摘要呼叫的用量,且隨後都緊跟一次 45–70k 的未快取呼叫以重建快取。」
— @Emily2040,GitHub google-antigravity/antigravity-cli Issue #1245 Comment #4 & Issue #1291,2026-10-19 [1][4](來源鏈接)
引語 1.6 — @Yiji_Kong 關于 Argon 3.0 倍配額消耗的實測与 @Maniraj_Chervirala 的官方回應(2026-10-28 & 10-29)
「按各模型公佈的 API 价格歸一化後,Argon 每美元消耗的配額恰好是 Flash 的 3.0 倍。如果 Flash 按其公佈的价格計費,則隱含的配額桶大小約為 150 USD,而 Argon 的消耗相當于每百万輸入/輸出 Tokens 6.00 / 30.00 USD(宣傳的 2.00 / 10.00 首發价的 3 倍)……上下文壓縮模型呼叫不會出現在軌跡 Token 中繼資料中,因此其配額成本對用戶是不可見的。
在步驟 1C 中,在 4 Argon (Low) 的新對話中僅發送一句 "Reply with only the word: OK"(28 字符)就消耗了 +0.00015849 的週配額(約占 5 小時池的 0.32%),這比 3.8 Flash (High) 撰寫一篇完整的 4,013 詞 Paxos 与 Raft 技術文章(+0.00014157)還要多出 12%。」
— @Yiji_Kong,Google AI 開發者論壇帖子 #196351 第 1 樓与第 5 樓,2026-10-28 至 2026-10-29 [42](來源鏈接)
「Gemini 4 Argon 相比 Gemini 3.8 Flash 更高的訂閱配額消耗是符合預期的:https://ai.google.dev/gemini-api/docs/pricing 上的每 Token 促銷費率僅适用于按量付費 API 計費,而 5 小時与週訂閱限額反映的是可用容量、模型算力与總智能体工作量,而非匹配 API Token 挂牌价……固定的單模型配額乘數不予公佈,因為訂閱限額會隨系統容量動態調整。」
— Google 工作人員 @Maniraj_Chervirala,Google AI 開發者論壇帖子 #196351 第 6 樓,2026-10-29 [42](來源鏈接)
引語 1.7 — u/Lberondroth 關于桌面端 v2.29.0 上下文与配額指示器的拆包記錄(2026-11-03)
「『Resets in...』以及『Your plan's baseline contingent will refresh on...』。取而代之提供的是上下文与配額指示器(Context and contingent Indicator),讓你很快就能在發送按鈕旁看到配額的實時消耗情況……」
— u/Lberondroth,Reddit r/google_antigravity 帖子 #1xn624i,2026-11-03 [17](來源鏈接)
5.2 agy -p 政策反轉前的原始引語(确認子進程呼叫合規)
引語 2.1 — @Ambati_Rajendra 确認開源工具呼叫 agy -p 不違反第 6 條(2026-09-17)
「允許以無頭模式呼叫 agy 嗎?是的。透過 agy -p 在本地呼叫官方 agy 二進位檔案是為程式化腳本构建的官方受支援功能(參見無頭模式文檔)。只要你的工具從不提取、存儲或攔截用戶的 OAuth 憑据,它就不違反第 6 條。正如 Antigravity FAQ 与服務條款中所述,該限制專門針對攔截權杖以代理私有端點的未經授權第三方用戶端。」
— Google 工作人員 @Ambati_Rajendra,Google AI 開發者論壇帖子 #183429 第 2 樓,2026-09-17 12:06:16 UTC [24](來源鏈接)
引語 2.2 — @Ambati_Rajendra 确認從另一個 AI 編程工具透過腳本啟動 agy -p 是允許的(2026-09-28)
「是的,你的使用場景是允許的。在你自己的賬號下于本地運行官方 agy 二進位檔案(即使透過腳本以無頭模式運行)符合條款規定。針對第三方軟體的限制嚴格适用于攔截或提取你的 Antigravity OAuth 權杖以繞過官方用戶端的未經授權工具(如 OpenClaw)。只要你執行的是未修改的 agy CLI 且沒有將認證權杖代理到其他應用中,就完全沒問題(you are good to go)!」
— Google 工作人員 @Ambati_Rajendra,Google AI 開發者論壇帖子 #185494 第 2 樓,2026-09-28 07:14:31 UTC [27](來源鏈接)
引語 2.3 — @Rebbanpalli_Naveen 确認從 OpenAI Codex 呼叫 agy.exe 屬于官方支援用法(2026-10-05)
「是的,你描述的工作流在你的個人 Google AI Pro 訂閱下完全可以使用。以下是關于這如何符合我們政策的具体細節:
第 6 條与官方 CLI 用法:《Google Antigravity 附加服務條款》第 6 條和我們的第三方軟體 FAQ 專門旨在防止第三方框架提取、代理或重用 Antigravity OAuth 憑据來直接呼叫私有後端端點。讓 Codex 在你的 Windows 電腦上將官方、未修改的 agy.exe 二進位檔案作為本地進程呼叫——同時身份驗證(agy auth login)和所有後端通信嚴格保留在 agy.exe 內部——是 CLI 無頭模式的受支援用法。」
— Google 工作人員 @Rebbanpalli_Naveen,Google AI 開發者論壇帖子 #186952 第 2 樓,2026-10-05 10:24:45 UTC [31](來源鏈接)
引語 2.4 — @chunduriv 聲明「由你自己的腳本還是由 Claude Code 啟動 agy 沒有任何區別」(2026-10-07 15:03 UTC)
「1. 根据第 6 條,允許將官方 agy CLI 作為本地子進程啟動嗎?允許。使用你自己的個人 Google AI 訂閱登錄,為你自己的個人工作在本地以無頭模式運行官方、未修改的 agy 二進位檔案(例如 agy -p "<prompt>" --output-format json 或 stream-json)是允許的。
2. 如果你自己啟動腳本与由 Claude Code 啟動它,答案會改變嗎?不會。從政策角度來看,未修改的 agy 子進程究竟是由你自己的腳本、本地協調器,還是由另一個本地編程助手(例如 Claude Code)啟動,沒有任何區別,前提是:
- 所有 Antigravity 服務訪問均完全透過未修改的官方 agy 二進位檔案(或官方 Antigravity Python SDK)進行。
- 沒有任何 OAuth 權杖、Cookie 或憑据被提取、讀取或傳遞給外部工具。
- 該配置嚴格用于你自己的個人、單用戶工作流,不進行共享、池化或作為多用戶服務對外暴露。」
— Google 工作人員 @chunduriv,Google AI 開發者論壇帖子 #186246 第 2 樓,2026-10-07 15:03:46 UTC(政策反轉前 26.5 小時)[32](來源鏈接)
5.3 agy -p 政策反轉後的原始引語(FAQ 取代舊回覆与确認未修改服務條款)
引語 3.1 — @chunduriv 在 26.5 小時后推翻立場並警告賬號封禁(2026-10-08 17:34 UTC)
「雖然我們無法提供針對《服務條款》的正式法律解釋……關于讓 Codex 呼叫 agy CLI:盡管 agy 為你自己的本地腳本和 CI 管線提供了文檔化的無頭模式(agy -p),但在個人消費者登錄下,我們不支援使用第三方編程智能体(如 Codex、Claude Code、OpenClaw 或 OpenCode)來編排或包裝 agy。透過 Antigravity 路由第三方智能体提示詞或自動化循環可能會触發自動 ToS 執法与賬號封禁。」
— Google 工作人員 @chunduriv,Google AI 開發者論壇帖子 #187241 第 2 樓,2026-10-08 17:34:41 UTC [34](來源鏈接)
引語 3.2 — @Rebbanpalli_Naveen 聲明 FAQ 取代早期的論壇評論(2026-10-16)
「當前官方指導意見:Antigravity FAQ 反映了我們當前針對 Antigravity CLI 無頭模式的政策,凡有不一致之處,均取代早期的論壇評論。……將 agy 包裝在第三方編程智能体或應用程式(Claude Code、Codex、OpenClaw、OpenCode)內部——不支援:在個人消費者計划下不允許。即使你將官方、未修改的 agy 二進位檔案作為本地子進程呼叫,且沒有提取 OAuth 權杖或逆向工程內部端點,在個人消費者計划下也不支援將 agy 包裝在第三方編程智能体或應用程式內部或自動輪換賬號(見 FAQ —— 第三方編程智能体中的無頭模式)。使用第三方編程智能体或工具(如 Claude Code、OpenClaw 或 OpenCode)訪問 Antigravity 違反我們的服務條款,可能導致賬號被暫停或終止。」
— Google 工作人員 @Rebbanpalli_Naveen,Google AI 開發者論壇帖子 #189905 第 2 樓,2026-10-16 12:35:16 UTC [35](來源鏈接)
引語 3.3 — 帖子 #191689 中确認《服務條款》在 9 月之後未作修改的交鋒記錄(2026-10-26 & 10-27)
「Codex 与 OpenClaw 的對比以及為何早期回覆(#186952)存在差异:Codex 与 OpenClaw 之間沒有區別,在個人消費者 Google 賬號登錄下,不支援讓其中任何一個工具呼叫 agy / agy.exe。在 #186952 中 10 月 5 日的那條回覆發布之後,關于在第三方編程智能体中使用 Antigravity CLI 無頭模式的政策進行了更新,明确闡明在個人消費者計划下不支援將 agy 包裝在第三方編程智能体或應用程式內部。這一更新後的政策取代了 #186952 中的早期指導意見,並同等适用于 Codex、OpenClaw、Claude Code 与 OpenCode。」
— Google 工作人員 @Rebbanpalli_Naveen,Google AI 開發者論壇帖子 #191689 第 5 樓,2026-10-26 11:24 UTC [36](來源鏈接)
「你寫道『在 #186952 中 10 月 5 日的那條回覆發布之後,關于在第三方編程智能体中使用 Antigravity CLI 無頭模式的政策進行了更新』——請問能否向我指出這方面的證据?我找不到任何在 10 月 5 日之後有過政策更新的證据。該鏈接只是把我引導到了一個常見問題解答(FAQ)頁面。我能找到的最近一次服務條款更新是在 9 月份。」
— 訂閱用戶 @b_w,Google AI 開發者論壇帖子 #191689 第 6 樓,2026-10-26 20:08 UTC [36](來源鏈接)
「為了向 @b_w 澄清時間線并回答 @Tora39 的問題 (a):《Google Antigravity 服務條款》本身在 9 月之後並未修改;而是在 2026 年 10 月中旬更新了《官方 FAQ》,新增了『我能否在第三方編程智能体中使用 Antigravity CLI 無頭模式或自動切換賬號?』一節。該 FAQ 條目反映了當前針對個人消費者計划(Free、Plus、Pro 和 Ultra)的政策……在該 FAQ 條目發布之前,#186246 与 #186952 中的早期論壇回覆給出了過于寬泛的解釋。」
— Google 工作人員 @Rebbanpalli_Naveen,Google AI 開發者論壇帖子 #191689 第 8 樓,2026-10-27 12:31 UTC [36](來源鏈接)
引語 3.4 — @Ambati_Rajendra 裁定透過本地磁碟檔案傳遞任務同樣被禁止(2026-10-28)
「不允許。根据 FAQ 与《附加條款》,在個人消費者計划下,不允許將 agy -p 作為由 Claude Code 等第三方編程智能体協調的次級工作節點(secondary worker)使用……這仍然算作第三方智能体協調。透過本機檔案而非 stdin/stdout 管道將任務從 Claude Code 傳遞給 agy -p,仍然是在將個人消費者配額用作外部編程智能体的後端工作節點,因此需要 Gemini API 金鑰或 Gemini Enterprise。」
— Google 工作人員 @Ambati_Rajendra,Google AI 開發者論壇帖子 #190815 第 2 樓,2026-10-28 13:10:46 UTC [38](來源鏈接)
6. 被分析官方二進位檔案、GitHub Issue 記錄、研究邊界与完整參考信源
6.1 被分析官方二進位檔案与加密校驗雜湊
歸檔倉庫中不托管任何二進位可執行文件。本報告所檢查的全部原始二進位檔案均可直接從 Google 官方云存儲(storage.googleapis.com/antigravity-public)下載,并与以下 SHA-256 及 SHA-512 摘要進行核對:
| 組件 | 版本 / 平台 | 官方下載直鏈 / 來源 | 檔案大小与加密校驗雜湊 |
|---|---|---|---|
| 桌面端安裝包 | v2.29.0 (Windows x64) | https://storage.googleapis.com/antigravity-public/antigravity-hub/2.29.0-5723181030440960/windows-x64/Antigravity-x64.exe | 169,295,640 字節 | SHA-256: 944b109bcb377f9f94f86eeea7cfa9315d4b42d84fb9d5bad689058fc11c12ba |
| 桌面端語言服務程式 | v2.29.0 (resources/bin/language_server.exe) |
捆綁于上方 Antigravity-x64.exe 內部的 app-64.7z 中(PE32+ x86-64,214,663 個 pclntab 符號) |
187,342,336 字節 | SHA-256: c98e7c331da5bcc37002a550e7d625b4c636f775fa2804f73777c6a500e1c3d5 |
| CLI 發布壓縮包 (v1.5.0) | v1.5.0 (Linux x64, 2026-11-04) | https://storage.googleapis.com/antigravity-public/antigravity-cli/1.5.0-5269980577660928/linux-x64/cli_linux_x64.tar.gz | 壓縮包:69,781,910 字節(antigravity 二進位檔案:238,604,688 字節,BuildID 5fb6af4f2e1d489f3ada0fd785060f48)| SHA-512: e6031f850929210705d8c2393a5665b82b8c3b19684a6d3c556cafa31f26f77acbf164dfee96ca84a5ae7670ac0cc238a974c981c517b269194bdccff271cbd5 |
| CLI 二進位檔案 (v1.5.1) | v1.5.1 (Linux x64, 2026-11-05) | 官方自動更新器發布版本(https://github.com/google-antigravity/antigravity-cli/blob/main/CHANGELOG.md) | 240,857,488 字節(BuildID 696031ae34e5e5e26a9d7c436e85317f)| SHA-256: 72738cf0445918483956a5f0da33abdfcfb21a12dd9a421fd57d063782826669 |
| CLI 安裝腳本与清單 | 跨平台 / Linux amd64 | https://antigravity.google/cli/install.sh | https://antigravity-cli-auto-updater-974169037036.us-central1.run.app/manifests/linux_amd64.json | install.sh:7,643 字節(已歸檔于 evidence/raw/install.sh 与 manifest_linux_amd64.json) |
6.2 公開 GitHub Issue 記錄(google-antigravity/antigravity-cli)
下表列出了透過 GitHub API(gh api)核實并歸檔于 evidence/raw/ 中的 google-antigravity/antigravity-cli 倉庫全部 10 個相關 GitHub Issues:
| Issue # | 標題 | 提交者与提交日期 | 狀態与負責人 | 關鍵技術貢獻与評論者 |
|---|---|---|---|---|
#1245 |
[Bug]: Premature ~250K context compaction on 1M-context models drops exact symbol/schema context and invalidates prompt cache |
@Burntgogi (2026-10-14) |
open | @chandrashakherkamasani(標記為 feedback,無 bug 標籤) |
94 輪 Argon 遙測 (@Burntgogi); 環境變數覆蓋測試 (@NuCl34R); SQLite max_context_tokens=256000 与請求前截斷 (@Circumsized); 1,279 次呼叫 / 70 秒檢查點審計 (@Emily2040); 3 道二進位門禁反匯編与 patch_agy.py (@LiraNuna); AUR 軟體包 (@AsabaLazy)。22+ 個贊同。 |
#878 |
[Feature Request]: Disable automatic context auto-compaction and unlock full 1M context window |
@schalatap (2026-08-26) |
open | @manirajc(標記為 feature request) |
310 個會話 / 65,613 次呼叫的 SQLite 審計,顯示最大輸入 255,999 且 >300K 呼叫為 0 (@murias002); AntigravityCompactionConfig.token_threshold 檢查 (@Corsagee); 1.3.5 無頭壓縮日志 (@Infinnerty); 多段上下文丟失 (@jlukic)。22 個贊同。 |
#1371 |
[Feature Request] User-configurable auto-compaction threshold in the desktop app (~256K hardcoded while the model window is 1M) |
@floveey (2026-10-30) |
open | @manirajc 官方回覆 |
報告桌面端應用中的約 256K 壓縮;@manirajc 將桌面端/IDE 請求引導至 Google AI 開發者論壇;@LiraNuna 關聯了 #1245。 |
#1291 |
[Bug]: Five measured places the CLI spends time and tokens the work does not need |
@Emily2040 (2026-10-19) |
open | @chandrashakherkamasani(標記為 feature request, feedback) |
量化了來自 17 次運行中途前綴未命中(15 次發生在 system_message 之後)的 31.0% 未快取輸入、22 個檢查點中位耗時 70 秒的壓縮、11.3–12.2 秒無頭啟停開銷,以及每 1.5–3.3 秒重寫一次摘要儲存檔案。 |
#1072 |
[Feature Request]: Lack of aggressive context compaction / prompt caching burns the 5h and weekly quota far faster than token cost would suggest |
@flotoz (2026-09-20) |
open | @manirajc |
記錄了 Gemini 3.8 Flash Low 上比預期快 3 倍以上的配額消耗;被 @Emily2040 交叉引用。 |
#743 |
Feature Request: Add max_context_tokens setting to control per-turn token budget |
@thealgebraist (2026-08-03) |
open | @manirajc |
記錄了一個包含 379 個步驟的會話(610 KB 聊天記錄),其中約 70% 的 Tokens 為冗余的編譯器錯誤輸出。 |
#927 |
agy 1.1.23: 403 ToS eligibility block persists 100+ days after appeal form, no reinstatement sync |
@jlwainwright (2026-09-02) |
open | @manirajc |
記錄了自 2026 年 5 月 25 日起持續超過 100 天的 HTTP 403 PERMISSION_DENIED 封禁(Google One 工單號 2-9245000040533)。 |
#1316, #1372, #1367, #919 |
子代理壓縮控制 (#1316); 降級前主動警告 (#1372); /goal 循環消耗 37M Tokens (#1367); 軌跡死循環 (#919) |
@aeronmiles, @zhangr930103, @thhart, @ozl |
open | 佐證了無頭子代理壓縮控制需求、壓縮前預警需求以及 /goal 模式下的失控 Token 循環問題。 |
6.3 證据邊界与未核實驗證項
為嚴格區分已核實的用戶端/資料庫事實与未經核實的外部推斷,特作以下邊界說明:
- 1. 伺服器端對 512K/900K 檔位的處理: 盡管用戶端二進位檔案包含
512K(1.3x)和900K(1.8x,Expensive: true)字符串、Protobuf 欄位与 UI 選擇器,但僅憑用戶端二進位檔案無法核實解鎖 512K/900K 請求後的伺服器端實際處理方式与計費乘數。 - 2. 用戶端無子進程封號檢測器:
language_server.exe与agy均不包含CLAUDECODE/CLAUDE_CODE環境變數檢查、父進程檢查或非 TTY 反自動化檢查。TOS_VIOLATION的判定与封禁在cloudcode-pa.googleapis.com後端网關處執行。 - 3. 桌面端 Electron 前端(app.asar): 桌面端的靜態二進位驗證聚焦于
resources/bin/language_server.exe(187,342,336 字節),前端 Electron 打包字符串(如社群 ASAR 拆包比對中報告的enable-context-usage-indicator[17][18])均引自對應的社群拆包報告。 - 4. 復現命令: 所有二進位分析結果均可在 Linux x86-64 下使用標准工具復現:使用
sha256sum/sha512sum校驗二進位完整性,使用python3(標准庫struct以及mode=ro唯讀模式的sqlite3)解析 ELF/PE 節表与 Gopclntab,使用data.find(bytes.fromhex('81fa00e80300be00e803000f42f2'))定位0x3E800鉗制指令,並使用objdump -d -M intel進行指令反匯編。
6.4 完整參考信源索引([1]–[56] 与 [S1]–[S9])
以下為本檔案庫引用的全部 56 條主要信源([1]–[56])与 9 條補充驗證信源([S1]–[S9])完整清單:
[1] [Bug]: Premature ~250K context compaction on 1M-context models drops exact symbol/schema context and invalidates prompt cache (Issue #1245) — GitHub google-antigravity/antigravity-cli (@Burntgogi, @NuCl34R, @Circumsized, @Emily2040, @LiraNuna, @AsabaLazy; assignee: @chandrashakherkamasani) — 2026-10-14 to 2026-11-02
[2] Patch agy to unlock 512K/900K context window selection and fix early compaction (patch_agy.py) — GitHub Gist (@LiraNuna) — 2026-10-23
[3] [Feature Request]: Disable automatic context auto-compaction and unlock full 1M context window (Issue #878) — GitHub google-antigravity/antigravity-cli (@schalatap, @bash99, @murias002, @Corsagee, @Infinnerty, @jlukic; assignee: @manirajc) — 2026-08-26 to 2026-10-31
[4] [Bug]: Five measured places the CLI spends time and tokens the work does not need: serial tool calls, uncached full-context calls and 70 s compactions, 12 s headless overhead, summary store rewritten every 1.5 s, build-time CPU instruction choice (Issue #1291) — GitHub google-antigravity/antigravity-cli (@Emily2040; assignee: @chandrashakherkamasani) — 2026-10-19 to 2026-10-25
[5] [Feature Request]: Lack of aggressive context compaction / prompt caching burns the 5h and weekly quota far faster than token cost would suggest (Issue #1072) — GitHub google-antigravity/antigravity-cli (@flotoz, @Emily2040; assignee: @manirajc) — 2026-09-20 to 2026-10-19
[6] Feature Request: Add max_context_tokens setting to control per-turn token budget (Issue #743) — GitHub google-antigravity/antigravity-cli (@thealgebraist; assignee: @manirajc) — 2026-08-03
[7] Feature request: Support Gemini CLI-compatible OTLP/OpenTelemetry token usage export (Issue #366) — GitHub google-antigravity/antigravity-cli (@UesugiErii, @Mandark-droid, @evilfurryone, @rajatim, @Emily2040) — 2026-06-11 to 2026-10-20
[8] agy 1.1.23: 403 ToS eligibility block persists 100+ days after appeal form, no reinstatement sync (Issue #927) — GitHub google-antigravity/antigravity-cli (@jlwainwright; assignee: @manirajc) — 2026-09-02
[9] Addressing Antigravity Bans & Reinstating Access (Discussion #20632) — GitHub google-gemini/gemini-cli (Google Maintainer @jackwotherspoon) — 2026-02-27
[10] Appeal submitted but TOS_VIOLATION suspension persists (request for private follow-up) (Issue #29576) — GitHub google-gemini/gemini-cli (@myessaylab1234) — 2026-09-30
[11] Google Antigravity CLI Official Releases & Changelog (v1.4.2 – v1.5.1) — GitHub google-antigravity/antigravity-cli — 2026-10-18 to 2026-11-05
[12] Google Antigravity Docs — Changelog (v2.0.1 – v2.29.0) — Google Antigravity Official Documentation — 2026-11-03
[13] Google Antigravity Docs — Official FAQ — Google Antigravity Official Documentation — Updated Mid-October 2026
[14] Google Antigravity — Additional Terms of Service — Google LLC — Published September 2026
[15] Google Antigravity Docs — Workspace Rules (24 KB Per-File Limit & 20,000-Token Aggregate Rules Budget) — Google Antigravity Official Documentation — 2026-10
[16] Optimizing a 200,000-line Python codebase overnight with Gemini 4 Argon — Google Developers Blog — 2026-10
[17] [Teardown / Binary Diff] Antigravity Updated to v2.29.0 — Reddit r/google_antigravity (u/Lberondroth) — 2026-11-03
[18] [Deep-Dive] Antigravity v2.27.0 -> v2.28.1 Binary & ASAR Diff: 'Script Jail', the oneharness Migration, Teamwork Leaving Preview, and What's Coming Next — Reddit r/google_antigravity (u/Lberondroth) — 2026-10-28
[19] Timeline for enabling the 512k / 900k ContextWindowOptions and lifting the 256k autocompact clamp on Argon? (r/AntigravityGoogle) — Reddit r/AntigravityGoogle — 2026-11-02
[20] Timeline for enabling the 512k / 900k ContextWindowOptions and lifting the 256k autocompact clamp on Argon? (r/google_antigravity) — Reddit r/google_antigravity — 2026-11-02
[21] Antigravity's aggressive history compaction is ruining Gemini's 1M+ context selling point — Reddit r/google_antigravity — 2026-05-30
[22] How to force AG to use subagents? (Orchestrator + Ephemeral Subagents) — Reddit r/google_antigravity — 2026-07
[23] Clarification Request: Is local IPC/PTY wrapping of agy CLI for open-standard editor bridges (e.g., ACP) ToS compliant? (#175905) — Google AI Developers Forum (@shindgew; Official Reply: @Rebbanpalli_Naveen) — 2026-07-23 to 2026-09-16
[24] Is it allowed for an open-source tool to call the official agy CLI in headless mode? (#183429) — Google AI Developers Forum (@darkest_alex; Official Reply: @Ambati_Rajendra) — 2026-09-17
[25] Is using the official agy CLI through a local MCP server with third-party AI agents permitted? (#184829) — Google AI Developers Forum (@snowstone; Official Reply: @Ambati_Rajendra) — 2026-09-25
[26] One person, several paid Google AI Pro accounts: may a local orchestrator use them with the official agy CLI? (#185460) — Google AI Developers Forum (@Winez; Official Reply: @Ambati_Rajendra) — 2026-09-28
[27] Headless agy runs launched by a script from another AI coding tool: within the Additional Terms? (#185494) — Google AI Developers Forum (@Diggy_Styon; Official Reply: @Ambati_Rajendra) — 2026-09-28
[28] Is invoking the official agy CLI from a local AI coding assistant allowed on an individual Google AI account? (#185992) — Google AI Developers Forum (@Ivan_Valenzuela; Official Reply: @chunduriv) — 2026-09-29 to 2026-10-01
[29] Clarification on Codex/Claude Skill invoking the official agy CLI through a local PowerShell wrapper (#185949) — Google AI Developers Forum (@nothing2; Official Reply: @Ambati_Rajendra) — 2026-09-29 to 2026-10-02
[30] Is automatically launching the official agy CLI from a local AI orchestrator allowed under Additional Terms §6? (#186954) — Google AI Developers Forum (@local_ai_builder; Official Reply: @Rebbanpalli_Naveen) — 2026-10-05
[31] Is invoking the official Antigravity CLI from Codex allowed? (#186952) — Google AI Developers Forum (@Hossy; Official Reply: @Rebbanpalli_Naveen) — 2026-10-05
[32] Can a local AI coordinator launch the official Antigravity CLI with subscription sign-in? (#186246) — Google AI Developers Forum (@Croixofwar; Official Reply: @chunduriv) — 2026-10-01 to 2026-11-02
[33] Terms Clarification: Personal Antigravity CLI Integration with a Multi-AI Orchestrator (#187536) — Google AI Developers Forum (@BuddhaRyu; Official Reply: @Ambati_Rajendra) — 2026-10-08
[34] Is Google AI Pro Antigravity CLI automation with Codex permitted? (#187241) — Google AI Developers Forum (@ALAMDAR_BALOCH; Official Reply: @chunduriv) — 2026-10-07 to 2026-10-08
[35] Clarification on consumer-plan policy for invoking official agy via local subprocess (#189905) — Google AI Developers Forum (@Amane2418, @Jay10; Official Reply: @Rebbanpalli_Naveen) — 2026-10-16 to 2026-10-26
[36] Paying Google AI Pro subscriber: allow subscription use with third-party agents like OpenClaw (#191689) — Google AI Developers Forum (@eliavb, @b_w, @Tora39; Official Reply: @Rebbanpalli_Naveen) — 2026-10-23 to 2026-10-27
[37] Consumer plan: does my own deterministic CI remain permitted if its test input is prepared by another AI? (#194998) — Google AI Developers Forum (@Herzchen; Official Reply: @Rebbanpalli_Naveen) — 2026-10-26
[38] Google AI Pro – Is standalone Antigravity CLI scripting with external task coordination permitted? (#190815) — Google AI Developers Forum (@Lars; Official Reply: @Ambati_Rajendra) — 2026-10-19 to 2026-10-28
[39] Policy clarification: private monitoring app using official Antigravity CLI and subscription quota (#190756) — Google AI Developers Forum (@xorz, @oli_hlmpn; Official Reply: @Ambati_Rajendra) — 2026-10-19 to 2026-10-29
[40] Clarification on subscription-based agy -p integration with a local multi-agent framework (#196472) — Google AI Developers Forum (@Dsssyc; Official Reply: @Rebbanpalli_Naveen) — 2026-10-28 to 2026-10-29
[41] Conflicting guidance on using T3 Code with personal Google AI subscriptions (#197131) — Google AI Developers Forum (@sannikov, @tkosub, @oli_hlmpn; Official Reply: @Rebbanpalli_Naveen) — 2026-10-31 to 2026-11-02
[42] Gemini 4 Argon draws Antigravity quota at 3x Gemini 3.8 Flash per published dollar (clean A/B, same bucket) (#196351) — Google AI Developers Forum (@Yiji_Kong, @RobW, @shuai_guo; Official Reply: @Maniraj_Chervirala) — 2026-10-28 to 2026-10-29
[43] Context Compaction Amnesia and Missing Post-Write Verification Gates (#189476) — Google AI Developers Forum (@Hello_there; Official Reply: @chunduriv) — 2026-10-15 to 2026-10-20
[44] Feature request: Show context window usage in Antigravity Desktop (#184694) — Google AI Developers Forum (@Soro, @dimitr-io; Official Reply: @chunduriv) — 2026-09-24 to 2026-10-22
[45] Persistent Gemini CLI TOS_VIOLATION after appeal — request for private review or sync check (#186089) — Google AI Developers Forum (@myessaylab1234) — 2026-09-30
[46] Antigravity CLI Agent reliability issue (#176775) — Google AI Developers Forum (@Pitt_zhang) — 2026-08-01
[47] Google Antigravity FAQ Policy Update and Termination of Third-Party Tool Integration — note.com / horizon_it00 (Kenji Sato) — 2026-10
[48] Hermes Agent Plugin Catalog — Antigravity Subscription DirectSDK (239,616 Compaction Threshold) — Nous Research Hermes Agent Documentation — 2026-09-23
[49] mksglu/context-mode: MCP Server & FTS5 Sandbox for Token-Efficient Agent Context Management — GitHub (@mksglu) — 2026
[50] AGI-is-going-to-arrive/Antigravity-Context-Window-Monitor: Real-time Monitoring of Context Window Usage for Antigravity IDE — GitHub (@AGI-is-going-to-arrive) — 2026
[51] dimitr-io/antigravity-desktop-context: Live /context side panel for the Antigravity 2.0 desktop app — GitHub (@dimitr-io) — 2026-10-22
[52] weby-homelab/antigravity-cli-statusline: Adaptive Statusline for Antigravity CLI — GitHub (Weby Homelab) — 2026
[53] oraios/serena: Semantic Code Retrieval & Symbol-Level MCP Toolkit — GitHub (Oraios AI) — 2026
[54] xdotech/goatlas: AI-Powered Code Intelligence Engine (AST, Neo4j Knowledge Graph & pgvector MCP Server) — GitHub (@xdotech) — 2026
[55] Kevin Hou — "Get Out of the Model's Way" (AI Engineer Summit Presentation & Speaker Profile) — AI Engineer Summit / YouTube (Kevin Hou, @kevinhou22) — 2026
[56] Varun Mohan Education Qualifications: How an Indian-Origin MIT Engineer Secured Google's $2.4 Billion AI Investment — Times of India — 2025-07
補充与交叉驗證信源([S1]–[S9])
[S1] Question about personal wrapper around official Antigravity CLI headless mode (#178472) — Google AI Developers Forum (@Ahmad3) — 2026-08-16
[S2] Is a local single-user orchestrator allowed to invoke the official agy -p CLI? (#179013) — Google AI Developers Forum (@JJPop; Reply: @Ambati_Rajendra) — 2026-08-20
[S3] Google AI Studio Gemini API invoking a consumer-authenticated agy CLI is allowed? (#194944) — Google AI Developers Forum (@oooolee; Reply: @Ambati_Rajendra) — 2026-10-26
[S4] Can I let my grok bot use agy cli on their computer? (#190429) — Google AI Developers Forum (@Chua_Poplar; Reply: @Ambati_Rajendra) — 2026-10-19
[S5] AsabaLazy/aur-ASLZ: Arch Linux AUR Repository containing antigravity-cli-fix-bin — GitHub (@AsabaLazy) — 2026-11-02
[S6] mcpservers.org — sshahzaiib/agy-bridge MCP Server — MCP Servers Directory (sshahzaiib) — 2026
[S7] Claude Code vs Google Antigravity vs GitHub Copilot Pricing & Quota Comparison — R-JC News Blog — 2026
[S8] Agy unusable after false violation of Terms of Service (#185325) — Google AI Developers Forum — 2026-09-27
[S9] BUG: AGY CLI Error 3501 (403 Forbidden) - Personal Account Wrongly Flagged as Enterprise (#185714) — Google AI Developers Forum — 2026-09-28
Google Antigravity 256K 上下文限制与無頭模式政策變更檔案 • 采用 CC BY 4.0 許可協議授權(第三方引語与 API 快照依据美國法典第 17 編第 107 條合理使用原則收錄)



