#Cloud Code Assist API error (403): Verify your account to continue.
1 messages · Page 1 of 1 (latest)
That specific “Cloud Code Assist API error (403): Verify your account to continue.” is coming from the google-antigravity provider path. That provider is not the normal Gemini API — it’s the Antigravity OAuth bridge that talks to a Cloud Code Assist–style endpoint, and right now it can mis-route individual Google AI Pro accounts to an enterprise-only endpoint (→ 403). So it’s usually not something you can fix locally by tweaking fallbacks/config.
Practical workarounds (so you can keep using OpenClaw today):
- Use the real Gemini HTTP API (
googleprovider) with an API key
- Set up
GEMINI_API_KEY, then pick a model via:
openclaw models status
openclaw models list
openclaw models set <google/...>
Docs: https://docs.openclaw.ai/concepts/model-providers (see “Google Gemini (API key)”)
- If you need Google-account/OAuth style auth (no API key):
- Try Gemini CLI provider instead:
google-gemini-cli(it shells out to a localgeminibinary, so it’s a different stack than Antigravity)
Docs: https://docs.openclaw.ai/help/faq#how-do-i-set-up-gemini-cli-oauth
- For reliability right now: set a known-working provider/model as your primary.
Even if you configuredfallbacks, this current failure can abort the run before fallback kicks in (tracked in your issue).
If you want to add useful debug info to the GitHub issue, the most actionable paste is:
openclaw --version
openclaw models status --probe --probe-provider google-antigravity
(models status redacts secrets, so it’s generally safe to share.)
Yep — the whole point of google-antigravity is to get “subscription-style” access (Cloud Code Assist / Gemini Code Assist backend), so I totally get why “just use google with an API key” is the wrong answer if you’re trying to avoid per-token billing.
Two important gotchas though:
-
Google One AI Premium (2TB) ≠ automatic entitlement for the Antigravity/Code Assist endpoint
google-antigravityis wired to the Cloud Code Assist / Gemini Code Assist service (cloudcode-pa.googleapis.com/...). That backend has its own gating (account eligibility, region, ToS acceptance, anti-abuse checks). -
That specific 403 usually means Google is blocking the account until you complete a one-time verification flow
The error often includes a “verify your account” URL that points at something likedevelopers.google.com/gemini-code-assist/auth/auth_success_gemini. If Google wants that, OpenClaw can’t bypass it with retries/fallbacks — you have to satisfy the verification once in a browser.
What I’d try (quick checklist):
- Make sure the same Google account can successfully use Gemini Code Assist in VS Code / JetBrains (even once). If it can’t, Antigravity won’t either.
- Re-login cleanly:
openclaw models auth login --provider google-antigravity --set-default
openclaw models status --probe --probe-provider google-antigravity
- If you still get the 403, open the exact “verify your account” link printed in the error, finish whatever Google asks (phone/SMS / captcha / “continue to auth_success…”), then probe again.
If after verification it still routes you to an enterprise-only path / keeps 403’ing, then it’s likely the bug described in the issue and the best next step is to drop the full probe output (sanitized) into the GitHub issue:
openclaw --version
openclaw models status --probe --probe-provider google-antigravity
If you paste the exact 403 text you’re seeing (it usually includes “Endpoint: …” + “Effective Model: …”), I can tell you whether it looks like account verification gating vs wrong endpoint routing.
OpenClaw can talk to models in two broad ways:
- “Real APIs” (API key / metered billing) – usually the most reliable, but not flat‑rate
- “Subscription/OAuth bridges” – closer to what you want (monthly plan), but they can be throttled, gated, or break when the upstream provider changes auth/eligibility
For what you described (research + doc analysis + social media, minimal coding), the subscription/OAuth options OpenClaw supports today are mainly:
Subscription / flat-rate-ish options (best match)
- Anthropic subscription via setup-token (
anthropic)
Usesclaude setup-token(subscription-style auth). Docs: https://docs.openclaw.ai/help/faq#can-i-use-claude-max-subscription-without-an-api-key - OpenAI “Codex OAuth” (
openai-codex)
Logs in with your ChatGPT/Codex subscription OAuth. Docs: https://docs.openclaw.ai/help/faq#do-you-support-openai-subscription-auth-codex-oauth - Google Antigravity OAuth bridge (
google-antigravity)
The “Cloud Code Assist / Gemini Code Assist”-style endpoint you’re currently hitting (good value when it works, but can have account verification / endpoint routing issues like this thread). Docs: https://docs.openclaw.ai/concepts/model-providers - GitHub Copilot (
github-copilot)
Monthly subscription, token-based access viaCOPILOT_GITHUB_TOKEN/GH_TOKEN/GITHUB_TOKEN. (Not strictly “unlimited”, but often a good flat monthly option.) Docs: https://docs.openclaw.ai/concepts/model-providers - Qwen OAuth (portal) (
qwen-portal)
Device-code OAuth flow; can be a very cost-effective tier depending on what Qwen is offering at the moment. Docs: https://docs.openclaw.ai/concepts/model-providers
The reality check (important)
True “unlimited tokens” is rare; most subscriptions have fair-use limits, throttling, or eligibility checks. If you want highest reliability, API-key providers are still the least flaky—so a common setup is:
- Primary: your subscription/OAuth provider (cheap per month)
- Fallback: one metered but inexpensive API provider (so you don’t hard-fail mid-task)
(OpenClaw’s failover behavior is documented here: https://docs.openclaw.ai/concepts/model-failover)
What I need from you to recommend a sane combo
- Which subscriptions do you already have? (Claude / ChatGPT-Codex / Copilot / Google)
- Is “must be flat-rate” a hard requirement, or is “cheap API fallback” acceptable as a safety net?
Also: for up-to-the-minute “best value provider right now” recommendations (pricing changes constantly), the server’s #models channel is the right place—people there track current deals and limits.
I'm looking for a flat-rate price, but with a high context window and a high daily token cap
Flat‑rate + high context + high daily cap is basically the “holy grail” combo — in practice, every “flat rate” plan I’ve seen is fair‑use with throttling that changes over time, and the providers usually don’t publish a clean daily token cap number.
In OpenClaw, the providers that are closest to what you want (monthly subscription auth, not per‑token API billing) are:
- Anthropic subscription auth (setup‑token) (
anthropic)
Docs: https://docs.openclaw.ai/help/faq#can-i-use-claude-max-subscription-without-an-api-key - OpenAI subscription auth (Codex OAuth) (
openai-codex)
Docs: https://docs.openclaw.ai/help/faq#do-you-support-openai-subscription-auth-codex-oauth - GitHub Copilot (
github-copilot)
Monthly; often decent “flat-ish” value depending on your usage. (Still subject to policy/limits.)
Docs: https://docs.openclaw.ai/concepts/model-providers - Google Antigravity (
google-antigravity)
Potentially great value when it works, but it’s exactly the stack that can hit “verify your account” / routing issues.
Docs: https://docs.openclaw.ai/concepts/model-providers - Qwen portal OAuth (
qwen-portal)
Sometimes very cost-effective, but caps/availability can change.
Docs: https://docs.openclaw.ai/concepts/model-providers
What usually works best operationally (so you don’t hard-fail mid-day):
- Primary = your flat-rate/OAuth provider
- Fallback = a cheap metered API provider (only used when you get throttled/blocked)
OpenClaw will fail over across models/providers when auth/rate-limit conditions are hit (when the error is “failover-worthy”): https://docs.openclaw.ai/concepts/model-failover
If you tell me which subscriptions you’re willing to buy (Claude vs ChatGPT/Codex vs Copilot vs Google), I can suggest the most sensible primary + fallback pairing. For the freshest “who currently has the biggest caps/context on subscription” reality check, it’s worth asking in the server’s #models channel too — those limits change constantly.
Antigravity-Manager itself doesn’t “plug into” OpenClaw directly. What you can do is log the same Google account into OpenClaw’s own Antigravity OAuth plugin (it stores its own auth profile locally).
Steps on the machine running the OpenClaw Gateway:
- Enable the bundled auth plugin:
openclaw plugins enable google-antigravity-auth
- Run the Antigravity login flow (this is the key step):
openclaw models auth login --provider google-antigravity --set-default
- Verify it worked:
openclaw models status --probe --probe-provider google-antigravity
- Pick a
google-antigravity/...model:
openclaw models list
openclaw models set google-antigravity/<pick-one-from-the-list>
Notes:
- If you’re in remote mode, you must run those commands on the gateway host (that’s where auth profiles live).
- If you still hit 403 “verify your account”, OpenClaw can’t bypass that — you need to open the verification URL Google provides once, complete it, then retry the probe/login.
If you paste the output of openclaw models status --probe --probe-provider google-antigravity (it should be safe/redacted), I can tell you whether it’s failing at login vs endpoint routing vs account gating.
You can connect to Antigravity-Manager by treating it as a custom model provider in OpenClaw, because it exposes OpenAI-compatible (/v1/chat/completions) and Anthropic-compatible (/v1/messages) endpoints.
Key constraint first: http://127.0.0.1:8045 must be reachable from the machine running the OpenClaw Gateway. If your Gateway is on a VPS and Antigravity-Manager is on your laptop, 127.0.0.1 won’t work.
Option A (usually easiest): use Antigravity-Manager’s OpenAI-compatible endpoint
Antigravity-Manager API base is http://127.0.0.1:8045/v1, so configure an OpenAI-compatible custom provider:
// openclaw.json (snippet)
{
env: {
ANTIGRAVITY_API_KEY: "sk-...your Antigravity Manager API_KEY...",
},
models: {
mode: "merge",
providers: {
antigravity: {
baseUrl: "http://127.0.0.1:8045/v1",
apiKey: "${ANTIGRAVITY_API_KEY}",
api: "openai-completions",
// IMPORTANT: set this id to whatever model name Antigravity-Manager expects
models: [{ id: "gemini-3-pro-high", name: "AG: gemini-3-pro-high" }],
},
},
},
agents: {
defaults: {
model: { primary: "antigravity/gemini-3-pro-high" },
},
},
}
Then restart the gateway and check:
openclaw models status
Option B: use Antigravity-Manager’s Anthropic-compatible endpoint (/v1/messages)
Their docs show ANTHROPIC_BASE_URL="http://127.0.0.1:8045" (no /v1), so:
{
env: { ANTIGRAVITY_API_KEY: "sk-..." },
models: {
mode: "merge",
providers: {
ag_anthropic: {
baseUrl: "http://127.0.0.1:8045",
apiKey: "${ANTIGRAVITY_API_KEY}",
api: "anthropic-messages",
models: [{ id: "claude-opus-4-5-thinking", name: "AG: Claude Opus" }],
},
},
},
agents: { defaults: { model: { primary: "ag_anthropic/claude-opus-4-5-thinking" } } },
}
One question (so I don’t guess wrong)
In Antigravity-Manager’s UI, what model id does it want clients to send for your Google AI Pro routing (e.g. gemini-3-pro-high, gemini-3-flash, etc.)?
If you tell me that string (or paste a screenshot of the proxy settings / model mapping page), I can give you the exact models.providers...models:[{id: ...}] line and a matching openclaw models set ... command.
Судя по openclaw models status, ты уже используешь “API-версию” (локальный прокси) — Default: antigravity/gemini-2.5-flash.
OAuth-профиль google-antigravity:<email> просто лежит в auth store, поэтому и показывается в статусе/usage, но не должен использоваться, пока ты явно не выбираешь модель google-antigravity/....
Если хочешь полностью убрать OAuth, сделай так (на машине, где крутится Gateway):
1) (опционально) запрети вообще google-antigravity как плагин логина
openclaw plugins disable google-antigravity-auth
(Это выключит OAuth-login плагин; сам провайдер всё равно существует, но без кредов не заведётся.)
2) Удали OAuth-профиль из auth-profiles.json
Сначала бэкап:
cp ~/.openclaw/agents/main/agent/auth-profiles.json ~/.openclaw/agents/main/agent/auth-profiles.json.bak
Потом удали ключи google-antigravity:... из profiles (и, если есть, из usageStats/order). Проще всего через jq:
jq 'del(
.profiles["google-antigravity:kathernlintshsw25@gmail.com"],
.usageStats["google-antigravity:kathernlintshsw25@gmail.com"],
.order["google-antigravity"]
)' ~/.openclaw/agents/main/agent/auth-profiles.json \
> /tmp/auth-profiles.json && mv /tmp/auth-profiles.json ~/.openclaw/agents/main/agent/auth-profiles.json
Если jq нет — открой файл вручную и удали блок(и) с google-antigravity:kathern....
3) Перезапусти gateway
openclaw gateway restart
4) (опционально, но полезно) “залочь” модель только на antigravity/...
Чтобы агент случайно не пытался выбрать что-то другое, добавь allowlist (agents.defaults.models) только с твоей моделью.
Если хочешь — скинь содержимое ~/.openclaw/agents/main/agent/models.json (без секретов) или хотя бы кусок с providers.antigravity, и я подскажу точный минимальный конфиг для “только локальный мост, никакого OAuth”.
Ок, теперь всё понятно — у тебя кастомный провайдер antigravity (OpenAI-compatible) на http://127.0.0.1:8045/v1, и это именно то, что нужно для Antigravity-Manager.
0) Важно: ты только что запостил API key публично
В твоём models.json лежит:
"apiKey": "sk-be4531aee9df4c56bebf94930ab42a4f"
Считай его скомпрометированным: сгенерируй/смени API_KEY в Antigravity-Manager (если это возможно в UI/настройках), и обнови ключ в OpenClaw после этого.
Дальше — как оставить только API (antigravity) и убрать OAuth (google-antigravity).
1) Убедись, что OpenClaw использует только antigravity/...
Самый надёжный способ — включить allowlist моделей:
В ~/.openclaw/openclaw.json добавь:
{
agents: {
defaults: {
model: { primary: "antigravity/gemini-2.5-flash" },
models: {
"antigravity/gemini-2.5-flash": {},
"antigravity/gemini-3-flash": {}, // если хочешь иметь второй вариант
},
},
},
}
Тогда даже если где-то есть OAuth-профили, агент не сможет внезапно выбрать google-antigravity/....
2) Полностью убери OAuth-профиль google-antigravity (чтобы он не светился в status)
Открой файл:
~/.openclaw/agents/main/agent/auth-profiles.json
И удали из profiles запись вида:
"google-antigravity:<твой email>": { ... }
Также, если там есть секции usageStats / order для google-antigravity — тоже убери соответствующие ключи.
После этого openclaw models status перестанет показывать:
Providers w/ OAuth/tokens: google-antigravity ...
3) (Опционально) выключи сам плагин OAuth для Antigravity
Чтобы случайно снова не залогиниться OAuth’ом:
openclaw plugins disable google-antigravity-auth
4) Перезапусти Gateway
openclaw gateway restart
И проверь:
openclaw models status
Бонус: как не хранить ключ прямо в models.json
Раз ты пишешь, что Shell env: off, лучше положить секрет в ~/.openclaw/.env, а в конфиге ссылаться на переменную:
~/.openclaw/.env
ANTIGRAVITY_API_KEY=sk-...новый ключ...
А в models.providers.antigravity.apiKey использовать:
apiKey: "${ANTIGRAVITY_API_KEY}"
Если хочешь — скинь (уже без ключа) содержимое ~/.openclaw/agents/main/agent/auth-profiles.json только секцию "profiles" (замажь/удали значения), и я скажу точно, какие записи нужно выкинуть, чтобы остался только antigravity.
Эта ошибка не от OpenClaw напрямую — это Antigravity‑Manager тебе возвращает:
- снаружи: HTTP 429
All accounts exhausted - внутри (root cause): HTTP 403
Verify your account to continueотcloudcode-pa.googleapis.comсreason: VALIDATION_REQUIRED
То есть Antigravity‑Manager попытался прогнать запрос через все подключённые аккаунты, и все они упёрлись в гугловую “нужна верификация аккаунта”. Поэтому он и пишет “accounts exhausted” (не про токены/лимиты, а про то, что все аккаунты сейчас непригодны).
Что делать
- Пройти верификацию в самом Google-аккаунте, который добавлен в Antigravity‑Manager
В ошибке у тебя естьvalidation_learn_more_url(support link), но обычно там ещё бывает конкретныйvalidation_url/ “Verify your account” (ссылка вида accounts.google.com/signin/continue…).
- Открой именно ссылку Verify в браузере
- Логинься тем же Google‑аккаунтом
- Пройди то, что попросит (captcha / phone / security check / подтверждение условий)
- После этого в Antigravity‑Manager:
- обнови/перелогинь аккаунт (refresh token/session)
- сделай их “test/probe” (если есть кнопка проверки) и убедись, что 403 ушёл
- И только потом снова тестируй через OpenClaw.
Важное уточнение
Даже если ты используешь локальный API bridge (antigravity → http://127.0.0.1:8045/v1), он всё равно ходит в тот же класс upstream’а (Cloud Code Assist / Code Assist-style). Так что “убрать OAuth из OpenClaw” не убирает необходимость верифицировать Google аккаунт — проблема сейчас на стороне Google аккаунта/доступа.
Чтобы OpenClaw не “падал” в ноль
Пока Google-аккаунт верифицируешь, добавь fallback на какой-нибудь запасной провайдер/модель (даже если он платный, он будет включаться только когда Antigravity недоступен). Док: https://docs.openclaw.ai/concepts/model-failover
Если скинешь полный кусок ошибки, где есть конкретная ссылка “Verify your account” (не только support URL) — скажу точно, что именно надо открыть/где обычно “разблокируется”.
Если хочешь “стереть всё и начать с нуля” (конфиг + креды + сессии) — для этого есть openclaw reset. Делай это на той машине, где запущен Gateway (если ты в remote mode — на сервере).
Вариант 1 (рекомендуемый): полный сброс, но CLI остаётся установленным
- Останови gateway:
openclaw gateway stop
- Посмотри, что будет удалено (безопасная проверка):
openclaw reset --dry-run
- Сотри всё и начни заново:
openclaw reset --scope full --yes --non-interactive
- Запусти онбординг заново:
openclaw onboard --install-daemon
Док: https://docs.openclaw.ai/cli/reset
Вариант 2 (совсем “ядерный”): удалить ещё и сервис/данные/воркспейс
Если хочешь снести вообще всё (включая сервис и state/workspace), тогда:
openclaw uninstall --all --yes --non-interactive
Док: https://docs.openclaw.ai/cli/uninstall
Важно
reset/uninstallне “отзывает” ключи у внешних сервисов. Если ты засветил API key (а ты его постил в чат) — его лучше поменять/перевыпустить в Antigravity-Manager независимо от сброса.
Если скажешь, ты хочешь удалить только конфиг (оставить креды/сессии) или прям “всё-всё” — подскажу точную команду со scope.
Ок — “мост” в твоём случае = Antigravity‑Manager (локальный прокси) + кастомный провайдер antigravity в OpenClaw. Чтобы перевести его на другой аккаунт с подпиской, обычно достаточно переавторизовать аккаунт в Antigravity‑Manager и обновить ключ/настройки в OpenClaw.
1) В Antigravity‑Manager
- Accounts / 账号 → удали/отключи старый Google‑аккаунт.
- Добавь новый аккаунт через их OAuth flow и сделай его активным (или “best account”).
- В разделе API Proxy / 反代:
- убедись что прокси включён и слушает
http://127.0.0.1:8045 - сгенерируй новый
API_KEY(старый ты засветил в чате, его лучше считать компрометированным)
- Если снова увидишь
403 VALIDATION_REQUIRED / Verify your account— это уже Google-гейтинг: этот новый аккаунт тоже нужно один раз “верифицировать” по ссылке Verify.
2) В OpenClaw (подключение к прокси)
Лучше не хранить ключ в models.json, а положить в .env.
- В
~/.openclaw/.env:
ANTIGRAVITY_API_KEY=sk-...НОВЫЙ_КЛЮЧ_ИЗ_ANTIGRAVITY_MANAGER...
- В
~/.openclaw/openclaw.json(или где у тебя описан кастомный провайдер) выставить:
{
models: {
mode: "merge",
providers: {
antigravity: {
baseUrl: "http://127.0.0.1:8045/v1",
apiKey: "${ANTIGRAVITY_API_KEY}",
api: "openai-completions",
models: [
{ id: "gemini-2.5-flash", name: "AG: Gemini 2.5 Flash" },
{ id: "gemini-3-flash", name: "AG: Gemini 3 Flash" }
]
}
}
},
agents: { defaults: { model: { primary: "antigravity/gemini-2.5-flash" } } }
}
- Перезапуск:
openclaw gateway restart
- Проверка:
openclaw models status --probe --probe-provider antigravity
Важный момент про 127.0.0.1
http://127.0.0.1:8045 работает только если Antigravity‑Manager и OpenClaw Gateway на одной машине. Если Gateway на VPS — надо либо:
- перенести Antigravity‑Manager на VPS, либо
- пробросить порт (SSH tunnel), либо
- поднять это как node/локальный сервис, доступный с gateway-host.
Если скажешь, где у тебя крутится Gateway (локально или на сервере) — подскажу самый простой способ связать их.
Ок, дальше тебе нужно просто добавить Antigravity‑Manager как кастомный model provider в OpenClaw (OpenAI‑compatible), и убедиться что OpenClaw достучится до :8045.
Сначала уточнение (важно для baseUrl):
- Если OpenClaw Gateway и Antigravity‑Manager на одном сервере →
baseUrl: http://127.0.0.1:8045/v1 - Если OpenClaw на другом хосте →
baseUrl: http://<IP_или_DNS_твоего_сервера>:8045/v1(и порт 8045 должен быть доступен + не забудь про auth)
1) Проверь, что Antigravity‑Manager реально отвечает
На сервере с Antigravity‑Manager:
- Убедись что сервис слушает
8045(и не только localhost, если OpenClaw на другом хосте). - Открой в браузере:
http://<host>:8045(UI) иhttp://<host>:8045/v1(API base)
Если есть возможность — сделай “test request” в UI Antigravity‑Manager, чтобы убедиться что аккаунт не упирается в 403 Verify your account.
2) Положи ключ Antigravity в .env OpenClaw (рекомендую)
На хосте, где крутится OpenClaw Gateway:
~/.openclaw/.env
ANTIGRAVITY_API_KEY=sk-...твой ключ...
(И да: ключ, который ты ранее постил в чат, лучше считать скомпрометированным и заменить.)
3) Добавь кастомный provider в ~/.openclaw/openclaw.json
Пример (под твою схему openai-completions):
{
models: {
mode: "merge",
providers: {
antigravity: {
baseUrl: "http://127.0.0.1:8045/v1", // или http://<server>:8045/v1
apiKey: "${ANTIGRAVITY_API_KEY}",
api: "openai-completions",
models: [
{ id: "gemini-2.5-flash", name: "AG: Gemini 2.5 Flash" },
{ id: "gemini-3-flash", name: "AG: Gemini 3 Flash" }
]
}
}
},
agents: {
defaults: {
model: { primary: "antigravity/gemini-2.5-flash" },
// (опционально) чтобы оставить ТОЛЬКО этот мост и не дать выбрать OAuth-модели:
models: {
"antigravity/gemini-2.5-flash": {},
"antigravity/gemini-3-flash": {}
}
}
}
}
4) Перезапусти Gateway и проверь
openclaw gateway restart
openclaw models status --probe --probe-provider antigravity
Если будет ошибка — скинь сюда вывод openclaw models status --probe --probe-provider antigravity (можно с замазанными ключами) и напиши:
- OpenClaw и Antigravity‑Manager на одном сервере или нет?
- какой
baseUrlв итоге поставил (127.0.0.1 или внешний)?
Ты сейчас засветил секреты в чате: ключ Antigravity (sk-41ee…), Telegram bot token и gateway token. Их нужно считать скомпрометированными → сразу ротируй (в Antigravity‑Manager, у BotFather, и gateway.auth.token).
Дальше по настройке OpenClaw под твой Antigravity‑Manager:
1) Добавь кастомный provider antigravity (мост)
В ~/.openclaw/openclaw.json добавь блок models.providers. Пример:
{
env: {
ANTIGRAVITY_API_KEY: "sk-...НОВЫЙ_КЛЮЧ_ИЗ_ANTIGRAVITY_MANAGER..."
},
models: {
mode: "merge",
providers: {
antigravity: {
baseUrl: "http://127.0.0.1:8045/v1", // если OpenClaw и мост на одном сервере
// baseUrl: "http://<IP_МОСТА>:8045/v1", // если мост на другом сервере
apiKey: "${ANTIGRAVITY_API_KEY}",
api: "openai-completions",
models: [
{ id: "gemini-2.5-flash", name: "AG: Gemini 2.5 Flash" },
{ id: "gemini-3-flash", name: "AG: Gemini 3 Flash" }
]
}
}
}
}
Важно: если Antigravity‑Manager на другом сервере — порт 8045 должен быть доступен с хоста OpenClaw (firewall/security group).
2) Переключи default model с OAuth (google-antigravity/...) на твой мост (antigravity/...)
Замени у себя:
agents: {
defaults: {
model: { primary: "antigravity/gemini-2.5-flash" },
models: {
"antigravity/gemini-2.5-flash": {},
"antigravity/gemini-3-flash": {}
}
}
}
И убери "google-antigravity/gemini-3-pro-low" из agents.defaults.models, иначе он будет оставаться allowlisted.
3) (Опционально) выключи OAuth-плагин, чтобы больше не мешал
openclaw plugins disable google-antigravity-auth
4) Перезапусти Gateway и проверь
openclaw gateway restart
openclaw models status --probe --probe-provider antigravity
Если хочешь — ответь на 1 вопрос, чтобы я дал точную строку baseUrl:
OpenClaw Gateway у тебя запущен на том же сервере, где Antigravity‑Manager, или на другом?
сделай это сам
Не могу “сделать сам” — у меня нет доступа к твоему серверу/файлам из Discord. Но могу дать точные команды, которые ты просто копипастишь на машине с OpenClaw Gateway.
И сначала важное: ты уже засветил API key / Telegram bot token / gateway token. Их надо срочно заменить (иначе кто угодно может пользоваться).
Ниже — как переключить OpenClaw с google-antigravity/... на твой локальный мост antigravity-manager (openai-completions на :8045).
Шаги (копипаст)
1) Положи ключ моста в ~/.openclaw/.env
(лучше так, чем хранить ключ прямо в json)
nano ~/.openclaw/.env
Добавь строку:
ANTIGRAVITY_API_KEY=sk-...НОВЫЙ_КЛЮЧ_ИЗ_ANTIGRAVITY_MANAGER...
2) Пропиши кастомного провайдера antigravity
Если OpenClaw и Antigravity‑Manager на одном хосте, оставь 127.0.0.1.
Если Antigravity‑Manager на другом сервере, замени на http://<IP/DNS>:8045/v1 и открой порт.
openclaw config set models.mode "merge"
openclaw config set models.providers.antigravity '{
baseUrl: "http://127.0.0.1:8045/v1",
apiKey: "${ANTIGRAVITY_API_KEY}",
api: "openai-completions",
models: [
{ id: "gemini-2.5-flash", name: "AG: Gemini 2.5 Flash" },
{ id: "gemini-3-flash", name: "AG: Gemini 3 Flash" }
]
}' --json
3) Сделай модель по умолчанию = мост, и оставь allowlist только на него
openclaw config set agents.defaults.model.primary "antigravity/gemini-2.5-flash"
openclaw config set agents.defaults.models '{
"antigravity/gemini-2.5-flash": {},
"antigravity/gemini-3-flash": {}
}' --json
4) (Опционально) выключи OAuth-плагин Google Antigravity
openclaw plugins disable google-antigravity-auth
5) Перезапусти Gateway и проверь
openclaw gateway restart
openclaw models status --probe --probe-provider antigravity
Чтобы “убрать OAuth полностью”
Даже после отключения плагина OAuth-профиль может оставаться в статусе, потому что он сохранён в:
~/.openclaw/agents/main/agent/auth-profiles.json
Если хочешь — скажи, и я дам безопасную команду jq/инструкцию, как удалить оттуда только google-antigravity:<email>.
Срочно по безопасности (пожалуйста сделай)
- В Antigravity‑Manager смени API_KEY (тот, что ты отправил, уже компрометирован).
- В Telegram через BotFather перевыпусти токен и обнови:
openclaw config set channels.telegram.botToken "НОВЫЙ_ТОКЕН"
- Сменить gateway token:
openclaw config set gateway.auth.token "НОВЫЙ_ДЛИННЫЙ_СЛУЧАЙНЫЙ_ТОКЕН"
openclaw gateway restart
Если напишешь: OpenClaw и Antigravity‑Manager на одном сервере или на разных? — скажу точный baseUrl и что открыть в firewall.
Отлично — это ровно то, что нужно.
По выводу видно, что:
- Default =
antigravity/gemini-2.5-flash - OAuth/tokens = 0 (то есть
google-antigravityбольше не используется) - Probe = ok для
antigravity/...(мост отвечает, ключ работает)
Что дальше
- Просто протестируй “в бою”: напиши боту в Telegram и посмотри, что ответы идут через мост.
- (Опционально) чтобы случайно не вернуться к OAuth, оставь как у тебя сейчас:
agents.defaults.modelsтолькоantigravity/...- и можешь держать
google-antigravity-authвыключенным (если уже выключил — ок).
Важно про безопасность (реально важно)
Ты публиковал ключи/токены в чат. Их стоит обязательно заменить:
- Antigravity-Manager API_KEY → сгенерировать новый
- Telegram bot token → перевыпустить в BotFather
- Gateway auth token → сменить в
gateway.auth.token
(И потом обновить их в OpenClaw и перезапустить gateway.)
Если это всё заработало и вопрос закрыт — пожалуйста, отметь сообщение с решением как Solution (чтобы Answer Overflow проиндексировал).
удали этот запрос тут
Удалил.
На всякий случай: ты ранее публиковал ключ/токены — их всё равно лучше срочно ротировать (Antigravity API key, Telegram bot token, gateway token), потому что даже удалённое сообщение могли успеть увидеть/проиндексировать.
а удали пожалуйста полностью этот топик из дискорд
Я могу удалять отдельные сообщения, но целиком удалить топик/ветку (форум‑пост / thread) обычно могут только автор топика или модераторы/админы (нужны права Manage Threads / Manage Channels). Плюс я не буду удалять целые треды по просьбе обычного участника — это затрагивает весь канал.
Что можешь сделать ты:
- Если у тебя есть права: открой первый пост топика → меню
…→ Delete / Удалить (или “Delete Thread/Forum post”). - Если кнопки удаления нет — значит прав нет. Тогда единственный вариант: попросить модератора удалить топик (без пингов: просто напиши в #help, что случайно утекли токены и нужен delete).
Я уже удалил сообщения с ключами, которые ты попросил. Если в треде остались ещё конкретные сообщения, которые надо снести — скинь их message id, удалю точечно.
И да: даже после удаления топика токены всё равно нужно срочно ротировать (Antigravity API key, Telegram bot token, gateway token), потому что их могли успеть увидеть/скопировать.
Чтобы добавить Z.AI и сделать его основным (main):
1) Добавь ключ Z.AI на хосте Gateway
Раз у тебя в models status было Shell env: off, проще всего положить ключ в ~/.openclaw/.env:
nano ~/.openclaw/.env
Добавь:
ZAI_API_KEY=sk-...твой ключ...
2) Поставь Z.AI как default model
Самый простой путь — через CLI:
openclaw models list
openclaw models set zai/<модель_из_списка>
В документации пример модели: zai/glm-4.7 (и алиасы z.ai/* / z-ai/* автоматически нормализуются в zai/*).
Но чтобы не гадать и не промахнуться по доступным моделям — лучше взять точный zai/... из openclaw models list.
3) Если у тебя включен allowlist agents.defaults.models (как было с antigravity)
Тогда нужно либо:
Вариант A (рекомендую): добавить Z.AI модель в allowlist (чтобы не открывать “все модели”):
openclaw config set agents.defaults.models '{
"antigravity/gemini-2.5-flash": {},
"antigravity/gemini-3-flash": {},
"zai/<твоя-модель>": {}
}' --json
Вариант B: убрать allowlist целиком (разрешить все модели):
openclaw config unset agents.defaults.models
4) Перезапусти Gateway и проверь
openclaw gateway restart
openclaw models status --probe --probe-provider zai
Если скинешь вывод openclaw models list (хотя бы строки с zai/...), скажу какую модель лучше поставить main под твои задачи (исследования/документы/соцсети).
а как через терминал сделать?
Через терминал это выглядит так (на хосте, где крутится OpenClaw Gateway):
1) Добавить ключ Z.AI
Рекомендую через ~/.openclaw/.env (чтобы не хранить ключ в openclaw.json):
nano ~/.openclaw/.env
Добавь строку:
ZAI_API_KEY=sk-...
Сохрани и выйди.
2) Перезапустить Gateway (чтобы он подхватил .env)
Проверь:
openclaw config get agents.defaults.models
Если там список ограничен только antigravity/..., то добавь туда выбранную модель Z.AI (иначе она “не разрешена”):
openclaw config set agents.defaults.models '{
"antigravity/gemini-2.5-flash": {},
"antigravity/gemini-3-flash": {},
"zai/<выбранная_модель>": {}
}' --json
openclaw gateway restart
(Или более грубо — снять ограничение вообще: openclaw config unset agents.defaults.models.)
6) Проверка
openclaw models status --probe --probe-provider zai
Если скинешь вывод openclaw models list (кусок со строками zai/...), скажу какую именно поставить main под твои задачи.
а через openclaw configure?
Да, можно. openclaw configure — это интерактивный мастер, и в нём есть секция Models (включая allowlist agents.defaults.models).
Сделай так (в терминале на хосте с Gateway):
openclaw configure --section models
Дальше в мастере:
- Добавь/вставь Z.AI API key (провайдер
zai). - Выбери default / primary model на Z.AI.
- В том же разделе отметь Z.AI модель в allowlist (
agents.defaults.models), иначе она может быть “не разрешена” (у тебя allowlist включён).
После выхода из мастера:
openclaw gateway restart
openclaw models status --probe --probe-provider zai
Если в configure не видно Z.AI или он не предлагает выбрать его как primary — скажи, что именно показывает мастер в секции Models, и я подскажу, чем добить через openclaw models set ... / openclaw config set ....
как поставить его по дефолту а чтобы та была потом
я в zai 4.7 flash и 4.6
выбрал
Тебе нужно сделать так:
- Primary (дефолт) =
zai/...(твоя 4.7 flash) - Fallbacks = сначала
zai/...(4.6), потомantigravity/...(мост)
1) Узнай точные имена моделей (чтобы не гадать)
openclaw models list | rg '^zai/|^antigravity/'
(Скопируй оттуда точные строки моделей.)
2) Поставь ZAI как дефолт
openclaw models set zai/<ТВОЯ_4.7_FLASH_МОДЕЛЬ>
3) Настрой fallback цепочку (4.6 → мост)
openclaw config set agents.defaults.model.fallbacks '[
"zai/<ТВОЯ_4.6_МОДЕЛЬ>",
"antigravity/gemini-2.5-flash"
]' --json
4) Если у тебя включён allowlist (agents.defaults.models) — добавь туда все 3 модели
Иначе fallback может не сработать, потому что модель “не разрешена”.
openclaw config set agents.defaults.models '{
"zai/<ТВОЯ_4.7_FLASH_МОДЕЛЬ>": {},
"zai/<ТВОЯ_4.6_МОДЕЛЬ>": {},
"antigravity/gemini-2.5-flash": {}
}' --json
5) Рестарт + проверка
openclaw gateway restart
openclaw models status
Если хочешь — просто вставь сюда вывод команды из шага (1) (zai/... строки), и я скажу точные команды уже без <...>.
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : zai/glm-4.7
Fallbacks (3) : antigravity/gemini-2.5-flash, antigravity/gemini-3-flash, openrouter/google/gemini-2.5-flash
Image model : -
Image fallbacks (0): -
Aliases (0) : -
Configured models (5): antigravity/gemini-2.5-flash, antigravity/gemini-3-flash, openrouter/google/gemini-2.5-flash, zai/glm-4.7-flash, zai/glm-4.6
Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- antigravity effective=models.json:sk-41eeb...35f5a36c | models.json=sk-41eeb...35f5a36c | source=models.json: ~/.openclaw/agents/main/agent/models.json
- zai effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | zai:default=0.....cc
Missing auth
- openrouter Run
openclaw configureor set an API key env var.
OAuth/token status
- none
user@user:~$
как сделать чтобы zai мне именно отвечала
тут?
Да, тут в треде.
Скинь, пожалуйста, вывод (можно одним сообщением):
openclaw models list | rg '^zai/|^antigravity/'
openclaw models status
Секреты/ключи там обычно не печатаются, но если вдруг увидишь sk-... или токены — замажь перед отправкой.
После этого я напишу точные команды, чтобы:
zai/<4.7 flash>был primaryzai/<4.6>был fallback #1antigravity/...был fallback #2
Подскажи вопрос
Когда у меня был antigravity он мог под sudo устанавливать что угодно в терминале, создавать папки и тд
Сейчас у меня z.ai он не может так делатЬ?
Как сделать чтобы он смог
Модель (antigravity vs zai) не “включает/выключает” sudo. Возможность ставить пакеты/создавать папки зависит от двух вещей:
- Разрешены ли инструменты (
exec,write,edit) политикой tools/sandbox - Умеет ли выбранная модель нормально вызывать tools (у некоторых моделей tool-calling хуже — тогда они просто “болтают” и не делают
exec)
Ниже — как вернуть “может ставить/создавать” независимо от модели.
A) Проверь, что tools не заблокированы (самое частое)
В терминале на хосте Gateway:
openclaw sandbox explain
openclaw config get tools
openclaw config get tools.byProvider
Тебе нужно, чтобы не было запрета group:runtime / exec и чтобы профиль tools не был minimal.
Быстрый “включить как для работы” вариант:
openclaw config set tools.profile "coding"
openclaw gateway restart
(Профиль coding включает exec/process + файловые инструменты.)
Если у тебя есть ограничения по провайдеру, убедись что нет чего-то вроде:
tools.byProvider.zai.profile = "minimal".
B) Если ты в sandbox и поэтому “не может”
Если sandbox explain показывает что сессия sandboxed и exec заблокирован sandbox policy — либо выключи sandbox:
openclaw config set agents.defaults.sandbox.mode "off"
openclaw gateway restart
либо разреши exec внутри sandbox (более тонко), но проще начать с mode: off.
C) Про sudo (важно)
Даже если exec разрешён, sudo обычно требует пароль. Я не советую давать боту пароль.
Правильный способ, если хочешь чтобы он мог ставить пакеты “сам”:
- настроить NOPASSWD только для нужных команд, а не
ALL.
Например (Ubuntu/Debian), через visudo:
sudo visudo -f /etc/sudoers.d/openclaw
и добавить (замени user на твоего юзера):
user ALL=(root) NOPASSWD: /usr/bin/apt, /usr/bin/apt-get, /usr/bin/dpkg
Это всё равно риск, но сильно безопаснее чем NOPASSWD:ALL.
D) Если проблема не в правах, а в том что Z.AI “не зовёт tools”
Тогда в том же чате попробуй явно попросить:
“Используй tool
execи выполниls -la”
Если он всё равно не вызывает инструменты — это уже качество tool-calling у модели. Практичный выход: держать Z.AI как “болталку/ресёрч”, а для задач с установкой/терминалом иметь fallback/второго агента на модель, которая стабильно вызывает tools.
Если скинешь вывод openclaw sandbox explain (можно тут) — я точно скажу, что именно сейчас блокирует exec/файлы.
user@user:~$ openclaw config get tools
🦞 OpenClaw 2026.2.6-3 (85ed6c7)
I can grep it, git blame it, and gently roast it—pick your coping mechanism.
Config path not found: tools
user@user:~$
Config path not found: tools — это нормально. Это значит, что в openclaw.json у тебя просто нет секции tools, и используются дефолтные настройки.
Если сейчас с z.ai “не может ставить/создавать”, то почти всегда причина одна из двух:
exec/файловые tools реально запрещены (sandbox/tool policy/approvals)- модель Z.AI хуже вызывает tools (она “понимает”, но не делает
exec)
Чтобы понять, что именно у тебя, сделай быстрый тест.
1) Проверь sandbox/tool policy (диагностика)
openclaw sandbox explain
openclaw config get agents.defaults.sandbox
openclaw config get agents.defaults.tools
Если там видно, что сессия sandboxed или есть deny на runtime tools — это и есть причина.
2) Насильно включи “coding” tools профиль (создаст секцию tools)
Это безопасный базовый шаг:
openclaw config set tools.profile "coding"
openclaw gateway restart
После этого у модели точно будет доступ к exec/read/write/edit (если их не режет sandbox).
3) Проверь exec approvals (если они у тебя включены)
На некоторых установках exec может быть в режиме deny/allowlist:
openclaw approvals get
Если там security: deny, агент не сможет запускать команды, пока ты не настроишь approvals/allowlist.
4) Про sudo (важно)
Даже если exec работает, sudo обычно попросит пароль. Я не рекомендую давать боту пароль или включать NOPASSWD:ALL.
Если прям надо, делай минимально:
- либо ставь пакеты руками (самый безопасный вариант),
- либо настрой NOPASSWD только для apt/apt-get (а не для всего sudo).
Мини-тест, чтобы отличить “tools заблокированы” от “модель не вызывает tools”
Попроси бота в чате выполнить команду whoami через exec.
Если он отвечает ошибкой вида “tool blocked/denied/approval required” — это политика.
Если он просто пишет текст и не запускает exec — это поведение модели (тогда держи Z.AI как primary, а для “терминал/установка” используй fallback на модель, которая стабильно вызывает tools).
Скинь сюда вывод:
openclaw sandbox explain
openclaw approvals get
и я скажу точную правку (что именно у тебя блокирует).
user@user:~$ openclaw sandbox explain
🦞 OpenClaw 2026.2.6-3 (85ed6c7)
If you're lost, run doctor; if you're brave, run prod; if you're wise, run tests.
Effective sandbox:
agentId: main
sessionKey: agent:main:main
mainSessionKey: agent:main:main
runtime: direct
mode: off scope: agent perSession: false
workspaceAccess: none workspaceRoot: /home/user/.openclaw/sandboxes
Sandbox tool policy:
allow (default): exec, process, read, write, edit, apply_patch, image, sessions_list, sessions_history, sessions_send, sessions_spawn, session_status
deny (default): browser, canvas, nodes, cron, gateway, telegram, whatsapp, discord, googlechat, slack, signal, imessage
Elevated:
enabled: true
channel: telegram
allowedByConfig: false
failing gates: allowFrom (tools.elevated.allowFrom.telegram)
Fix-it:
- tools.sandbox.tools.allow
- tools.sandbox.tools.deny
- agents.list[].tools.sandbox.tools.allow
- agents.list[].tools.sandbox.tools.deny
- tools.elevated.enabled
- tools.elevated.allowFrom.telegram
Docs: docs.openclaw.ai/sandbox
user@user:~$ openclaw approvals get
Showing local approvals.
Approvals
│ Target │ local │
│ Path │ ~/.openclaw/exec-approvals.json │
│ Exists │ no │
│ Hash │ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85 │
│ │ 5 │
│ Version │ 1 │
│ Socket │ default │
│ Defaults │ none │
│ Agents │ 0 │
│ Allowlist │ 0 │
No allowlist entries.
user@user:~$
По твоему sandbox explain всё ок: sandbox выключен (runtime: direct, mode: off) и инструменты разрешены:
- allow:
exec, read, write, edit, process, …
То есть проблема не в том, что Z.AI “запрещает” терминал. Разница обычно в одном из двух:
1) “Создавать папки/файлы”
Это не требует sudo. Агент должен уметь делать это через tools:
- через
exec:mkdir -p ... - или через
write/edit(внутри workspace)
Если он “не делает”, а только отвечает текстом — это чаще всего качество tool-calling у модели (она хуже инициирует exec).
Что сделать
Принудительно включи нормальный tool-профиль (чтобы точно не было урезания):
openclaw config set tools.profile "coding"
openclaw gateway restart
И тест: попроси бота явно:
“Используй tool
execи выполни:mkdir -p test && ls -la”
Если он всё равно не вызывает exec — это уже поведение модели. Тогда практично держать:
- Z.AI как primary для текста/ресёрча
- и fallback/ручной /model на
antigravity/...(или другую модель), когда нужны действия в терминале.
2) “Под sudo устанавливать пакеты”
Вот это как раз отдельная тема: sudo почти всегда попросит пароль, а агент не должен знать твой пароль.
Технически “сделать чтобы мог” можно только так:
- либо ты сам вводишь пароль в интерактивном
pty(неудобно и небезопасно),
- либо на сервере настроен
sudo NOPASSWD(это риск), - либо ты ставишь пакеты сам руками (самый безопасный вариант).
Если ты всё же хочешь NOPASSWD — делай минимально, не ALL. Например только для apt:
sudo visudo -f /etc/sudoers.d/openclaw
и добавь (замени user на имя твоего юзера):
user ALL=(root) NOPASSWD: /usr/bin/apt, /usr/bin/apt-get, /usr/bin/dpkg
Быстрый вопрос
Когда ты говоришь “с Z.AI не может” — что именно происходит?
- он пишет “tool blocked/denied”, или
- просто отвечает текстом и не вызывает exec?
Если скинешь 1 пример сообщения + ответа (без секретов), я точно скажу, это политика/доступ или поведение модели.
Почему openclaw не хочет логиниться в мой личный аккаунт X измени в нем конфиг чтобы он пользоваться моим аккаунтом X
Тут “логин” — это не настройка в openclaw.json, а OAuth-профиль (auth profile), который OpenClaw хранит у себя и потом выбирает/ротирует.
Поэтому “поменять конфиг чтобы использовал мой личный аккаунт X” = залогиниться нужным аккаунтом и закрепить нужный auth‑profile.
Если речь про Google Antigravity / Cloud Code Assist (ошибка 403 “Verify your account…”)
- Убедись, что включён плагин OAuth:
openclaw plugins enable google-antigravity-auth
- Перелогинься именно тем Google‑аккаунтом, который хочешь использовать:
openclaw models auth login --provider google-antigravity --set-default
- Проверь, какой профиль реально выбран/виден:
openclaw models status
- Если у тебя несколько Google аккаунтов (будут профили вида
google-antigravity:<email>), то можно принудительно закрепить порядок:
openclaw models auth order set --provider google-antigravity google-antigravity:<your@email>
Док: https://docs.openclaw.ai/gateway/authentication
и про профили/ротацию: https://docs.openclaw.ai/concepts/model-failover
Важно: конкретно 403 “Verify your account to continue” сейчас выглядит как известная проблема маршрутизации/эндпоинта (см. твой issue). Это не “лечится конфигом” — даже с правильным аккаунтом может продолжать падать. В таком случае временный обходной путь — переключиться на другого провайдера/модель до фикса (например, обычный Google API key провайдер вместо antigravity).
Уточни, что ты называешь “аккаунт X”
Это:
- Google (Antigravity/Code Assist)? (судя по треду — да)
- или xAI / X (Twitter)?
Скинь, пожалуйста, openclaw --version и кусок вывода openclaw models status (где видно provider + выбранный profile) — скажу точно, какой профиль сейчас используется и как его зафиксировать.