Цикл вместо ответа: что добавляет агент поверх вызова модели

ИИ-агенты и мультиагентные системы · Урок 1 / 22

Один вызов заканчивается текстом, агент заканчивается изменённым миром

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

Три части, которых нет у одиночного вызова

  • Состояние. История шагов, промежуточные результаты, счётчики. Это то, что подаётся модели на каждом обороте и растёт от шага к шагу.
  • Исполнитель действий. Код, который принимает от модели имя инструмента и аргументы, проверяет их и вызывает настоящую функцию. Модель ничего не выполняет сама, она только называет намерение.
  • Условие остановки. Правило, по которому цикл заканчивается: модель вернула ответ без вызова инструмента, исчерпан лимит шагов, вышел бюджет, сработал таймаут.
запрос
  v
[состояние] --> модель --> намерение (инструмент + аргументы)
     ^                            |
     |                            v
 наблюдение <--- исполнитель (проверка, вызов, результат)
     |
     +--> проверка остановки --> ответ | превышен лимит | ошибка

Почему это меняет вопросы проектирования

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

Вероятность ошибки умножается

Полезная арифметика, которая объясняет большую часть провалов. Пусть один шаг проходит верно с вероятностью 0,95 — это очень хороший показатель для выбора инструмента и заполнения аргументов. Тогда цепочка из трёх шагов проходит с вероятностью около 0,86, из десяти — около 0,60, из двадцати — около 0,36. Никакая смена модели не спасает от произведения: она сдвигает 0,95 к 0,97, но не меняет закон. Отсюда правило, к которому курс будет возвращаться: короткий детерминированный конвейер почти всегда надёжнее свободного агента, и свободу вводят ровно там, где путь заранее неизвестен.

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

Шпаргалка

  • Агент = состояние + исполнитель действий + условие остановки.
  • Модель называет намерение, выполняет всегда ваш код.
  • Вероятность успеха умножается по шагам: длинная цепочка ненадёжна по устройству.
  • Главный вопрос проектирования — где цикл остановится, а не как сделать его умнее.
1. Что принципиально отличает агента от одиночного вызова модели?
2. При вероятности верного шага 0,95 какова примерная вероятность пройти десять шагов без ошибки?
3. Кто выполняет действие, которое выбрала модель?

🔒 Ответьте на вопрос верно, чтобы перейти к следующему уроку.

Цикл вместо ответа: что добавляет агент поверх вызова модели — ИИ-агенты и мультиагентные системы — Skilvy