Блокер (эскалация): простой команды 23:52–23:55 — исчерпан дневной лимит ключа polza, fallback-провайдера нет, Kanban авто-блокирует задачи #51
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Итог (для владельца)
Команда awg-dash простояла 2026-10-21 23:52–23:55 MSK из-за исчерпания дневного лимита ключа провайдера polza, а не из-за дефектов задач. Четыре карточки Sprint 0 ушли в
blockedавтоматически: диспетчер Kanban блокирует карточку после 2 подряд неуспешных попыток (kanban.failure_limit, по умолчанию 2), а каждый воркер в этом окне падал.Сейчас провайдер снова отвечает (
HTTP 200на/v1/modelsи на пробныйchat/completions), работа возобновлена (см. «Что уже сделано»).Хронология
Достигнут лимит по сумме(270 записей в логах)rc=1), диспетчерgave_up(sticky) → 4 карточкиblockedДоказательства (воспроизводимо)
/api/v1/balance(22.10, 00:0x MSK):available=100.27433286,amount=338.34626988,reservedAmount=0,spentAmount=964.13956371,updatedAt=2026-10-21T21:06:31Z./api/v1/key: ключpza_emOW…Nk2dIT,limit=300,limit_remaining=100.27433286,limit_reset=daily— дневной лимит 300 ₽ на ключ.openai.APIError: Резервация под запрос (1.00 ₽) превышает доступный остаток лимита (0.76 ₽)(
/root/.hermes/profiles/devops/logs/errors.log,/root/.hermes/profiles/*/logs/managed-worker.log).techlead-agent,devops,backend-engineer,frontend-engineer,qa-engineer→ единая точка отказа.msgs=173 tokens=~237,011— квота тратится на большой контекст, отсюда быстрый расход./root/.hermes/kanban/boards/awg-dash/logs/*.log→[kanban-worker-exit] rc=1(×2 на каждую задачу; у #20 первая попытка завершилась успешноrc=0сreview_requested).Каскад отказа (главное)
APIError(без различимого HTTP-статуса).kanban_turn_recovery, 3 попытки) — контекст у воркеров огромный (до ~237k токенов на запрос).Context length exceeded: … Cannot compress further, в интерфейсе это выливается в сообщениеThis conversation has grown too long for deepseek/deepseek-v4.1-flash to read.rc=1(обычный краш, неEX_TEMPFAIL), 2 подряд → sticky auto-block.Вывод: предусмотренный контур «квота/биллинг не считается падением» (код
75 EX_TEMPFAIL,rate_limited→ requeue без штрафа) в этом случае не сработал: ошибка пришла какopenai.APIErrorбез статуса, а финальная причина в логах выглядела как переполнение контекста, а не как квота. Диагноз сильный, но чтобы называть это багом Hermes, нужен чистый репро в окне квоты — без этого фиксирую как гипотезу первого порядка.Вторичный дефект (не влиял на блокировку): в логах воркеров есть
agent.runtime_session_store.WorkerPersistenceError: invalid_paramsиSession DB compression split failed — new session will NOT be indexed: invalid_params— стоит отдельного разбора после стабилизации бюджета.Что уже сделано (TechLead, 22.10 00:08–00:12)
t_37f7b719(#17, CI-пайплайн): оставлена заблокированной, но переведена в capability-блок — ложный «краш по квоте» снят, реальная причина — отсутствие Actions runner (см. отдельную эскалацию).t_36a212ed(#19, OpenAPI-контракт): разблокирована, перезапущена (run #13).t_150f58be(#21, dev/staging стенд): разблокирована, перезапущена (run #14, стенд по ssh на 192.168.1.147).t_2dec61bb(#20, storage): переведена вreview, ревьюер переназначен с автора реализации (backend-engineer, self-review) наqa-engineer(реализация уже готова: PR #50).Решения, нужные от владельца
fallback_model/fallback_providersзакомментированы, аauxiliary-провайдер для сжатия контекста берётся от основного. Пока fallback не настроен, любая квота/авария polza = полная остановка команды и невозможность сжать контекст, чтобы дожить до конца оборота. Прошу включить фолбэк (пусть дорогой, но доступный) для аварийного дожима.kanban.max_in_progress: 2(и, при необходимости,kanban.max_in_progress_per_profile: 1) — диспетчер перестанет плодить воркеров быстрее, чем это выдерживает дневной лимит. Плюсkanban.failure_limit: 3, чтобы разовый сетевой/квотный сбой не парковал карточку.hermes kanban set-model <id> <model>), либо требовать от воркеров выгружать большие выводы в файлы вместо дампа в контекст (занесу в шаблон карточек).Все действия TechLead — в advisory-режиме: мержи, пуш в main и деплой не выполнялись.
Текущий статус ключа polza (проверено 29.10.2026 20:54 MSK).
GET /v1/modelsGET /v1/balanceGET /v1/keylimit: 400(daily),limit_remaining: **384.72**,limit_reset: daily,usage_daily: 15.28sha256префиксf9cc87ff8ac0— валидно для backend/frontend/qa/devops/techlead)Простой 22.10 не воспроизводится: за сутки израсходовано 15.28 ₽ из 400 — сама задача его не исчерпала.
Структурный риск остаётся и требует решения владельца (деньгами):
fallback_modelнигде не настроен — исчерпание 400 ₽/сутки останавливает всю команду;openai.APIErrorбез статуса) превращает квочный сбой вblocked-карточки.Решение нужно по одному из вариантов (оставляю на владельца): (а) поднять дневной лимит/пополнить — тогда планирую спринт по бюджету; (б) прописать
fallback_modelна другого провайдера — тогда команда не встанет целиком; (в) принять как есть — тогда не более 1 —2 воркеров одновременно и 30-минутный дайджест как санитар.Issue оставляю открытым именно ради этого решения (инцидент как таковой снят, лимит сброшен резетом).