Зависшая задача Claude Code: когда остановить retry и восстановить состояние
Что делать, если Claude Code зациклился на ошибке: распознавание тупикового retry, 4 шага фиксации состояния, классификация сбоя и безопасное восстановление.
Содержание
Зависшая задача Claude Code: когда остановить retry и восстановить состояние
Бесконечные повторные попытки (retry loop) — одна из главных причин внезапного перерасхода токенов и порчи кода при работе с Claude Code. Когда агент сталкивается с повторяющимся падением тестов, нехваткой прав или циклическим редактированием одних и тех же файлов, повтор запроса без изменения входного сигнала не исправляет проблему, а лишь глубже загоняет сессию в тупик.
Правильная стратегия — вовремя остановить зацикливание, классифицировать сбой на уровне API и кодовой базы, зафиксировать фактическое состояние и восстановить задачу через детерминированный шаг.
1. Классификация сбоев: когда retry бесполезен
Не все ошибки устраняются повторным запуском. Без прозрачной диагностики легко перепутать сетевые сбои с логическими галлюцинациями модели:
| Тип сбоя | Признаки | Поведение retry | Правильное действие |
|---|---|---|---|
| Сетевой таймаут / 429 | Временная недоступность API или лимит | Полезен с экспоненциальным backoff (до 3 раз) | Подождать и повторить вызов API |
| Логический тупик | Агент меняет одни и те же 2 файла по кругу | Бесполезен: повтор галлюцинации | Прервать сессию (Ctrl+C), проверить diff |
| Ошибка прав / окружения | Permission denied, отсутствие .env | Бесполезен: окружение не изменится | Настроить права или переменные вручную |
| Сломанная архитектура | Падение интеграционных тестов на новой схеме | Бесполезен: требуется смена плана | Сделать git checkout и уточнить задачу |
Чтобы не гадать о причинах задержек и не тратить токены вслепую, важно отделять сбои внешнего API от ошибок кода. При использовании отдельного BetterToken Claude Code API workflow разработчик может в реальном времени открыть Dashboard и увидеть статус каждого запроса, модель, время ответа и точный расход входных, выходных и кэшированных токенов. Если статус возвращает ошибку шлюза или 429 — оправдан ограниченный retry; если же API стабильно отдаёт 200, но агент застрял в правках — сессию нужно немедленно останавливать.
2. Приоритетный протокол выхода из зацикливания
Если вы видите, что агент выполнил 2–3 безрезультатные попытки подряд, следуйте строгому алгоритму:
graph TD
A[Агент зациклился на ошибке] --> B[Шаг 1: Принудительная остановка Ctrl+C]
B --> C[Шаг 2: Аудит Git git status и git diff]
C --> D[Шаг 3: Сохранение Recovery Card]
D --> E[Шаг 4: Запуск чистой сессии с контрольным шагом]
Пошаговые действия:
- Шаг 1: Остановка сессии. Прервите выполнение команды (
Ctrl+C). Не позволяйте агенту тратить контекст на оправдания и генерацию лишних сообщений. - Шаг 2: Фиксация и очистка состояния. Проверьте изменённые файлы:
git status --short. Если агент оставил сломанный код, откатите повреждённые файлы:git checkout -- <file>. - Шаг 3: Классификация причины. Сверьтесь с метриками API и отделите сетевой сбой от логической ошибки агента.
- Шаг 4: Сохранение карточки восстановления (Recovery Card).
3. Структура карточки восстановления (Recovery Card)
Зафиксируйте чистое состояние задачи перед запуском новой сессии:
### Recovery Card: Сбой задачи импорта
- **Исходная цель**: Добавить валидацию email в `auth/service.ts`.
- **Фактический результат**: Добавлена регулярка, но сломался unit-тест `auth_test.go`.
- **Точная причина сбоя**: Агент пытался мокать приватный метод вместо публичного интерфейса.
- **Состояние Git**: Ветка `fix/auth-email`, сохранён diff в `auth/service.ts`.
- **Следующее действие для новой сессии**: Переписать unit-тест через публичный интерфейс `AuthClient`.
[!IMPORTANT] Изоляция секретов: Никогда не помещайте в Recovery Card API-ключи, токены или дампы памяти. Настройку API Key и параметров подключения проверяйте по официальной инструкции в BetterToken Docs.
4. Проверка и обратимый шаг восстановления
Чтобы безопасно продолжить работу:
- Откройте новую сессию Claude Code с чистым контекстом.
- Передайте агенту только цель и поле «Следующее действие» из Recovery Card.
- Потребуйте выполнить узкий проверочный тест:
npm test -- tests/auth.test.ts. - Убедитесь, что тест проходит (
Passed), и проверьтеgit diff --check.
Такой протокол превращает аварийную остановку в управляемую контрольную точку и гарантирует сохранность кодовой базы и бюджета токенов.
Оплата и пополнение баланса
Пополнение баланса и оплата API осуществляются в личном кабинете BetterToken. Платформа поддерживает удобные способы оплаты, мгновенное зачисление средств и единый баланс для всех доступных моделей.
Пример числового расчёта и тарифы
По состоянию на 15 августа 2026 года в каталоге цен BetterToken базовые ставки составляют:
- Вход: $3.00 за 1M токенов;
- Выход: $15.00 за 1M токенов;
- Чтение из кэша (cache read): $0.30 за 1M токенов.
Для типового запроса на 100 000 входных и 10 000 выходных токенов без кэша итоговая стоимость составит: 0.1 × $3.00 + 0.01 × $15.00 = $0.45.