Универсальный Bloom: Analyze ⏱ 11 мин риски агента

Почему агент зацикливается и жжёт бюджет

🧊 Won't Have 💧 Could Have ☀️ Should Have 🔥 Must Have
🔥 Must Have
Самая частая авария, которая бьёт по счёту. Один вопрос на этой странице спасёт твой бюджет на первом же пилоте.

🤔 Зачем это читать

Пятница, вечер. Ты запустил агента на ночь разобрать почту и подбить мелкий отчёт — задача на пару минут. В понедельник открываешь счёт за облако: не пара рублей, а внезапные несколько тысяч. Лезешь в журнал — и видишь одно и то же действие, повторённое сотни раз подряд. Агент не сломался и не выдал ошибку. Он всю ночь честно крутился по кругу: проверял, не нравилось, проверял снова, не нравилось снова — и так до утра, пока кто-то не выключил. Платил за каждый круг — ты.

Знакомо? Если ещё нет — это лишь потому, что ты пока не запускал агента без присмотра. Зацикливание — не экзотика и не «кривой подрядчик». Это типовая авария агента (по-научному — failure mode, типичный режим отказа), в которую он сваливается сам по себе, если ему забыли поставить предохранитель. И ловушка коварная: чат-бот, который ничего не делает сам, так зависнуть не может в принципе. А агент — может, именно потому что он сам решает, делать ли ещё один шаг. Эту свободу мы как раз разбирали в прошлой теме про цикл «Думаю — Делаю — Пробую». Сегодня — её обратная сторона.

После этой темы ты сможешь посмотреть на кейс зависшего агента и разобрать его на части: где он застрял, почему не вышел сам, в каком месте надо было поставить предохранитель и как вообще заметить, что агент крутится впустую, а не работает. Это не «теория про петли» — это про твои деньги и твоё время, которые агент способен сжечь молча, с серьёзным лицом, за одну ночь.

Задержись на 10 секунд. Вспомни, как ты сам застреваешь на задаче: переписываешь одно письмо в десятый раз, гоняешь цифры в таблице туда-сюда, а лучше не становится. В какой момент ты говоришь себе «всё, хватит, отдаю как есть» или «спрошу кого-нибудь»? Держи этот стоп-сигнал в голове. Вся тема — про то, что у агента такого сигнала по умолчанию нет, и его надо поставить руками.

🍲 Повар, который пробует блюдо бесконечно

В прошлой теме мы разобрали агентный цикл (по-научному — ReAct, цикл «рассуждение — действие — наблюдение»): агент думает, делает шаг, смотрит на результат и решает, нужен ли ещё круг. Этот круг по-научному называют итерацией — одним проходом по цепочке «подумал — сделал — посмотрел». Цикл — сильная штука: именно он позволяет агенту самому доводить дело до готовности, не дёргая тебя. Но у него есть встроенная ловушка. Вернёмся на кухню, там это видно как на ладони.

Представь повара, который готовит соус. Он пробует ложкой — кисловато. Добавляет сахар, мешает, пробует снова — теперь приторно. Добавляет лимон, мешает, пробует — опять кисло. Добавляет сахар... И вот он стоит над кастрюлей двадцать минут, гоняет вкус туда-сюда и не может решиться подать. Идеала всё нет. А пока он пробует — горячее блюдо на тарелке стынет, продукты в кастрюле кончаются (каждая проба — ложка соуса), и вся смена ждёт именно его. Он не бездельничает. Он усердно работает. Просто его работа никуда не ведёт.

Чего не хватает этому повару? Условия выхода. Правила, которое говорит: «после третьей пробы — подаёшь как есть или зовёшь шефа». Без такого правила усердный повар превращается в стихийное бедствие для кухни. Опытный шеф это правило держит в голове сам. Агент — не держит. Если ему не задали условие выхода, он будет пробовать соус, пока кто-то не выдернет вилку из розетки.

