Цикл вместо ответа: что добавляет агент поверх вызова модели
ИИ-агенты и мультиагентные системы · Урок 1 / 22
Один вызов заканчивается текстом, агент заканчивается изменённым миром
Обычный вызов модели устроен просто: вы отправляете сообщения, получаете один ответ, процесс завершён. Всё, что можно испортить, — это текст на выходе. Агент устроен иначе: между запросом пользователя и финальным ответом крутится цикл, в котором модель по очереди наблюдает состояние, выбирает следующее действие и это действие выполняется реальным кодом. Каждый оборот цикла может дёрнуть чужой сервис, записать строку в базу, отправить письмо. Разница не в интеллекте модели, а в том, что у процесса появилось право на побочные действия и появилось состояние, которое переживает отдельный вызов.
Три части, которых нет у одиночного вызова
- Состояние. История шагов, промежуточные результаты, счётчики. Это то, что подаётся модели на каждом обороте и растёт от шага к шагу.
- Исполнитель действий. Код, который принимает от модели имя инструмента и аргументы, проверяет их и вызывает настоящую функцию. Модель ничего не выполняет сама, она только называет намерение.
- Условие остановки. Правило, по которому цикл заканчивается: модель вернула ответ без вызова инструмента, исчерпан лимит шагов, вышел бюджет, сработал таймаут.
запрос
v
[состояние] --> модель --> намерение (инструмент + аргументы)
^ |
| v
наблюдение <--- исполнитель (проверка, вызов, результат)
|
+--> проверка остановки --> ответ | превышен лимит | ошибка
Почему это меняет вопросы проектирования
Для одного вызова главный вопрос — «что ответит модель». Для агента главный вопрос другой: «где он остановится и что успеет сломать до остановки». Проектирование агента на девять десятых состоит из границ, а не из промпта: какие действия разрешены, сколько раз, на какие суммы, что происходит при отказе инструмента, кто подтверждает необратимое. Промпт при этом никуда не девается — контракт на выход, валидация и тест-сьют из курса по промптам работают внутри каждого шага цикла, просто теперь их отказ не портит текст, а запускает неправильное действие.
Вероятность ошибки умножается
Полезная арифметика, которая объясняет большую часть провалов. Пусть один шаг проходит верно с вероятностью 0,95 — это очень хороший показатель для выбора инструмента и заполнения аргументов. Тогда цепочка из трёх шагов проходит с вероятностью около 0,86, из десяти — около 0,60, из двадцати — около 0,36. Никакая смена модели не спасает от произведения: она сдвигает 0,95 к 0,97, но не меняет закон. Отсюда правило, к которому курс будет возвращаться: короткий детерминированный конвейер почти всегда надёжнее свободного агента, и свободу вводят ровно там, где путь заранее неизвестен.
Шпаргалка
- Агент = состояние + исполнитель действий + условие остановки.
- Модель называет намерение, выполняет всегда ваш код.
- Вероятность успеха умножается по шагам: длинная цепочка ненадёжна по устройству.
- Главный вопрос проектирования — где цикл остановится, а не как сделать его умнее.