
查核:2026-11-14(Asia/Taipei, UTC+8),macOS Apple Silicon
ts-m1,gemini-api 0.4.6。本文整合既有 Stage 1 實測與 Stage 2 wrapper 驗證;沒有完成重新授權,也沒有成功生成模型內容。HTTP 403 是實測,tier/價格/產品遷移是官方文件研究;兩者分開解讀。
📚 系列導覽
Part 1(Substack):https://memo.jimmyliao.net/p/gemini-api-cli-part-1-agent-api
Part 1(Dev.to,English):https://dev.to/jimmyliao/gemini-api-cli-official-guide-part-1-giving-your-ai-agent-a-stateless-multimodal-cli-toolbox-36p3
Part 1 YouTube 16:9 導讀:https://youtu.be/Rb5ij419w2Y
Part 1 YouTube Shorts:https://youtube.com/shorts/82-Z_Jq-ezQ
1. 引言:為什麼需要「無 API Key」與看懂真實計費池
Part 1 介紹了單一 binary 的多模態工具箱。當 Agent 開始跨主機、容器或 CI 使用它,下一個問題是:能不能避免靜態 AIza* API key 落地,又能把 API 費用清楚歸到指定 GCP project?
Keyless OAuth 的答案是以既有身份取得 short-lived access token,再指定 quota project。它降低散布長效 API key 的需求,但 ADC 本機仍可能保存 refresh credential,短效 bearer token 仍是 secret。這不是無憑證系統,也不會繞過 IAM、API enablement 或 billing。
另一個常見誤區是「我有 Google AI Pro/Ultra,登入同一帳號呼叫 API 就免費」。Google Account 是身份,Google One/Antigravity 是消費者服務池,Developer API 的 project/Cloud Billing 則是另一個池。GCP/GDE Credits 能否抵扣,也要追到正確 billing account、SKU 與 credit 條件;不能從帳戶名稱猜餘額或資格。
本文的第一手證據是 ADC 實測完整紀錄(experiments/03-part2-keyless-adc/results.md)、tier 研究(experiments/04-tier-limits-and-errors/tier-research.md)與 上游 issue 草稿(gde-feedback/upstream-issues-draft.md)。外部規則以研究時點為準,實際帳戶 tier/餘額未測。
2. 原始碼解剖:v0.4.6 的 Keyless OAuth 機制
Stage 2 另直接讀取官方 v0.4.6 tag 的四個檔案,避免把 Part 1 的 2030ff1 快照當成 release 完全相同的證據。

GEMINI_ACCESS_TOKEN/--access-token 提供 bearer credential;--user-project 提供 x-goog-user-project 的 project attribution。前者回答「誰呼叫」,後者回答「用哪個 project 的 quota/billing」。不要把 token 放進 flag:命令列參數可能被程序檢視工具讀到。wrapper 改用子程序環境注入。
credential 一般優先序為 flag → environment → Keychain → config;client 會先考慮完整的 explicit credential alternative。因此 wrapper 移除繼承的 GEMINI_API_KEY,讓新取得的 token 成為明確 credential;使用者若另傳 --api-key/--access-token,仍可能覆蓋這個選擇,不應混用。只有 GOOGLE_APPLICATION_CREDENTIALS 並不代表 v0.4.6 原生讀取 ADC。
以上四個 source path 已逐檔讀取;官方 OAuth/CLI 說明見 OAuth quickstart、API CLI。原始碼內容與上游改善需求亦整理於 issue 草稿;本文不額外列出 tier 研究未驗證的外部參考 URL。
3. ts-m1 實機踩坑:HTTP 403 ACCESS_TOKEN_SCOPE_INSUFFICIENT
有效 token 不代表 scope 足夠
Stage 1 的 active gcloud account 與 tokeninfo email 都是 sjliao@gmail.com;ADC type 為 authorized_user、quota_project_id 是 leapcore-dev。tokeninfo 的 scope 包含 cloud-platform、sqlservice.login、userinfo.email、email、openid,卻沒有 https://www.googleapis.com/auth/generative-language。

CLI 同時指出缺少 generative-language,HTTP Www-Authenticate 也提供相關 scope。這足以定位當前阻擋點,卻不能證明修復後 IAM、模型資格、billing 都會通過。whoami 只顯示本機設定來源,也不能當成遠端成功驗證。
正確重授與 Desktop OAuth Client 備案
gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language,https://www.googleapis.com/auth/generative-language.retriever,https://www.googleapis.com/auth/userinfo.email,openid"這是本 wrapper 為實測錯誤與官方 OAuth 範例組合的 scope 集合,並非宣稱每個 endpoint 都需要全部 scope。官方 /docs/oauth 範例列出 cloud-platform 與 generative-language.retriever;本機 generate 的回應則明確要求 generative-language,所以不能只照一般 Cloud ADC 預設 scope 重試。
若預設 gcloud OAuth client 阻擋敏感 scopes,依 OAuth quickstart 在 Google Cloud Console 設定 consent screen/test users,建立 Desktop app OAuth Client,將下載檔存於 repo 之外,再用 wrapper 的 --client-id-file 傳入。此備案仍受企業管理員與組織政策限制,不是繞過政策的方式。
./bin/gapi-adc --print-reauth
# 以下會修改 ADC,並可能開啟瀏覽器;本次沒有執行。
./bin/gapi-adc --reauth
# 將列印備案中的 <path/to/client_secret.json> 換成實際下載路徑。重授後先做 status 檢查,再明確指定 project。quota project 必須啟用 generativelanguage.googleapis.com,且身份具 serviceusage.services.use 等必要權限。scope 不是 IAM;--user-project 不會啟用服務或改變 billing。
4. 實戰工具:bin/gapi-adc 操作手冊
wrapper(bin/gapi-adc)每次線上執行前呼叫 gcloud auth application-default print-access-token,把結果捕捉到 shell variable,再 export 成 GEMINI_ACCESS_TOKEN 並 exec CLI。token 不寫入檔案或 CLI config;wrapper 也不替同一次長程 polling 中途 refresh,超過 token 有效期仍需原生 refreshing client 或重新設計工作流。
v0.4.6 原生 CLI 對 -p 回 exit 2(unknown shorthand flag);此簡寫由 wrapper 轉成 --user-project。project 優先序是顯式 --user-project/-p → GAPI_USER_PROJECT → config.yaml 的單行 user_project/user-project → gcloud core project。config fallback 保留原有簡易 scalar parser,並非完整 YAML parser;ADC quota_project_id 只供診斷,沒有偷偷插進 fallback 順序。
./bin/gapi-adc --help
./bin/gapi-adc --print-auth-status
./bin/gapi-adc --print-reauth
./bin/gapi-adc generate "hi" --dry-run
./bin/gapi-adc generate "hi" --user-project gdg-kc-465418 --dry-run
./bin/gapi-adc generate "hi" -p gdg-kc-465418 --dry-run--print-reauth 只列命令,exit 0,不開瀏覽器、不執行 auth。--reauth 才執行 login;--client-id-file PATH 或 --client-id-file=PATH 可放在它前後,但必須在 gemini-api 參數之前。重授模式不接受 API 指令,成功 exit 0、失敗 exit 3;參數錯誤 exit 2。
--print-auth-status 讀 ADC 時只挑 type、quota_project_id;不輸出完整 JSON、refresh_token 或 client_secret。active gcloud account 是設定身份,ADC 的當前身份另看遮罩後 tokeninfo email,兩者可能不同。查詢使用以下固定 curl 介面,token body 由 bash builtin 經 stdin 送入,不出現在 curl argv:
curl -sS -m 15 -X POST -d @- https://oauth2.googleapis.com/tokeninfowrapper 不列印原始 tokeninfo body,只檢查兩個精確 scope,輸出 PRESENT/MISSING、expires_in 與遮罩 email。網路失敗或 JSON 不含 scope 時顯示「無法查核」,不能誤報成 scope 不存在。診斷完成維持舊版 exit 0,即使缺 scope;這是診斷模式,不能作 CI 授權成功判斷。一般呼叫 token 失敗 exit 3、project 未設定 exit 2、缺必要程式 exit 127;API 指令沿用原 CLI exit code。
--dry-run 與 CLI help 分支在 gcloud/token 取得前直接執行 CLI。這能驗證 request 構造,不證明 API 可用,也不會測得帳戶 quota。本次 dry-run 仍為 gemini-3.8-flash,狀態檢查再次確認兩個 scope MISSING。wrapper 自身停用 shell trace;環境中的 bearer token 仍應視為 secret,不能把子程序環境 dump 到日誌。
5. sjliao@gmail.com 的真實專案與 billing 盤點
以下只整理 Stage 1 查詢,不新增 API enablement、billing 或扣款實驗。billingEnabled、account OPEN、API enabled、實際 Paid tier/可抵 credits 是不同事實。

原始紀錄矛盾處理: results.md 開頭與 Paid comparison 敘述曾把 leapcore-dev 寫成 enabled,但對應 gcloud services list --enabled 的原始輸出是零筆。本文採查詢輸出;沒有擅自啟用 API 或覆寫歷史證據。
account 清單另證實 gde-aipro-jimmy/013712-FCD5CC-34996C 與 GDE_Redeem 都 OPEN=True。gdg-kc-465418 所連的 0154CA-AF3D86-D7DE34 未出現在這份 account 清單,故只確認 project billingEnabled=true,不宣稱已直接查到該 account OPEN。這些名稱不能證明 Google AI Pro 訂閱、GDE credit 餘額、SKU eligibility 或 Tier 1/2/3。
初始 Cloud Billing 查詢還遇到 consumer project leapcore-dev 的 cloudbilling.googleapis.com 未啟用;單次加 --billing-project=jimmyliao-dev 後補查成功。這是查詢本身的 quota attribution,與 Gemini 請求的 --user-project 應分開理解;本次未修改 gcloud config。
6. 三大使用者層級:Free、Paid 與 Google AI Pro/Ultra
下列規則整合已查核的 tier 研究;具體 project quota、credit balance、重授後 Interactions eligibility 均未測。
Free Tier(未啟用 Cloud Billing)
認證路徑及限制
AI Studio 建立 Free project/API key,以
GEMINI_API_KEY注入gemini-api。注意 2026-05-28 起新建 key 預設是綁定 service account 的 authorization key,不能再概括所有 API key 都沒有 IAM 身份;standard key 與 auth key 的權限模型不同。部分 Free project 需要 verification,還須符合可用地區及條款。API keys、billing。OAuth/ADC 取得短效 access token,
GEMINI_ACCESS_TOKEN搭配--user-project <unbilled-project>。必須啟用generativelanguage.googleapis.com、具有該 quota project 的serviceusage.services.use(例如 Service Usage Consumer),並滿足該 endpoint 的 scope/IAM/地區/Free model 資格。--user-project不會啟用 API、不會授權 IAM,也不會保證 paid-only 能力可用。OAuth、ADC troubleshooting。
官方 OAuth quickstart 的完整設定使用 Desktop OAuth client、consent screen/test users,及以下兩個 scope:https://www.googleapis.com/auth/cloud-platform、https://www.googleapis.com/auth/generative-language.retriever。這是文件展示的 scope 集合,不能由此斷言所有 Interactions/media endpoint 都必須要 retriever scope;cloud-platform 是 GCP ADC 常用預設,最小權限仍應逐 endpoint 驗證。僅 gcloud auth login 不等於建立 ADC。OAuth。
# 本次實測需要額外的 generative-language;請先列印完整修復命令。
./bin/gapi-adc --print-reauth
# 重授完成後,以實盤 Free 候選 project 檢查;本行僅預演。
./bin/gapi-adc generate "hi" --user-project jimmyliao-dev --dry-run上述是 OAuth 文件與 v0.4.6 CLI token/user-project 介面的組合,未實測 unbilled project 的 Interactions 成功請求。v0.4.6 並非原生 ADC client;不能只設 GOOGLE_APPLICATION_CREDENTIALS 就宣稱會自動讀取/refresh。避免同時注入另一組 API key 造成認證選擇歧義;檢查 whoami/--dry-run,但不要輸出 secret。client.go。
RPM/TPM/RPD 與重置
RPM 是每分鐘 requests;TPM 是每分鐘 input tokens;RPD 是每天 requests。任一上限超過即可能 429。限制按 project 計算,不按 key;同一 project 多把 key 不會變多份 quota。Tier 資格及 billing account 共享 spend cap 另有跨 project 聚合,與 per-project request quota 不衝突。RPD 在 Pacific midnight 重置:PDT(UTC−7)為台北 15:00,PST(UTC−8)為台北 16:00;2026-11-14 是 PST,當日為 16:00。這不是台北午夜,也不是訂閱月費扣款日。rate limits。
官方目前一般模型 RPM/TPM/RPD 導向 登入後 AI Studio active limits,並非提供一張永遠適用的公開數字表;本次沒有登入,實際值標記「未測」。公開的具體例外:Gemini Decision 1 Free 為 200 RPM/50,000 TPM/10,000 RPD;Gemini Omni 1.2 Flash Free 不支援。不能把 Decision 的值套到 Flash/Argon。Preview 限制較嚴、容量不保證。rate limits。
功能可用性