Цикл, у которого нет выхода
🤔
Думаю
«Соус кисловат, надо поправить».
🥄
Делаю
Добавил сахар, помешал.
😕
Пробую
«Всё ещё не то». И заново — на круг.
Стрелка от «Пробую» уходит обратно к «Думаю» — и нет ни одной стрелки наружу, к «Готово». Это и есть цикл без условия выхода: круг замкнут, дверь не прорублена.

💸 Каждый круг — это деньги и время

На кухне петля стоит остывшего блюда и нервов бригады. У агента — стоит буквально денег, и вот почему. Помнишь главное правило с прошлых тем: каждый круг цикла — это отдельное обращение к модели, а за каждое обращение ты платишь. Один круг — копейки. Но агент в петле делает не один круг и не десять. Он делает их столько, сколько успеет, пока его не остановят, — сотни, тысячи. И тут копейки складываются в тот самый счёт, от которого в понедельник холодеет.

Сложи две вещи — и поймёшь, почему это так больно бьёт именно по бюджету. Первое: петля незаметна. Агент не падает с ошибкой, не пишет «я застрял», не шлёт тревожное письмо. Снаружи он выглядит занятым и деловитым — как тот повар над кастрюлей. Второе: петля быстрая. Машина крутит круги не раз в минуту, как человек, а по много раз в секунду. Соедини «незаметно» и «быстро» — получишь счётчик, который молча мотает деньги, пока ты спишь или занят другим. Это не редкая беда: отсутствие лимита шагов — одна из классических, многократно описанных причин, по которым агент уходит в разнос.

Отдельно подчеркну, звучит странно, но: зацикливание не означает, что модель плохая или «глупая». Самая умная модель в мире зациклится точно так же, если ей не задали, когда останавливаться. Это не дефект ума — это отсутствие тормоза. А тормоз ставит не модель, а тот, кто собирает агента. То есть это вопрос конструкции, а не интеллекта, — и это хорошая новость, потому что чинится он просто.

🔌 Предохранитель: лимит шагов

Тормоз, который не даёт агенту крутиться вечно, называется просто — лимит шагов (по-научному max iterations, «максимум итераций», то есть максимум кругов). Идея в одну фразу: заранее задаём правило «больше чем N кругов не делаем — и точка». Сделал N кругов, а задача всё не готова — стоп. Не «продолжай, вдруг получится», а честный стоп: отдай что есть и позови человека или сообщи, что не справился.

Ровно то правило, которого не хватало нашему повару: «после третьей пробы — подаёшь или зовёшь шефа». Это и есть предохранитель — как пробка в электрощитке. Пробка не делает проводку умнее. Она просто не даёт сгореть всему дому, когда что-то пошло не так. Лимит шагов — такая же пробка для бюджета: он не делает агента сообразительнее, он просто гарантирует, что один зависший запуск не разорит тебя на тысячи рублей за ночь.

Посмотрим, как это выглядит «на пальцах». Это не настоящий код — это логика на человеческом языке, псевдокод.

Псевдокод (на пальцах) · цикл агента с предохранителем # это НЕ настоящий код, а логика на человеческом языке
лимит_кругов = 5 # вот он, предохранитель: больше 5 кругов не делаем
сделано_кругов = 0

повторяй цикл:
  агент думает → делает шаг → смотрит на результат
  сделано_кругов = сделано_кругов + 1

  # условие выхода №1 — нормальное: задача готова
  если задача готова: отдать результат и ВЫЙТИ

  # условие выхода №2 — предохранитель: кругов слишком много
  если сделано_кругов >= лимит_кругов:
    остановиться, отдать что есть и ПОЗВАТЬ ЧЕЛОВЕКА
# → без второго условия цикл крутится, пока кто-то не выключит вручную

Вся суть — в этих двух «если». Первое — нормальный выход: дело сделано, агент доволен, отдаёт результат. Второе — аварийный выход, тот самый предохранитель: дело не сделано, но кругов уже слишком много, значит, агент явно застрял — стоп и зови человека. Уберёшь второе «если» — получишь нашего повара над кастрюлей. Оставишь — получишь повара, который знает, когда хватит пробовать.

