Что такое Antigravity Tools: Превратить «аккаунты + протоколы» в локальный AI-шлюз
Барьер доступа многих AI-клиентов/SDK не в том, «умеете ли вызывать API», а в «какой протокол вы реально подключаете, как управлять несколькими аккаунтами, как сделать так, чтобы при неудачах происходило автоматическое восстановление». Antigravity Tools пытается объединить эти три задачи в один локальный шлюз.
Что такое Antigravity Tools?
Antigravity Tools — это десктопное приложение: вы управляете аккаунтами и конфигурацией в GUI, оно запускает HTTP-прокси-сервис на вашем компьютере, равномерно пересылает запросы разных поставщиков/протоколов на вышестоящий уровень, а затем преобразует ответы обратно в формат, знакомый клиенту.
Чему вы научитесь
- Объяснить, какую проблему решает Antigravity Tools (и что он не решает)
- Понять его основные компоненты: GUI, пул аккаунтов, HTTP-прокси-шлюз, адаптация протокола
- Понять границы безопасности по умолчанию (127.0.0.1, порт, режим аутентификации) и когда нужно изменить
- Знать, в какую главу идти дальше: установка, добавление аккаунтов, запуск прокси, подключение клиентов
Текущие проблемы
Вы могли столкнуться с этими проблемами:
- Один и тот же клиент должен поддерживать три протокола OpenAI/Anthropic/Gemini, конфигурация часто пишется неправильно
- Несколько аккаунтов, но переключение, ротация, лимитирование и повтор при сбое делаются вручную
- При неудаче запроса вы можете только смотреть на журналы и гадать, это «аккаунт недействителен» или «вышестоящее лимитирование/ёмкость исчерпана»
Цель Antigravity Tools — включить эти «краевые задачи» в локальный шлюз, чтобы ваш клиент/SDK по возможности заботился только об одном: отправить запрос локально.
Основная идея
Вы можете понять это как набор локального «AI-шлюза планирования», состоящего из трёх слоев:
- GUI (десктопное приложение)
- Отвечает за управление аккаунтами, конфигурацией, мониторингом и статистикой.
- Основная страница содержит: Dashboard, Accounts, API Proxy, Monitor, Token Stats, Settings.
- HTTP-прокси-сервис (Axum Server)
- Отвечает за экспорт конечных точек нескольких протоколов, и пересылает запросы соответствующему обработчику.
- Прокси-сервис монтирует уровни аутентификации, мониторинг промежуточного ПО, CORS, Trace и т.д.
- Пул аккаунтов и планирование (TokenManager и др.)
- Отвечает за выбор доступных аккаунтов из локального пула, при необходимости обновляет токен, делает ротацию и самовосстановление.
Что значит «локальный шлюз»?
Здесь «локальный» — это буквально: сервис запускается на вашем компьютере, ваш клиент (Claude Code, OpenAI SDK, различные сторонние клиенты) указывает Base URL на http://127.0.0.1:<port>, запрос сначала идёт на локальный компьютер, а затем Antigravity Tools пересылает на вышестоящий уровень.
Какие конечные точки он экспортирует
Прокси-сервис регистрирует несколько наборов конечных точек протокола в Router, вы можете сначала запомнить эти «входы»:
- Совместимый с OpenAI:
/v1/chat/completions,/v1/completions,/v1/responses,/v1/models - Совместимый с Anthropic:
/v1/messages,/v1/messages/count_tokens - Нативный Gemini:
/v1beta/models,/v1beta/models/:model,/v1beta/models/:model/countTokens - Проверка работоспособности:
GET /healthz
Если ваш клиент может подключиться к любому из этих протоколов, теоретически вы можете направить запрос в этот локальный шлюз, «изменив Base URL».
Границы безопасности по умолчанию (не пропускайте)
Самая большая проблема с этим типом «локального прокси» обычно не в недостаточной функциональности, а в том, что вы случайно его раскроете.
Сначала запомните несколько значений по умолчанию (все из конфигурации по умолчанию):
- Порт по умолчанию:
8045 - По умолчанию только локальный доступ:
allow_lan_access=false, адрес прослушивания127.0.0.1 - Режим аутентификации по умолчанию:
auth_mode=off(не требует, чтобы клиент приносил key) - По умолчанию генерируется
api_keyв формеsk-...(для включения аутентификации при необходимости)
Когда обязательно включать аутентификацию?
Как только вы включаете доступ к локальной сети (allow_lan_access=true, адрес прослушивания становится 0.0.0.0), следует одновременно включить аутентификацию и управлять API Key как паролем.
Когда использовать Antigravity Tools
Он больше подходит для таких сценариев:
- У вас есть несколько AI-клиентов/SDK, хотите единообразно использовать один Base URL
- Вам нужно объединить разные протоколы (OpenAI/Anthropic/Gemini) в один набор «локального выхода»
- У вас есть несколько аккаунтов, хотите, чтобы система занималась ротацией и обработкой стабильности
Если вы хотите просто «написать две строки кода для прямого вызова официального API», и аккаунты/протоколы фиксированы, он может быть избыточным.
Пошаговое руководство: сначала установите правильный порядок использования
Этот урок не учит детальной конфигурации, только сначала выравнивает основной порядок, чтобы вы не застряли, пропустив:
Шаг 1: Сначала установите, затем запустите
Зачем Десктоп отвечает за управление аккаунтами и запуск прокси-сервиса, без него последующие OAuth/прокси не могут быть реализованы.
Перейдите в следующую главу и выполните установку по README.
Что вы должны увидеть: Вы можете открыть Antigravity Tools и увидеть страницу Dashboard.
Шаг 2: Добавьте хотя бы один аккаунт
Зачем Прокси-сервис должен получить доступную идентификацию из пула аккаунтов для отправки запросов на вышестоящий уровень; без аккаунтов шлюз также не может «вызывать от вашего имени».
Перейдите в главу «Добавление аккаунтов», добавьте аккаунты по процессу OAuth или Refresh Token.
Что вы должны увидеть: На странице Accounts появляются ваши аккаунты, и вы можете видеть информацию о квоте/статусе.
Шаг 3: Запустите API Proxy и используйте /healthz для минимальной проверки
Зачем Сначала используйте GET /healthz, чтобы подтвердить «локальный сервис работает», затем подключайте клиент, устранение неполадок будет намного проще.
Перейдите в главу «Запуск локального прокси и подключение первого клиента» для завершения цикла.
Что вы должны увидеть: Ваш клиент/SDK может успешно получить ответ через локальный Base URL.
Частые ошибки
| Ситуация | Что вы можете сделать (❌) | Рекомендуемый подход (✓) |
|---|---|---|
| Хотите, чтобы мобильный/другой компьютер получил доступ | Сразу откройте allow_lan_access=true, но не установите аутентификацию | Одновременно включите аутентификацию и сначала проверьте GET /healthz в локальной сети |
| Клиент возвращает 404 | Только меняете host/port, игнорируете, как клиент объединяет /v1 | Сначала подтвердите стратегию объединения base_url клиента, затем решите, нужно ли приносить префикс /v1 |
| Сразу начинаете устранять неполадки с Claude Code | Сразу подключаете сложный клиент, при неудаче не знаете, где искать | Сначала запустите минимальный цикл: запустить Proxy -> GET /healthz -> затем подключить клиент |
Итог урока
- Назначение Antigravity Tools — «десктоп + локальный HTTP-прокси-шлюз»: управление в GUI, Axum предоставляет конечные точки множественных протоколов
- Вам нужно рассматривать это как локальную инфраструктуру: сначала установите, затем добавьте аккаунты, затем запустите Proxy, наконец подключите клиентов
- По умолчанию слушает только
127.0.0.1:8045, если раскрываете в локальную сеть, обязательно включите аутентификацию
Предпросмотр следующего урока
В следующем уроке мы завершим этап установки: Установка и обновление: Оптимальный путь установки десктопной версии.
Вы узнаете:
- Несколько способов установки, перечисленных в README (и приоритет)
- Вход обновления и способы обработки типичных системных блокировок
Приложение: Справочник по исходному коду
Нажмите, чтобы раскрыть расположение исходного кода
Обновлено: 2026-01-23
| Функция | Путь к файлу | Строки |
|---|---|---|
| --- | --- | --- |
| Обзор Router конечных точек (OpenAI/Claude/Gemini/healthz) | src-tauri/src/proxy/server.rs | 120-194 |
| Логика порта по умолчанию/только локальный по умолчанию/key по умолчанию и bind address | src-tauri/src/proxy/config.rs | 174-291 |
| --- | --- | --- |
| Структура маршрутизации GUI страниц (Dashboard/Accounts/API Proxy/Monitor/Token Stats/Settings) | src/App.tsx | 19-48 |
Ключевые значения по умолчанию:
ProxyConfig.port = 8045: порт прокси-сервиса по умолчаниюProxyConfig.allow_lan_access = false: по умолчанию только локальный доступProxyAuthMode::default() = off: по умолчанию не требует аутентификации