Бюджет и честная остановка: агент должен уметь сдаться
Агент, который не умеет остановиться, опаснее агента, который ошибается. Ошибка стоит одного хода. Бесконечный цикл стоит всего бюджета — и утром вы видите счёт и пустой результат.
И есть вторая беда — «просто умерло». Процесс завершился, причины нет, в логах тишина. Для человека это раздражение, для скрипта или CI — невозможность что-либо автоматизировать.
В Элис с обеими проблемами работают три механизма.
Бюджет. Считаются токены, стоимость, время выполнения и число шагов. Превышение — остановка с сообщением и кодом выхода. Повторы одного и того же вызова не раздувают счётчик шагов. Бюджет субагента или задачи, переданной другой группе, не может превышать остатка родителя.
Детектор зацикливания. Остановка, если повторяется один и тот же инструмент без изменения состояния или идёт серия ошибок подряд.
Именованные причины провала, у каждой — свой код выхода: нарушен протокол (вызов без результата), кончился бюджет, переигровка разошлась с журналом, не дождались одобрения, петля между группами, ресурс занят, сбой аудита, нет секрета, нарушена политика или границы папки, не выполнен вход, прервано человеком, молчаливый провал, неизвестная причина.
Финальное событие разговора всегда несёт либо успех, либо конкретную причину. Скрипту не нужно парсить текст — достаточно посмотреть код.
Где было трудно. Отличить петлю от работы. Пять запусков тестов после пяти правок — это работа. Пять чтений одного и того же файла без изменений — петля. Поэтому детектор смотрит не только на инструмент, но и на то, менялось ли состояние. Жёсткий порог рубит полезные задачи, мягкий тратит деньги. Второе: стоимость считается по ответу провайдера. Если ответ оборвался, её нужно оценить честно, а не записать ноль — иначе бюджет врёт в вашу пользу.
Урок: честная остановка с понятной причиной — это тоже результат. Гораздо лучший, чем тишина.
Как ваши агенты понимают, что пора остановиться?
#Элис #ЭлисAI #AIагенты #надёжность