И запомни рамку как владелец: лимит шагов — это не «костыль», а обязательный элемент конструкции любого агента, который что-то делает в цикле. Спрашивать про него у подрядчика так же нормально, как спрашивать у электрика про автоматы в щитке. Нет ответа на вопрос «а что будет, если агент застрянет?» — это красный флаг, такого же размера, как машина без тормозов.

🔎 Как понять, что агент застрял, а не работает

Предохранитель спасает от катастрофы — но в идеале ты хочешь замечать петлю раньше, чем сгорит лимит. Беда в том, что застрявший агент и работающий агент снаружи выглядят одинаково: оба «заняты». Различить их можно по двум приметам, и обе — про наблюдение, а не про код.

Заметь связку, она важна. Предохранитель (лимит шагов) — это стена, в которую агент упрётся в худшем случае. Наблюдение за повтором и счётом — это сигнализация, которая зовёт тебя раньше, чем он до стены доедет. Хорошая конструкция держит и то, и другое: стену — чтобы не разориться, сигнализацию — чтобы поймать проблему, пока она маленькая. А что именно делать, когда агент уткнулся в стену (отдать частичный результат? откатить? попробовать иначе?), — это уже отдельный большой разговор про восстановление после сбоев, к нему мы ещё придём.

🎮 Разбор кейса: агент завис ночью

Прежде чем читать кейс — мысленно достань из головы два слова: предохранитель и сигнализация. Сейчас проверим, держатся ли они на реальной аварии.

Реальная по духу ситуация, четыре вопроса по ней — один за другим. Это не угадайка, а разбор: на каждом шаге сначала подумай сам, потом жми кнопку и сверяйся. К концу ты пройдёшь весь путь владельца — от «что вообще случилось» до «как это не повторить». Поехали.

Кейс. Агенту поручили на ночь: «сформируй отчёт по продажам за неделю и положи в общую папку». Утром — счёт за облако в несколько раз выше обычного. В журнале видно: агент 400 с лишним раз подряд проверял, появился ли файл-источник в папке, не находил его (файл выгружается только к 9 утра) — и проверял снова. Отчёт так и не собрался.

📖 Ключевые понятия

Зацикливание (бесконечный цикл)
Авария, при которой агент крутит круги цикла без остановки: повторяет похожие шаги, не доводит задачу до конца и молча жжёт деньги/время. Случается, когда у цикла нет условия выхода. Это повар, который пробует соус бесконечно и не решается подать.
Типовая авария (failure mode)
Типичный, заранее известный способ, которым система ломается. Зацикливание — одна из самых частых аварий агента. Знать список типовых аварий ценно: тогда соломку стелют заранее, а не разбираются по факту, когда уже сгорел бюджет.
Условие выхода
Правило, которое говорит агенту, когда прекратить крутить цикл. Бывает двух видов: нормальное («задача готова — отдай результат») и аварийное («кругов слишком много — стоп, зови человека»). Без второго вида агент в трудной ситуации зависает.
Лимит шагов (max iterations)
Предохранитель: заранее заданный максимум кругов цикла. Дошёл до лимита, а задача не готова — агент останавливается и зовёт человека, а не крутится вечно. Пробка в щитке для твоего бюджета: не делает агента умнее, но не даёт одному запуску разорить.
Итерация
Один круг цикла агента: проход по цепочке «подумал — сделал — посмотрел». Каждая итерация — отдельное платное обращение к модели. Поэтому лишние круги в петле — это прямые деньги, а не абстракция.

🛡️ Частые заблуждения

«Если агент зациклился — значит, модель слабая, надо взять помощнее»

Это первый инстинкт почти у всех — раз зависает, значит, недодали мозгов, надо апгрейднуть. И подрядчик такой апгрейд охотно продаст: дороже модель, дороже чек. Но дело не в модели: ставишь самую мощную — и она уйдёт в ту же петлю, потому что ей всё так же не сказали, когда остановиться. Лишние деньги на апгрейд, проблема на месте. Дешёвая починка — лимит шагов — не в прайсе у того, кто продаёт модели помощнее.

«Зависший агент выдаст ошибку или хотя бы остановится сам»

