Перейти до основного вмісту
Нотатки

Коротко · ШІ-агенти

Claude Code уперся в ліміт посеред задачі. Не починайте з нуля

Підсумок запуску може казати, що нічого не зроблено, а в робочій папці лежить більша частина роботи. За дванадцять днів у мене було п’ять збоїв. Тепер я перевіряю папку до перезапуску й запускаю знову лише те, що впало.

Макс Кірієнко
Tech Lead SEO та маркетингу · 5 хв читання

Read in English

4 жовтня о 00:42 Claude Code зупинив одразу три мої запуски з кількома агентами. Це були задачі з моєї роботи: по два агенти на запуск, один робить, другий перевіряє. П’ять агентів із шести впали з однаковим повідомленням: вичерпано п’ятигодинний ліміт сесії, він оновиться о 01:10.

О 01:18 я попросив агента підхопити все. За три хвилини він доповів, на якому етапі кожен запуск: одне виправлення закомічене й чекає на перевірку, одне завдання готове на чотири п’ятих, новий етап здебільшого написаний. Кожен запуск продовжив із правок, які його агенти лишили у своїх папках, здебільшого ще не закомічених. Нічого не починали з нуля.

Я знав, куди дивитися, завдяки вересню. Коли запуск із кількома агентами падає через ліміт, через кредити, що скінчилися, чи через збій сервісу, підсумок може казати, що нічого не зроблено. А в робочій папці часто лежить більша частина роботи.

Як виглядало «нічого не зроблено»

23 вересня запуск із трьох агентів раз у раз зависав. Спроба вважається завислою, коли три хвилини немає жодного прогресу. Кожен агент отримав шість спроб, усього 18, і зависли всі. Це забрало 4,4 години й 1,16 мільйона токенів. Підсумок — три порожні місця: {"built":[null,null,null]}. Одразу після того, як запуск закінчився, інші запити до сервісу теж не отримували відповіді вчасно. Найімовірніше, збій був у сервісі, а не в задачі.

Потім я подивився в папку. Кожна спроба починає заново в тій самій папці, і кожна встигла щось записати, перш ніж зависнути. Разом вони лишили 1 354 нові рядки в семи файлах. Жодну функцію не визначено двічі, нові правила справді викликалися, і всі 666 тестів проходили. Бракувало лише нових тестів, заміру й звіту. Перевірка тривала близько півтори хвилини.

Перезапуск із нуля викинув би все це й спалив би ще стільки ж токенів. Натомість поверх папки пішов запуск «довершити»: шість агентів, 81 хвилина, 1,49 мільйона токенів. Його замір на справжніх даних показав, що три нові правила, які лишилися в папці, були аж надто суворі: вони викидали 187 записів. Після виправлення вони позначають 9. Знайдена робота однаково потребує всіх перевірок, які проходить завершена.

Перевірте папку, перш ніж перезапускати

Після будь-якого збою мій агент проходить цей список:

  1. Що змінилося і скільки. git status і git diff --stat у папці запуску. Чи є що рятувати?
  2. Дублі. Кожна з кількох спроб може написати ту саму функцію. Якщо назву визначено двічі, спроби зіткнулися.
  3. Підключення. Новий код викликається чи лише оголошений? Правило, яке ніхто не викликає, нічого не робить, а тести все одно проходять.
  4. Якщо все цільне, довершіть. Перезапустіть ту саму задачу з одним доданим абзацом: «Код у папці — це робота твого попередника. Допиши тести, які спершу падають, зроби замір, напиши звіт».
  5. Якщо там каша, збережіть, а тоді відкотіть. Спершу збережіть зміни патчем поза папкою. Ніколи їх не видаляйте: патч може бути єдиною копією.

Перезапускайте лише те, що впало

Claude Code уміє відновити зупинений запуск. Завершені агенти повертають збережені результати, решта запускається знову. Пастка — у черговості. Як пояснює документація Anthropic, агент, що впав, запускається знову, а з ним і кожен агент, який стартував після нього, завершений чи ні.

Перший запуск

1 · готово 2 · готово 3 · впав 4 · готово 5 · готово

Відновлення

1 · з кешу 2 · з кешу 3 · знову 4 · оплачено двічі 5 · оплачено двічі

Лише той, що впав

1, 2, 4, 5 · із журналу запуску 3 · нова маленька задача
Агентів лічать у порядку старту. Відновлення бере збережені результати лише до першого агента, що впав. Усе після нього запускається наново, завершене чи ні.

25 вересня ліміт зупинив запуск із десяти агентів: п’ятеро робили роботу, п’ятеро її перевіряли. Дві перевірки впали. Я відновив запуск, і всі п’ять робочих агентів повернулися з кешу. Але першою в черзі стояла перевірка, що впала, тож три вже завершені перевірки пішли наново, майже по 200 тисяч токенів кожна. Це майже 600 тисяч із приблизно мільйона токенів, які забрало відновлення. Я побачив, що готові перевірки знову працюють, і спитав агента, чи правильно він усе перезапустив. Ні, неправильно.

Тепер правило таке: якщо агенти, що впали, стоять перед завершеними, не відновлюйте запуск. Запустіть окрему маленьку задачу лише для тих, що впали, а готові результати візьміть із журналу запуску.

Коли збій у самому кінці, відновлення — саме те, що треба. 28 вересня о 00:26 скінчилися кредити посеред довгого запуску. Дев’ять агентів уже завершили роботу. Десятий збирав дизайн-прототип приблизно на 120 станів екрана. Підсумок казав, що прототип не зібрався, але в папці він був майже готовий: на чотирьох екранах на ширині телефону одне слово висіло самотнім рядком, і останні перевірки ще не запускали. Я змінив лише промпт цього агента: «Це продовження: ось файли й лог, довершуй», — і додав свої найсвіжіші нотатки щодо дизайну. Агент стояв останнім у черзі, тож усі дев’ять завершених узялися з кешу.

Тієї ж ночі інший агент упав, нічого не закомітивши. Його правки лишилися в папці, тож ми зберегли їх патчем на 151 рядок, і новий запуск застосував його першим кроком. Відтоді кожен агент, який пише код, комітить після кожного логічного кроку. Повторний запуск тієї задачі закінчився десятьма комітами.

Усі п’ять збоїв поруч:

ЗбійЩо лишилося в папціЩо ми зробили
23 вересня · збій сервісу, впали 3 агенти з 31 354 нові рядки, без дублів, 666 тестів проходять. Немає нових тестів, заміру й звіту.Запуск «довершити» поверх папки. Усі шість його агентів завершили роботу.
25 вересня · ліміт, впали 2 агенти з 10Вісім готових результатів у журналі запуску.Відновили запуск. Три готові перевірки пішли наново, майже 600 тисяч токенів. Тепер ті, що впали, запускаємо окремо.
28 вересня · скінчилися кредити, впав десятий агент, дев’ять уже завершилиПрототип приблизно на 120 станів. На чотирьох екранах слово висіло самотнім рядком, останні перевірки ще не запускали.Змінили лише промпт агента, що впав, на «продовжуй». Дев’ять агентів узялися з кешу.
28 вересня · агент упав без комітуЙого незакомічені правки: патч на 151 рядок.Зберегли патч, новий запуск застосував його першим. Нове правило: коміт після кожного кроку.
4 жовтня · ліміт сесії, впали 5 агентів із 6 у трьох запускахОдне закомічене виправлення, одне завдання, готове на чотири п’ятих, один етап здебільшого написаний.Кожен запуск продовжив зі своєї папки. Нічого не починали з нуля.

Щоб наступний збій коштував менше

  • Комітити після кожного логічного кроку. Тоді збій коштує один крок, а не всю задачу.
  • Називати кількість агентів і оцінку токенів до запуску. Для happymonday.ua, української кар’єрної платформи, я оцінив дослідження на 9 агентів у 1,2–1,4 мільйона токенів і 30–40 хвилин. Пішло 2,29 мільйона токенів і близько 70 хвилин. Тепер я закладаю 250–300 тисяч токенів на агента.

Тисяч токенів на агента: моя оцінка і фактичний запуск

Дослідження на 9 агентів. Я оцінив 133–156 тисяч токенів на агента. Фактично пішло близько 255 тисяч на агента.

Порожня точка — моя оцінка, заповнена — фактичний запуск. Загалом заплановано 1,2–1,4 мільйона токенів, а витрачено 2,29 мільйона; обидва числа поділено на 9 агентів. А ще запуск тривав близько 70 хвилин замість 30–40. Джерело: дослідження на 9 агентів для happymonday.ua, 21 вересня 2026
  • Знати, до якого ліміту ви близько. П’ятигодинне вікно й тижневий ліміт — різні речі: від тижневого ліміту може лишатися ще багато, а вікно вже вичерпане. Settings › Usage показує обидва. 30 вересня, за дванадцять хвилин після того, як я запустив одну перевірку, вона встигла викликати десять агентів і витратити близько 1,2 мільйона токенів. З такою швидкістю п’ятигодинного вікна не вистачило б на весь запуск. Я зупинив його і працював в один потік, доки вікно не оновилося.

Новіші версії Claude Code уміють ставити запуск на паузу, коли вичерпано ліміт, і продовжувати після оновлення. Для цього сесія має лишатися відкритою, а ліміт — оновитися протягом 24 годин. Тижневий ліміт може оновитися набагато пізніше, а збій сервісу — це взагалі не ліміт. Тож перевірка папки лишається.

Скільки агентів потрібно задачі — окреме питання. Я писав про це в розділі Коли 50 субагентів — неправильна відповідь.