Аккаунты и квоты
Несколько аккаунтов
Вместо ручного редактирования .env при каждой смене ключа, один раз
зарегистрируйте именованные аккаунты и переключайтесь между ними:
go-z-ai accounts add personal --api-key sk-... # тип определяется автоматически
go-z-ai accounts add work --api-key sk-... --type coding_plan
go-z-ai accounts list
go-z-ai accounts use personal # задаёт значение по умолчанию для будущих команд
go-z-ai accounts show # показывает активный аккаунт
go-z-ai accounts remove work --yes
Аккаунты хранятся в $XDG_CONFIG_HOME/go-z-ai/accounts.json (или
~/.config/go-z-ai/accounts.json), запись выполняется атомарно с правами
0600.
Автоопределение типа: accounts add опрашивает monitor/quota-эндпоинт,
применимый только к coding plan, одним бесплатным (без расхода token) вызовом.
Успешный, корректно сформированный ответ означает coding_plan; в остальных
случаях выполняется откат к pay_as_you_go — это вывод методом исключения, а
не положительное подтверждение, поскольку неизвестно о существовании
эндпоинта, специфичного для ключей pay-as-you-go. Передайте --type явно,
чтобы пропустить опрос. Опрос учитывает --region: ключ
glm_coding_plan_china опрашивает coding-эндпоинт open.bigmodel.cn вместо
эндпоинта api.z.ai, поэтому классификация выполняется относительно нужной
платформы (см. раздел Региональные шлюзы
ниже).
Порядок разрешения — полный список приоритетов для --api-key,
--account, переменных окружения и активного сохранённого аккаунта см. в
разделe Начало работы.
Мониторинг квоты и использования
У аккаунтов GLM Coding Plan есть три независимых окна квоты:
| Окно | Что отслеживает | Тип |
|---|---|---|
| 5-часовое скользящее | token запросов API | Скользящее — использование за последние 5 часов, а не фиксированный период |
| Недельное скользящее | token запросов API | Скользящее — использование за последние 7 дней |
| Месячное | Вызовы MCP-инструментов (web search, web-reader, zread) | Фиксированное, сброс по календарному месяцу |
go-z-ai accounts quota # по всем сохранённым аккаунтам
go-z-ai accounts usage --days 14 # тепловая карта использования token/инструментов
go-z-ai accounts usage --today # сокращение для --days 1
go-z-ai usage quota # одиночный активный аккаунт
go-z-ai usage check --watch # предупреждение, когда использование превышает 80%
Пример вывода accounts quota:
📊 GLM Coding Plan Usage (PRO tier)
• 5-hour rolling token window
Usage: 62%
Resets: 2026-07-11 09:30:00 CEST (in 2h 14m)
Pace: 62% used at 55% of window elapsed — on pace to run out ~24m before reset
• weekly token window
Usage: 41%
Resets: 2026-07-17 09:17:18 CEST (in 5d 22h)
Pace: 41% used at 15% of window elapsed — on pace to run out ~4d before reset
• monthly MCP tools quota
Usage: 574/1000 (57%) — 426 remaining
Resets: 2026-07-26 09:17:18 CEST (in 18d 6h)
By tool:
- search-prime: 470
- web-reader: 97
- zread: 7
Строка Pace (только для окон token) отвечает на вопрос «тратим ли слишком быстро?» — она экстраполирует собственное сообщённое окном использование на долю истекшего времени окна, так что вы узнаёте о риске преждевременного исчерпания до того, как упрётесь в стену. Это линейная математика по числам, возвращаемым API (никаких допущений о пиковых/внепиковых тарифах).
Не каждый аккаунт отображает все окна — на то, какие окна применимы, влияют и
уровень тарифа, и тип аккаунта (accounts show <name> сообщает тип аккаунта;
аккаунты pay_as_you_go полностью пропускаются командами accounts quota /
accounts usage, поскольку coding-plan monitor-эндпоинт к ним неприменим).
Почему утверждение «использование не существует» неверно
Если вы встретите старые заметки в интернете (или в истории git этого репозитория),
утверждающие, что у Z.AI нет API использования/квоты — это было справедливо
только для общей поверхности /api/paas/v4, проверенной изолированно.
Monitor-эндпоинты coding plan (/monitor/usage/quota/limit,
/monitor/usage/model-usage, /monitor/usage/tool-usage) реальны,
задокументированы и именно на них построены QuotaService/UsageService из
pkg/client. Если accounts quota ничего не возвращает для аккаунта, сначала
проверьте его тип (у аккаунтов pay_as_you_go действительно нет этих данных),
прежде чем предполагать, что API сломан.
Региональные шлюзы (api.z.ai / open.bigmodel.cn)
Z.AI обслуживает одно и то же семейство моделей GLM с двух региональных
шлюзов: международный хост api.z.ai (по умолчанию) и материковый китайский
зеркальный open.bigmodel.cn. То, на какой хост попадёт конкретный вызов,
решают два независимых фактора:
1. Embeddings и Moderations всегда маршрутизируются на
open.bigmodel.cn — это единственные сервисы, привязанные к китайскому хосту
в коде (pkg/client/embeddings.go и pkg/client/moderations.go вызывают
doRequestBaseKey(BigModelBaseURL, …)). --china-api-key /
ZAI_CHINA_API_KEY — переключатель учётных данных здесь; он опционален,
поскольку обычный ZAI_API_KEY аутентифицируется одинаково на обеих
платформах (тот же каталог /models, те же ошибки биллинг-уровня — живая
верификация), поэтому откат к общему ключу — частый случай. Задайте отдельный
китайский ключ, только если у вас есть отдельный Credential, применимый
исключительно на bigmodel.cn. Rerank и Voice используют --base-url по
умолчанию (api.z.ai по умолчанию) — они задокументированы только на китайской
платформе, но клиент не принудительно маршрутизирует их.
2. monitor / biz / agents / detection маршрутизируются на
open.bigmodel.cn, если задано --region china (или ZAI_REGION=china); в
противном случае они идут на api.z.ai. Именно этот переключатель нужен
пользователю glm_coding_plan_china, чтобы квота/использование, информация об
аккаунте, агенты и определение типа аккаунта попадали на нужный хост — без
него эти вызовы уходят на api.z.ai, и ключ, выпущенный для Китая, может
провалить аутентификацию или быть неверно классифицированным. --region
не меняет базовый URL чата (для этого используйте --base-url) и хост
Embeddings/Moderations. Псевдонимы: cn, bigmodel, west; неизвестное
значение откатывается к global.
То, получите ли вы реальные результаты от китайских задокументированных сервисов
(Embeddings, Moderations, Rerank, Voice), зависит от тарифа аккаунта, а не
от того, какой ключ вы используете. Каталог моделей аккаунта GLM Coding Plan
содержит только чат — вызов этих сервисов с таким аккаунтом возвращает
400 Unknown Model (код ошибки 1211) на любой из платформ. Это ожидаемое
поведение, а не баг: проверьте go-z-ai models list, чтобы увидеть, что
реально входит в каталог вашего аккаунта.
Хосты китайского зеркала для monitor/biz/agents/detection повторяют структуру
путей api.z.ai, но здесь НЕ ВЕРИФИЦИРОВАНЫ ВЖИВУЮ — для
open.bigmodel.cn живая верификация подтвердила ту же поверхность OpenAPI для
/models и /chat/completions, но пути monitor/biz/agents на китайской
стороне ещё не были зафиксированы в cassette. См. Дорожная карта.
Коды ошибок
APIError (см. Обработка ошибок) категоризирует каждый
код ошибки Z.AI, с которым сталкивался клиентский код. Два наиболее частых,
встречающихся в контексте квоты:
| Код | Значение | Повторяемая |
|---|---|---|
| 1113 | Недостаточный баланс / нет пакета ресурсов | Нет — пополните счёт или смените аккаунт |
| 1308 | Достигнут лимит использования для текущего окна | Нет — дождитесь сброса |
| 1211 | Неизвестная модель | Нет — обычно ограничение по тарифу, см. выше |
| 1302 | Достигнуто ограничение скорости | Да — клиент уже повторяет с backoff |
Полная таблица и способы ветвления по APIError.Category в собственном коде —
в разделе Обработка ошибок.