Чаще всего нет. Петля — это не сбой, а честная работа по кругу: агент не падает, не пишет «я застрял», снаружи выглядит занятым. Сам он не остановится, потому что не понимает, что топчется на месте, — у него нет встроенного ощущения «хватит». Остановит его только то, что ты поставил заранее: лимит шагов и присмотр за счётом.

«Один зависший запуск — мелочь, ну потратил чуть лишнего»

Опасная недооценка. Петля быстрая (много кругов в секунду) и незаметная (агент кажется занятым). За ночь без присмотра «чуть лишнего» легко превращается в счёт в разы выше плана — особенно у агента, который работает сам, пока ты спишь. Поэтому за расходом автономного агента следят так же, как за расходом продуктов на кухне.

🧠 AI-чутьё (AI Judgment)

Свобода агента — это и сила, и риск; страхуй её предохранителем и надзором за счётом

Вот рамка, которую стоит унести: ровно та свобода, за которую мы любим агента, его же и подставляет. Чат-бот не зависнет в петле — потому что он ничего не решает сам. Агент зависает именно потому, что сам выбирает, делать ли ещё шаг. Это не повод бояться агентов — это повод помнить, что любую автономию надо страховать. Дал свободу решать — поставь границы, в которых эта свобода живёт.

Отсюда два вопроса, которые ты как владелец задаёшь по любому AI-агенту, который что-то делает в цикле. Первый: «А что будет, если он застрянет, — есть лимит шагов?». Второй: «Как я увижу, что он жжёт лишнее, — кто следит за счётом?». Нет внятного ответа хотя бы на один — значит, тебе предлагают машину без тормозов и без приборной панели. Красиво едет на демо, а на твоих деньгах и твоей ночной смене может встать колом.

И держи практический след. Лимит шагов останавливает разнос — но это только первый из тормозов. Что делать дальше, когда агент уткнулся в стену: отдать частичный результат, откатить сделанное, попробовать другой путь или эскалировать человеку — это отдельная инженерная тема про обработку сбоев и восстановление. Зацикливание — её самый наглядный вход: ты уже видишь, зачем агенту нужны не только «руки и мозг», но и аварийные сценарии. Без них автономность — это риск, а не актив.

🎯 Практика

Одно задание на пять минут — оно превращает «петля и предохранитель» из книжной идеи в твой рабочий вопрос к любому AI-проекту.

  1. Возьми любую задачу, которую ты хотел бы отдать агенту работать без присмотра (на ночь, по расписанию, в фоне). Запиши её в одну строку.
  2. Представь худший сценарий: что-то пошло не так — нужный файл не пришёл, система не ответила, цифры не сходятся. Ответь на два вопроса честно: (а) сколько кругов агенту разумно сделать, прежде чем сдаться и позвать человека? (это твой лимит шагов) и (б) кто и как увидит, что счёт растёт не по задаче? (это твой надзор).
  3. Эти два ответа — лимит и надзор — выпиши отдельной строкой. Это готовый пункт твоего технического задания подрядчику и первый вопрос, который ты ему зададёшь: «покажи, где здесь предохранитель и где приборная панель». Если внятного ответа нет — ты уже знаешь, что это красный флаг.

Готовая строчка в карман — скопируй в ТЗ

«Агент работает в цикле без присмотра. Нужен лимит шагов: после N кругов — стоп и эскалация человеку, не крутимся вечно. И надзор за расходом: дашборд плюс алерт, если запуск стоит дороже обычного. Покажите, где в решении предохранитель и где приборная панель».

Помнишь свой стоп-сигнал из начала страницы — момент, когда ты сам говоришь «хватит, отдаю как есть»? Лимит шагов — это ровно такой сигнал, только заданный агенту руками. У человека он встроен жизненным опытом. У агента — нет. Поставить его — твоя работа как владельца.

🔗 Что дальше

Следующая тема: 5.3 — Дегустация перед подачей: самопроверка (Reflection). Раз агент умеет крутить цикл, научим его делать это с пользой: пробовать своё блюдо перед подачей и переделывать брак сам — не бесконечно, а по делу. Обратная, светлая сторона того же цикла.

Связанные темы:

Дальше в курсе: