AI Agents Operations

Лимит расходов и аварийный выключатель для ИИ-агента

Alejandro Rioja
Alejandro Rioja
5 мин чтения
TL;DR

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

Создаём с ИИ-агентами

Узнайте, как использовать ИИ-агентов в маркетинге, продажах и продукте. Каждую неделю я делюсь тем, чему научился, с более чем 5 400 читателями.

Агент без лимитов — это кредитная карта в руках очень быстрого стажёра, который никогда не спит. В большинстве случаев всё в порядке. Но однажды инструмент вернёт ошибку, которую агент не поймёт, и он повторит попытку, прочитает ошибку, повторит снова и будет продолжать, пока не закончится баланс вашего API.

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

Почему агенты тратят слишком много

Обычный скрипт каждый раз выполняет одинаковый объём работы. Агент сам решает, сколько работы сделать, и ради этого его и используют. Это же и риск. Четыре причины объясняют почти все вышедшие из-под контроля счета:

  1. Циклы повторов. Инструмент даёт сбой, агент пробует снова с чуть изменённым вводом, снова падает и повторяет.
  2. Растущий контекст. Каждый шаг добавляется к диалогу, поэтому каждый вызов стоит дороже предыдущего. Запуск из 40 шагов стоит заметно больше, чем 40 запусков по одному шагу.
  3. Разветвление. Агент порождает подзадачи, а каждая из них порождает новые.
  4. Слишком частый триггер. Задание по расписанию или входящий вебхук срабатывает 500 раз вместо 5.

Цифры по стоимости одного вызова я разобрал в AI agent cost math. Эта статья про потолок, а не про среднее.

Лимит 1: жёсткий потолок расходов

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

Выбирайте их по ценности работы. Если агент разбирает вашу почту и экономит двадцать минут в день, ему нельзя позволять тратить 40 $ за один запуск. Хорошая отправная точка — в пять раз больше стоимости обычного запуска. Если типичный запуск стоит 20 центов, ограничьте запуск 1 $, а день — 10 $. Потолок можно поднять в тот момент, когда он впервые заблокирует нужную работу, и это приятная проблема.

Два места, где его стоит закрепить:

  • У провайдера. Задайте месячный лимит расходов в консоли Anthropic или OpenAI. Это ваша страховка, на неё уходит две минуты. Она остановит худший сценарий, даже если в вашем коде ошибка.
  • В своём коде. Ведите счётчик использованных токенов за запуск, переводите его в доллары и останавливайтесь, когда превышен потолок на запуск. Дневной итог храните в надёжном месте, чтобы перезапуск его не обнулил.

Лимит 2: максимальное число шагов

Лимит шагов — самая простая защита, она ловит циклы, которые лимит в долларах замечает слишком поздно. Определите, сколько шагов максимум делает здоровый запуск, добавьте запас и остановитесь на этом числе.

Если самый длинный обычный запуск использует 12 вызовов инструментов, поставьте лимит 25. Когда агент до него дойдёт, не позволяйте ему молча продолжать. Завершите запуск, запишите причину и отправьте себе сообщение. Запуск, упёршийся в лимит шагов, — это отчёт об ошибке, и его стоит прочитать.

Та же идея работает для повторяющихся одинаковых вызовов: если агент три раза подряд вызывает один и тот же инструмент с тем же вводом, остановите его. Это цикл, а не прогресс.

Лимит 3: аварийный выключатель без деплоя

Когда в два часа ночи что-то идёт не так, вам не нужно править код, пересобирать и деплоить заново. Вам нужно щёлкнуть один переключатель.

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

Учтите эти детали:

  • Проверяйте часто. Флаг, который читается только при старте, не остановит запуск, уже идущий.
  • Делайте остановку безопасной. Агент должен завершить или откатить действие, на котором он находится, а не оставить наполовину отправленное письмо или наполовину созданную запись.
  • Отказывайте в сторону остановки. Если агент не может прочитать флаг, он останавливается. Сломанное хранилище флагов не должно означать неограниченные расходы.
  • Проверьте один раз. Щёлкните переключателем на тестовой копии и посмотрите, как агент остановится. Непроверенный выключатель — это лишь надежда.

Смежный механизм, шаг подтверждения, я разобрал в human-in-the-loop agents. Подтверждения останавливают плохие действия. Потолки останавливают плохие расходы. Нужны оба.

Добавьте оповещения, чтобы узнавать первым

Лимиты защищают бюджет, но вам всё равно нужно знать, когда они срабатывают. Отправляйте сообщение при 50 % и 80 % дневного потолка, а также каждый раз, когда запуск обрывается лимитом шагов или выключателем. И читайте их. Оповещение, которое вы научились игнорировать, ничего не стоит, поэтому если какое-то срабатывает постоянно, устраните причину или измените лимит.

Если вы к тому же логируете каждый шаг с идентификатором трассы, видно, какой именно запуск сжёг деньги. Такую настройку я описываю в how to debug an AI agent in production.

Промпт, который добавит все три лимита

Писать это самому не нужно. Откройте Claude в папке с кодом вашего агента и вставьте:

code
Read my agent's code. Add three safety limits and show me every file you change:
1. A per-run and per-day spending cap, computed from token usage. Read the limits
   from configuration, and stop the run with a clear logged reason when either is hit.
2. A maximum step count per run, plus a stop if the same tool is called with the same
   input three times in a row.
3. A kill switch: a flag checked before every step that stops the agent safely.
   If the flag can't be read, the agent must stop.
Then list what you assumed about where the flag should live, and give me a short
checklist to test each limit on a non-production copy.

Прежде чем доверять результату, проверьте три вещи: использует ли расчёт в долларах актуальные цены вашей модели (модель может их выдумать), читается ли флаг на каждом шаге и срабатывал ли каждый лимит хотя бы раз на ваших глазах. Модели охотно пишут потолок, который никогда не срабатывает.

Начните с самых строгих чисел, с которыми можно жить

Ставьте лимиты жёстко в первый день и ослабляйте их по фактам. Потолок, заблокировавший нужный запуск, стоит вам нескольких минут. Отсутствие потолка может стоить месячного бюджета за одну ночь. Поставьте лимиты до того, как агент коснётся чего-то настоящего, и остальная работа пойдёт заметно спокойнее.

Реклама
Читать дальше

Похожие статьи

Читать дальше

Получайте ИИ-руководство на почту

Узнайте, как использовать ИИ-агентов в маркетинге, продажах и продукте. Каждую неделю я делюсь тем, чему научился, с более чем 5 400 читателями.

↵ ↵ — все результаты esc esc — закрыть