依據:pricing、rate limits、video、Veo 關閉公告、agents。
隱私與儲存
台灣 Unpaid Services 的輸入與輸出可用於改善產品/機器學習,且可能有人員審查;不得提交客戶機密、敏感或個人資料。ADC 不改變 unbilled project 的資料條款。EEA/瑞士/英國有明文例外,不能把台灣結論當全球一致規則。terms。
Interactions 預設儲存:Free 1 天、Paid 55 天;Paid 可選 7/14/28/55 天。store=false 可以停用這層 interaction storage,但不能與 background execution 一起使用,也不能接續 previous_interaction_id;這不是取消安全稽核或覆蓋 Unpaid training 條款。Interactions。
Paid Layer:Paid Tier 1/2/3、GCP/GDE Credits
本次觀察的精確升級條件

累計資格按 linked billing account 的 Google Cloud services 支出(不限 Gemini API),不是每把 key 累計;符合資格通常自動升級,仍可能有額外審查。Free→Tier 1 通常立即,後續可能約 10 分鐘。此處沒有沿用舊的 US$250/US$1,000+30 天門檻。billing、rate limits。
另有 rolling 10 分鐘 spend rate limit:Tier 1 US$10、Tier 2/3 US$200,適用與否依付款歷史/帳戶狀態;達上限可能 429。月 cap、Prepay balance、RPM/TPM/RPD 是不同限制。rate limits。
ADC 治理與 credits
同上 token bridge,改用 --user-project <billed-project>;不需把 raw API key 交給 coding agent。短效 bearer token 仍是 secret,ADC refresh credential 也必須保護。IAM/組織允許的身份及 project 決定可用能力;別將 scope 視為 IAM 授權的替代品。v0.4.6 token 字串不會自行 refresh,長程 CI 應由受管 credentials/wrapper 重新取得 token,未來原生 ADC 可減少這層負擔。OAuth、client.go。
GDE/promotional Cloud credits 必須逐筆確認可抵 Gemini API SKU、billing account、到期日與限制;公開文件沒有保證所有 GDE credit 都適用。Prepay 帳戶須先購買 prepaid credits,且維持正餘額;合資格 Cloud credits 先被扣除。新 Google Cloud Welcome/US$300 Free Trial 自 2026-03 起不適用 Gemini API;有歷史 grandfathering 例外(原 credits 到期前,最長 90 天)。credits 不等於成功付款,也不能逕認抵扣會滿足 tier 的 paid-spend 門檻。billing。
API 經 active-billing project 使用時屬 Paid Services:prompts/responses 不用於改善 Google 產品;仍有限期的安全/違規與法遵 logging,並非 zero retention。AI Studio UI 的 Paid Services 定義另包含帳戶可存取 active-billing project 或 Workspace enterprise 的情況,不能把 UI 與 API project 定義混用。terms。
多模態計費例(USD;不是 CLI 每次固定費用)

