Главная / Статьи

Триггер, контекст, механизмы, циклы: четыре слоя, лежащих в основе ИИ-агента

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

Издатель: REACTAPP.TOP7 мин чтения1650 слов

Источники: Prompt, Context, Harness, Loop: An Agent’s Anatomy

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

Первый уровень: запрос

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

Набор инструментов довольно обширен:

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

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

    Почему бы просто не продолжать создавать лучшие промпты? Потому что инженерия промптов была разработана для однократных задач: задать вопрос, получить ответ, и всё. Как только цель требует действий в несколько этапов, запоминания событий, использования инструментов или работы без необходимости, чтобы человек вводил каждую инструкцию, умное формулирование уже не является узким местом. Узким местом становится всё остальное. Значимость промптов не исчезает — они просто больше не являются единственным фактором.

    Второй уровень: контекст

    Здесь единицей работы является то, что остается в окне модели на каждом шаге. Окно имеет конечные размеры, в то время как доступная информация — нет, поэтому кураторство становится крайне важным. Без него важные детали теряются среди устаревших результатов работы инструментов и старых записей разговоров, что снижает качество внимания модели. Куратор решает, что оставить, сжимает то, что полезно, но объемно, и удаляет остальное. Суть мастерства заключается в умении определить, что можно выбросить, а не в попытках вместить больше информации.

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

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

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

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

    Третий уровень: крепёжная система

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

    • Сбор: собираются необходимые компоненты.
    • Действие: запускается модель, вызываются инструменты или вспомогательные агенты.
    • Проверка: результаты анализируются с помощью тестов или специального механизма оценки.

    При сбое весь цикл повторяется с обновлённым контекстом. Именно это отличие отличает вызов API от запуска агента.

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

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

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

    Это также объясняет, что означает когда ИИ, кажется, помнит что-то между сессиями. Модель на самом деле ничего не помнит — инструментарий записывает информацию где-то и позже возвращает её. Каждый вызов модели начинается с нуля, а инструментарий имитирует преемственность, загружая вчерашние записи, сегодняшний список задач и состояние файловой системы, передавая всё это в качестве контекста перед тем, как модель начнёт обрабатывать информацию. Поэтому проектирование контекста и проектирование инструментария тесно связаны, поскольку именно инструментарий определяет, какой контекст будет собран при каждом вызове.

    Четвёртый уровень: цикл

    Модель с инструментами и памятью кажется вершиной. Чего ещё может понадобиться агенту? Пульсацию активности. Проектирование циклов — это новейший уровень, название которого ещё формируется по мере его создания.

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

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

    Конкретный пример помогает лучше понять суть. Сотрудник, ответственный за устранение ошибки, читает сообщение об ошибках, составляет план, редактирует код и запускает набор тестов. Тесты всё равно не проходят, поэтому он корректирует свой подход, снова вносит изменения и запускает тесты заново. Лишь когда тесты проходят или он попробует достаточное количество раз и приходит к выводу, что зашёл в тупик, он обращается к человеку. Каждый из таких циклов и является петлёй, причём никто не печатает фразу «попробуйте ещё раз» в процессе.

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

    Все четыре вместе

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

    Четыре взаимосвязанных вопроса, на каждый из которых предыдущий не дает ответа. Вместе они формируют то, что сейчас просто называют агентом, как будто это очевидно и всегда будет так просто. Но это не так. Каждый уровень становился понятным только потому, что кто-то продолжал задавать вопросы «почему», пока не проявлялись ограничения предыдущего уровня.