Двойная система квот: Понимание пулов квот Antigravity и Gemini CLI
Что вы сможете после изучения
- Понимать, как каждый аккаунт имеет два независимых пула квот Gemini
- Включать автоматический fallback между пулами квот Antigravity и Gemini CLI
- Явно указывать пул квот для конкретной модели
- Максимизировать использование квоты через двойную систему
Ваша текущая проблема
Вы используете плагин Antigravity Auth для вызова моделей Gemini, часто сталкиваетесь с ограничениями квот, но, возможно, не понимаете двойную систему квот:
- После ограничения скорости запроса необходимо ждать сброса квоты для продолжения
- Хотя настроены несколько аккаунтов, квоты Gemini каждого аккаунта всё ещё недостаточны
- Непонятно, почему некоторые модели работают, а другие часто возвращают 429
Ключевая проблема: Вы думаете, что у каждого аккаунта только один пул квот Gemini, но на самом деле у каждого аккаунта два независимых пула квот, и при правильной настройке вы можете удвоить свою квоту Gemini.
Основная концепция
Что такое двойная система квот?
Двойная система квот — это механизм, при котором плагин Antigravity Auth поддерживает два независимых пула квот Gemini для каждого аккаунта. Пулы квот Antigravity и Gemini CLI отслеживают состояние ограничения скорости независимо; когда Antigravity ограничивает скорость, можно переключиться на пул CLI, удваивая квоту.
Плагин Antigravity Auth поддерживает два независимых пула квот Gemini для каждого Google-аккаунта:
| Пул квот | Тип | Приоритет | Правило сброса |
|---|---|---|---|
| Antigravity | Основной пул квот | Приоритетное использование | Динамически вычисляется по времени сброса, возвращаемому сервером |
| Gemini CLI | Резервный пул квот | Используется для fallback | Динамически вычисляется по времени сброса, возвращаемому сервером |
Состояние ограничения скорости каждого пула квот отслеживается независимо, без взаимного влияния. Это означает:
- Когда пул квот Antigravity ограничивает скорость, если пул Gemini CLI всё ещё доступен, можно автоматически переключиться
- Эквивалентно удвоению квоты Gemini каждого аккаунта
Явное указание vs Автоматический fallback
Существует два способа использования двойной системы квот:
- Явное указание: Добавьте суффикс
:antigravityили:gemini-cliпосле имени модели, чтобы принудительно использовать определённый пул квот - Автоматический fallback: Включите конфигурацию
quota_fallback, позволяя плагину автоматически переключаться между пулами квот
Поведение по умолчанию: Автоматический fallback не включён, используется только пул квот Antigravity
Пошаговая инструкция
Шаг 1: Включение автоматического fallback
Откройте файл конфигурации ~/.config/opencode/antigravity.json:
cat ~/.config/opencode/antigravity.jsonДобавьте или измените конфигурацию quota_fallback:
{
"quota_fallback": true
}Почему: По умолчанию quota_fallback установлен в false, плагин использует только пул квот Antigravity. После включения, когда Antigravity ограничивает скорость, будет автоматически предпринята попытка использовать пул квот Gemini CLI.
Вы должны увидеть, что файл конфигурации был обновлён.
Шаг 2: Наблюдение за поведением автоматического fallback
Отправьте запрос к модели Gemini (например, используя Gemini 3 Flash):
opencode run "Объясни, что такое квантовые вычисления" --model=google/antigravity-gemini-3-flashЕсли пул квот Antigravity ограничивает скорость, вы увидите следующее поведение автоматического fallback:
[Toast уведомление] Квота Antigravity исчерпана, используется квота Gemini CLIПлагин будет:
- Обнаруживать ограничение скорости пула квот Antigravity (ответ 429)
- Пытаться переключиться на пул квот Gemini CLI (если не ограничен)
- Повторно отправлять запрос, используя новый пул квот
- Показывать toast-уведомление, информирующее о переключении
Почему: Это основная логика автоматического fallback — переключение между двумя пулами квот того же аккаунта, а не немедленный переход к следующему аккаунту.
Вы должны увидеть, что запрос успешно завершился, а не завершился из-за ограничения квоты.
Шаг 3: Явное указание пула квот
Если вы хотите принудительно использовать определённый пул квот, вы можете добавить суффикс после имени модели:
Использование пула квот Antigravity (через префикс antigravity-):
opencode run "Объясни, что такое квантовые вычисления" --model=google/antigravity-gemini-3-flashИспользование пула квот Gemini CLI (без префикса antigravity-):
opencode run "Объясни, что такое квантовые вычисления" --model=google/gemini-3-flash-previewПочему: Через префикс antigravity- можно явно указать использование пула квот Antigravity; без префикса используется пул квот Gemini CLI. В этом случае плагин игнорирует конфигурацию quota_fallback, и если указанный пул квот ограничивает скорость, произойдёт немедленное переключение к следующему аккаунту, а не попытка использовать другой пул квот.
Вы должны увидеть, что запрос был направлен в указанный пул квот.
Шаг 4: Просмотр статуса квоты (режим отладки)
Если вы хотите просмотреть состояние ограничения скорости каждого пула квот, включите режим отладки:
Отредактируйте ~/.config/opencode/antigravity.json:
{
"quota_fallback": true,
"debug": true
}После отправки запроса просмотрите файл журнала:
tail -f ~/.config/opencode/antigravity-logs/*.logВы увидите подобные записи:
[DEBUG] headerStyle=antigravity explicit=false
[DEBUG] quota fallback: gemini-cli
[INFO] rate-limit triggered for account 0, family gemini, quota: gemini-antigravityПочему: Журналы отладки позволяют вам чётко видеть, какой пул квот выбрал плагин и когда был активирован fallback. Это очень полезно для диагностики проблем с квотами.
Вы должны увидеть подробные журналы переключения квот.
Контрольные точки ✅
Проверка включения автоматического fallback
cat ~/.config/opencode/antigravity.json | grep quota_fallbackВы должны увидеть:
"quota_fallback": trueПроверка явного указания суффикса
Попробуйте использовать имя модели с суффиксом, чтобы убедиться, что ошибки не возникает:
opencode run "Тест" --model=google/antigravity-gemini-3-flash:gemini-cliВы должны увидеть, что запрос успешно завершён.
Проверка журналов отладки
ls -la ~/.config/opencode/antigravity-logs/Вы должны увидеть, что файлы журналов существуют и содержат информацию о переключении квот.
Предупреждения о подводных камнях
Подводный камень 1: Fallback не работает при явном указании суффикса
Проблема: Вы добавили суффикс :antigravity или :gemini-cli после имени модели, но quota_fallback似乎 не работает.
Причина: При явном указании суффикса плагин игнорирует конфигурацию quota_fallback и принудительно использует указанный пул квот. Если этот пул квот ограничивает скорость, произойдёт немедленное переключение к следующему аккаунту, а не попытка использовать другой пул квот.
Решение:
- Если вам нужен автоматический fallback, не добавляйте суффикс после имени модели
- Если вам нужно принудительно использовать определённый пул квот, просто добавьте суффикс
Подводный камень 2: Модели Claude не имеют двойной системы квот
Проблема: Вы включили quota_fallback, но модели Claude似乎 не проявляют поведения fallback.
Причина: Двойная система квот применяется только к моделям Gemini. Модели Claude используют только пул квот Antigravity и не имеют пула квот Gemini CLI.
Решение:
- Модели Claude не требуют настройки двойной системы квот
- Только ротация нескольких аккаунтов может повысить квоту Claude
Подводный камень 3: Слишком много журналов отладки влияет на производительность
Проблема: Вы включили debug: true, но файлы журналов растут слишком быстро.
Причина: Режим отладки записывает все детали запросов, включая переключение квот, выбор аккаунтов и т.д.
Решение:
- После завершения отладки отключите конфигурацию
debug - Или регулярно очищайте файлы журналов:
rm ~/.config/opencode/antigravity-logs/*.log
Диаграмма рабочего процесса двойной системы квот
Ниже показан рабочий процесс автоматического fallback:
flowchart TD
A[Инициирование запроса Gemini] --> B[Выбор текущего аккаунта]
B --> C{Пул квот Antigravity доступен?}
C -->|Да| D[Использование пула квот Antigravity]
C -->|Нет| E{quota_fallback включён?}
E -->|Нет| F[Переключение к следующему аккаунту]
E -->|Да| G{Пул квот Gemini CLI доступен?}
G -->|Да| H[Переключение на пул квот Gemini CLI]
G -->|Нет| F
D --> I[Отправка запроса]
H --> I
F --> J[Проверка следующего аккаунта]
J --> C
I --> K{Запрос успешен?}
K -->|Да| L[Завершение]
K -->|Нет 429| M[Пометка пула квот как ограниченного по скорости]
M --> CМеханизм независимого отслеживания двойных пулов квот
Определение ключей квот
Плагин использует следующие ключи квот для отслеживания ограничений скорости (исходный код: accounts.ts:77):
| Ключ квоты | Значение |
|---|---|
claude | Квота моделей Claude |
gemini-antigravity | Пул квот Gemini Antigravity |
gemini-cli | Пул квот Gemini CLI |
Объект rateLimitResetTimes каждого аккаунта хранит временные метки сброса для этих ключей квот:
{
"rateLimitResetTimes": {
"claude": 1234567890,
"gemini-antigravity": 1234567890,
"gemini-cli": 1234567890
}
}Проверка доступности пулов квот
При выборе пула квот плагин проверяет в следующем порядке (исходный код: accounts.ts:545-557):
- Пул квот Antigravity: Если не ограничен по скорости, используется напрямую
- Пул квот Gemini CLI: Если Antigravity ограничен и этот пул доступен, используется этот пул
- Возврат null: Оба пула ограничены, инициируется переключение аккаунта
Условия срабатывания переключения пулов квот
Автоматический fallback срабатывает при выполнении следующих условий:
| Условие | Описание | Расположение в исходном коде |
|---|---|---|
quota_fallback = true | Конфигурация автоматического fallback включена | config/schema.ts:234 |
| Пул квот Antigravity текущего аккаунта ограничен | Получен ответ 429 | plugin.ts:1149 |
| Модель не явно указывает пул квот | Имя модели не содержит суффиксов :antigravity или :gemini-cli | plugin.ts:1151 |
| Пул квот Gemini CLI текущего аккаунта доступен | Не ограничен | accounts.ts:553 |
Если любое из условий не выполнено, плагин напрямую переключается на следующий аккаунт, а не пытается выполнить fallback.
Резюме урока
В этом уроке мы изучили двойную систему квот плагина Antigravity Auth:
- Два пула квот: Каждый аккаунт имеет два независимых пула квот Gemini — Antigravity и Gemini CLI
- Автоматический fallback: После включения
quota_fallback, при ограничении скорости Antigravity автоматически предпринимается попытка использования пула квот Gemini CLI - Явное указание: Используйте суффиксы
:antigravityили:gemini-cliдля принудительного использования определённого пула квот - Независимое отслеживание: Состояние ограничения скорости каждого пула квот хранится и проверяется независимо
- Только для Gemini: Двойная система квот применяется только к моделям Gemini, модели Claude имеют только пул квот Antigravity
Разумное использование двойной системы квот позволяет вам удвоить квоту Gemini каждого аккаунта, сокращая количество отказов в запросах из-за ограничений квоты.
Анонс следующего урока
В следующем уроке мы изучим Настройка мультиаккаунта: Конфигурация балансировки нагрузки для повышения квоты.
Вы узнаете:
- Как добавить несколько Google-аккаунтов
- Лучшие практики конфигурации различных стратегий выбора аккаунтов
- Техники использования пулов квот в сценариях с несколькими аккаунтами
Приложение: Ссылки на исходный код
Нажмите, чтобы развернуть и посмотреть расположение исходного кода
Время последнего обновления: 2026-01-23
| Функция | Путь к файлу | Номер строки |
|---|---|---|
| Определение ключа квоты (BaseQuotaKey) | src/plugin/accounts.ts | 77-78 |
| Получение ключа квоты (getQuotaKey) | src/plugin/accounts.ts | 107-116 |
| Проверка состояния ограничения скорости пула квот | src/plugin/accounts.ts | 134-152 |
| Получение доступного пула квот | src/plugin/accounts.ts | 545-557 |
| Определение конфигурации quota_fallback | src/plugin/config/schema.ts | 224-234 |
| Логика автоматического fallback | src/plugin/plugin.ts | 1151-1163 |
| Документация по двойной системе квот | docs/MULTI-ACCOUNT.md | 21-31 |
Ключевые константы:
BaseQuotaKey = "claude" | "gemini-antigravity" | "gemini-cli": Определение типа ключа квоты
Ключевые функции:
getAvailableHeaderStyle(): Возвращает доступный пул квот в зависимости от состояния пулов квот текущего аккаунтаisRateLimitedForHeaderStyle(): Проверяет, ограничен ли указанный пул квот по скоростиgetQuotaKey(): Генерирует ключ квоты на основе семейства моделей и headerStyle