Consumer 訂閱:Google AI Pro/Ultra 個人訂閱
2026-06-18 邊界及破解誤解
Google 2026-05-19 公告:2026-06-18 起 Gemini CLI/Code Assist IDE extensions 停止服務個人 Pro/Ultra 及免費 Code Assist individuals;移往 Antigravity CLI。Standard/Enterprise 的組織授權不在相同停用範圍;paid Gemini/Enterprise API key 路徑仍不同。官方遷移公告。
用 Pro/Ultra Google 帳戶執行 gcloud ADC 登入,不會讓 generativelanguage.googleapis.com 取得 Google One 訂閱免費池。gemini-api 仍歸屬 --user-project(OAuth)或 key 的 project;Free 就是該 project 的 Free quota,Paid 就是該 project/billing account 的 API 費用及限額。此為 OAuth project attribution、API billing、消費者遷移文件的交叉推論,並非本次帳號扣款實測。OAuth、billing、遷移公告。
黃金混用模式(Golden Hybrid Pattern)
架構上的控制流是:使用者需求 → agy 規劃/coding → shell 呼叫 gapi-adc → gcloud 取得短效 token → gemini-api 帶 project 呼叫 Developer API → 檔案或結構化結果回到 agy。這是建議架構,本次未執行 agy 派工或模型生成。
以個人 OAuth 登入 agy,使用 Gemini 4 Argon 等當前支援模型處理 coding、long-context 分析、音訊理解/轉錄及 planning;實際音訊輸入支援與工作流須逐功能確認,不能把 agy 視為 gemini-api transcribe 完全等價介面。Gemini CLI 頂端也明示 Argon 應改用 Antigravity。install/auth、Gemini CLI authentication。
Pro 是 每 5 小時刷新,但受 weekly cap 約束;Ultra 有最高級 5H quota 與 weekly limits;未訂閱者主要 weekly refresh。官方沒有在 plans 公開保證每模型固定 request 數或每週重置時刻。Pro/Ultra 可用 AI credits 作 baseline 耗盡後 overage(含一次性 promotional credits),以標準 Gemini Enterprise consumption pricing 消耗;這與 API Cloud credits 分開。overage 設定可選 Never/Always 等,不應擅自開啟 top-up/自動耗 credits。plans。
僅將 image/video/Deep Research managed agent、可重現的 CI 呼叫等專項交給 gemini-api,選 Free 或 Paid+ADC 並明列 project、費用與資料許可。這是推薦分工,不表示 agy 永遠沒有這些功能;CLI 的 deterministic pipeline 指 pinned version、schema/exit code/structured output,並不保證模型答案 deterministic。CLI。個人 agy 訂閱條款不能直接套用 Developer API Paid privacy;客戶資料仍先確認 Antigravity 當前條款及組織許可。
6.5 實戰情境貫穿(Part 2 視角):製作一支 15 秒 9:16 AI Reels,三種身分怎麼跑、花多少錢?
同一份 管線(examples/reels-storyboard-pipeline/run-reels-pipeline.sh)先離線預演;fixtures/* 是本機合成測試輸入,非模型生成媒體。實測與限制見 trace(examples/reels-storyboard-pipeline/dry-run-trace.md)。以下是 experiments/04-tier-limits-and-errors/tier-research.md 已記錄時點的參考試算,未重新查詢即時報價,也不是成功扣款證據。
Free 候選 -p jimmyliao-dev 可依模型與 project quota 規劃前製:generate 分鏡、Standard 單次 tts(非 Batch)及 analyze QA;尚未驗證該 project 成功呼叫。台灣 Unpaid Terms 禁止提交機密、敏感與個人資料。3.1 Flash Image 的 Free 欄是 Not available;gemini-omni-1.2-flash paid-only,因此不能把整條媒體管線視為 Free。
Paid Tier 1–3 可考慮 -p gdg-kc-465418;GDE_Redeem 候選為 -p gde-jimmyliao-redeem,須另確認 credits 適用 SKU、餘額與到期。billingEnabled 不證明 tier 或可抵扣。

CLI v0.4.6 預設 image model 實測為 gemini-nano-banana-2.1,不同於上述 gemini-3.1-flash-image。正式執行必須到 AI Studio pricing 核對該模型當時價格;不得直接套用 US$0.067。參考策略是 Image Keyframe(約 US$0.067)→ 驗構圖 → Image-to-Video(約 US$0.35/5s,另計 input),減少盲目重試影片。Tier 1 的 rolling 10 分鐘 US$10 spend rate limit 可能因密集重試觸發,與月 cap、RPM 分開。
Google AI Pro/Ultra 的 Golden Hybrid:在 agy 訂閱池迭代腳本、prompt、storyboard.json、dialogue.txt 與後製 ffmpeg 命令,這部分不增加 Developer API 費(並非訂閱本身免費,仍受 quota/overage 設定限制);只將定稿 render 派到明確 Paid/Credits project。此次沒有執行 agy 或 ffmpeg,也沒有產出完整成片。
Part 2 可執行範例程式碼
本機執行檔:examples/part2-keyless-adc-tiers/sample-part2-adc-tier-router.sh。以下在本專案根目錄整段貼入執行;不需要 clone 公開 OSS repo,本次沒有建立公開 OSS repo。需要 bash、python3 與已安裝的 gemini-api 0.4.6;程式碼與本機腳本使用相同指令,只把腳本定位改為根目錄相對路徑。
預設只執行離線 dry-run,不取得 token;--print-reauth 只印說明。需要真人另行啟用網路診斷時,執行本機腳本並加 --check-live-token,才會呼叫 bin/gapi-adc --print-auth-status;本次沒有執行此選項。Free/Paid 是路由候選,非資格證明;即時 pricing/quota 與 GDE credits 均依本節前述限制另查。
bash <<'PART_SAMPLE'
(
set +x
set -euo pipefail
cd examples/part2-keyless-adc-tiers
unset GEMINI_API_KEY GEMINI_ACCESS_TOKEN GEMINI_ENVIRONMENT_KEY GEMINI_USER_PROJECT
export GEMINI_NO_KEYRING=true
R=../reels-storyboard-pipeline
W=../../bin/gapi-adc
FREE_PROJECT_ID=${FREE_PROJECT_ID:-jimmyliao-dev}
PAID_PROJECT_ID=${PAID_PROJECT_ID:-gdg-kc-465418}
case "${1:-}" in
'') echo '離線預演:不查 live token,不送出網路請求。' >&2 ;;
--check-live-token) "$W" --print-auth-status </dev/null ;;
*) echo '用法:sample-part2-adc-tier-router.sh [--check-live-token]' >&2; exit 2 ;;
esac
"$W" --print-reauth </dev/null
verify_project() {
local project=$1
shift
"$W" --agent-mode "$@" -p "$project" --dry-run </dev/null |
python3 -c 'import json,sys; d=json.load(sys.stdin); h=d["request"]["headers"]["X-Goog-User-Project"]; assert h == [sys.argv[1]], h; print(json.dumps(d,ensure_ascii=False)); print("已驗證 project header:"+sys.argv[1],file=sys.stderr)' "$project"
}
echo 'Stage A:Free 候選前製(資格仍須線上另驗)' >&2
verify_project "$FREE_PROJECT_ID" generate '規劃三鏡 9:16 Reels 分鏡' --stream=false
verify_project "$FREE_PROJECT_ID" tts '歡迎認識多模態 CLI' --out /tmp/part2-voice.wav
verify_project "$FREE_PROJECT_ID" analyze -i "$R/fixtures/scene1-keyframe.png" '檢查版面安全區'
echo 'Stage B:Paid render 預演,先首幀後影片' >&2
verify_project "$PAID_PROJECT_ID" image '9:16 科技 Reels 首幀' --aspect-ratio 9:16 --image-size 1K --output-mime-type image/jpeg --out /tmp/part2-keyframe.jpg
verify_project "$PAID_PROJECT_ID" video '首幀緩慢推進' --aspect-ratio 9:16 --resolution 720p -i "$R/fixtures/scene1-keyframe.png" --out /tmp/part2-video.mp4
echo '護欄:正式轉片前先人工驗證 Image keyframe,減少 Video 重試耗盡 Tier 1 rolling 10 分鐘 US$10 cap 的風險;本程式只預演,不執行人工核准或付費 render。即時價格與 quota 依 Part 2 §6.5 限制另查;Paid project 不等於 GDE credits。' >&2
)
PART_SAMPLE7. 3 × 6 決策矩陣
左側 Persona 為列標籤,六個比較欄位如下。

8. 常見錯誤碼速查
401/403:token 過期、scope 不符、IAM/API enablement/project attribution 等,不能先推論「訂閱 quota 用完」。
429 RESOURCE_EXHAUSTED:RPM/TPM/RPD、工具 quota 或 rolling spend limit;檢查 server 詳細訊息及 retry delay。增加 key 不改 project quota。
402 Payment Required:Prepay balance 歸零會使同一 billing account 下所有 projects 停止服務;paid tier 資格尚在也不代表仍可呼叫。
模型關閉/不支援:Veo Preview 已退場;Free model 不支援不是再登入 Google One 就能解決。
CLI documented exit codes:0 成功、1 runtime/API error、2 usage/validation、3 auth/authorization。HTTP status 與 process exit code 不同。
依據:billing、rate limits、CLI、video。上述為文件診斷,未實測所有錯誤。

9. GDE 上游改進建議與可驗證來源
兩份 issue 草稿(gde-feedback/upstream-issues-draft.md)都尚未送出。第一份建議 gemini-api-cli 提供標準 ADC discovery/auto-refresh、明確 credential 與 quota-project 優先序、可安全顯示身份與來源的診斷,以及 scope/IAM/API enablement 的可操作錯誤訊息。修改須回到 Speakeasy generator/spec 的正確來源,避免 regeneration 覆蓋。
第二份是 Gemini CLI consumer 遷移文件一致性:頂端 banner 與 auth/quota 內文的舊 Pro/Ultra daily counts 矛盾。應把歷史表格標記有效終止日、就地連到 agy plans,同時保留 Standard/Enterprise 與 paid API 路線的正確邊界,不能說整個 Gemini CLI 對所有客戶停用。
獨立驗收應涵蓋 token expiry refresh、invalid ADC、credential precedence、quota header、redaction,以及 Free/Paid endpoint 的真實 integration test。本 wrapper 是過渡橋接,不是 upstream 原生 ADC 已完成的證據。
以下僅列 tier 研究實際讀取的官方參考;完整研究與未測項目保留於 evidence 文件:
10. Live 實測補錄:gde-jimmyliao-redeem ADC 邊界複驗與 §6.5 實際成本實證(2026-11-15)
在 2026-11-15 00:20–00:24 實跑中,我們同時驗證了 Part 2 兩項核心主張:
Keyless ADC 邊界行為依預期收斂 (
$0):在unset GEMINI_API_KEY狀態下對-p gde-jimmyliao-redeem執行./bin/gapi-adc --agent-mode generate,因為預設本機 ADC 尚未執行--reauth加入generative-languagescope,CLI 如預期回傳Exit 3與HTTP 403 ACCESS_TOKEN_SCOPE_INSUFFICIENT,不會 silent fallback 到個人池、亦無任何計費。§6.5 Keyframe-First 計費驗證:改以
gde-jimmyliao-redeemRedeem API key 實跑整套 Reels 工作流後,Video (gemini-omni-1.2-flash, 5s 720p) 單次即佔$0.3527 / $0.5485(約 64%),而兩張 Keyframe (gemini-nano-banana-2.1) + 雙人 TTS + QA 分析全數僅~$0.115 USD,證實先驗圖與口白、確認過再進 Video Render 能大幅減少觸及 Tier 1 rolling 10-min USD$10上限的風險。詳見experiments/06-live-execution-and-cost-log/cost-and-call-ledger.md。


