Перейти к содержимому
Цена founder — зафиксирована для ранних клиентовНачать →

Паттерны проектирования агентного ИИ: ReAct, Plan-and-Execute, Reflexion и другие

Паттерны проектирования агентного ИИ -- это именованные переиспользуемые архитектурные решения для повторяющихся проблем координации агентов: каждый имеет определённую структуру, известные компромиссы, характерные режимы сбоев и последствия для безопасности. Выбор неправильного паттерна приводит к конкретным сбоям: ReAct на долгосрочных задачах вызывает перегрузку контекстного окна; Plan-and-Execute без перепланирования накапливает ошибки на устаревших планах; Reflexion без очистки памяти допускает устойчивое отравление памяти. Шесть паттернов в двух категориях: паттерны рассуждения одного агента (ReAct, Plan-and-Execute, Reflexion) и паттерны координации нескольких агентов (Critic-Actor, Supervisor-Worker, Mixture-of-Agents).

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

Как читать это руководство: структура паттернов и эвристики выбора

Компоненты паттернов: структура, компромиссы, режимы сбоев, шлюзы безопасности

Каждый паттерн в данном руководстве описан четырьмя компонентами:

Структура: архитектурное расположение в прозе -- какие агенты или экземпляры модели существуют, как они взаимодействуют, как выглядит поток данных и каков ключевой артефакт.

Компромиссы: что паттерн оптимизирует против того, чем жертвует. ReAct оптимизирует привязку к реальным инструментам, но жертвует эффективностью контекстного окна.

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

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

Эвристика выбора паттерна: длительность задачи x обратимость x уровень автономии

Три оси определяют, с какого паттерна начинать:

Длительность задачи: короткие задачи (до 5 вызовов инструментов) -- ReAct. Задачи среднего горизонта (6-20 шагов) -- Plan-and-Execute. Длинные или открытые задачи (20+ шагов) -- Reflexion или Supervisor-Worker.

Обратимость: если все действия обратимы -- любой паттерн применим. Если некоторые действия необратимы (удаление файлов, отправка email, запись в БД) -- добавьте шлюз Critic-Actor перед этими конкретными действиями.

Уровень автономии: L1-L2 -- ReAct или Plan-and-Execute. L3 -- Reflexion или Supervisor-Worker с ограничением радиуса поражения по ролям. L4 -- не развёртывается в продакшн без усиленной инфраструктуры безопасности.

ReAct: чередование рассуждений и действий

Структура: цикл «Мысль -> Действие -> Наблюдение»

ReAct (Reasoning + Acting), Яо и др. из Google Brain и Princeton (arXiv октябрь 2022, ICLR 2023), чередует рассуждение по цепочке мыслей с вызовами инструментов в едином блокноте контекстного окна. Цикл:

Thought: [рассуждение по цепочке мыслей, основанное на предыдущем наблюдении]
Action: [вызов инструмента -- имя функции и параметры]
Observation: [результат инструмента, возвращённый выполнением]
[повторять до:]
Thought: У меня достаточно информации, чтобы ответить.
Action: Finish[финальный ответ]

Результаты бенчмарков из оригинальной статьи: HotpotQA -- 57,1% точных совпадений с ReAct против 43,2% только цепочка мыслей (+14 пунктов). FEVER -- 75,4% против 66,4% (+9 пунктов).

Компромиссы: достоверность против роста контекстного окна

Главное преимущество ReAct -- рассуждение, заземлённое в наблюдениях. Цена -- рост контекстного окна. На задаче с 20 вызовами инструментов при среднем 200 токенов на тройку, блокнот один потребляет 4 000 токенов.

Режим сбоя: инъекция в блокнот

Режим сбоя безопасности ReAct нацелен непосредственно на блокнот. Если наблюдение инструмента содержит состязательный контент, этот контент дословно добавляется в блокнот.

Три необходимых одновременных меры:

  1. Санировать каждое наблюдение перед добавлением в блокнот
  2. Предварительно логировать каждое действие в Zone 2 до отправки
  3. Рассматривать каждое наблюдение инструмента как ненадёжный ввод

Plan-and-Execute: разделение планирования и выполнения

Структура: плановик генерирует полную декомпозицию задач перед выполнением

Plan-and-Execute разделяет две заботы, которые ReAct перемежает: агент-плановик получает цель и генерирует полную декомпозицию задач до начала выполнения.

Эффективность контекстного окна: план компактен (50-150 токенов для большинства задач). На долгосрочных задачах -- сокращение контекстного окна примерно на 40-60% по сравнению с ReAct.

Компромиссы: эффективность против устаревания плана

Основной режим сбоя -- устаревание плана. План генерируется в T=0. Если среда изменяется в ходе выполнения, оставшиеся шаги могут опираться на недействительные предусловия.

Шлюз безопасности: проверка плана перед отправкой

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

Reflexion: обучение на ошибках через вербальное подкрепление

Структура: рефлексия -> сохранение -> обусловливание следующей попытки

Reflexion, Шинн и др. из Northeastern, MIT и Princeton (arXiv март 2023, NeurIPS 2023) -- паттерн вербального обучения с подкреплением: после неудачной попытки выполнения задачи агент генерирует рефлексию на естественном языке, сохраняет её в буфере эпизодической памяти и обусловливает следующую попытку на извлечённой рефлексии.

Результаты бенчмарков: HumanEval кодирование pass@1 -- 91% с Reflexion против 80% (+11 пунктов). ALFWorld -- 97% против 73% (+24 пункта).

Риск безопасности: отравление эпизодической памяти

Режим сбоя безопасности Reflexion отличается от риска инъекции в блокнот ReAct и более устойчив. Если наблюдение содержит состязательный контент, сгенерированная рефлексия может неопределённо долго кодировать управляемые атакующим инструкции.

Четыре меры смягчения в порядке применения: санирование рефлексии перед сохранением; версионированное хранилище на доске с атрибуцией agent_id; TTL рефлексии; шлюз HITL-проверки для рефлексий, предлагающих категориальное изменение поведения.

Critic-Actor: разделение оценки и выполнения

Структура: актор предлагает, критик перехватывает перед выполнением

Паттерн Critic-Actor, производный от RLHF и Constitutional AI (Anthropic, 2022), разделяет генерацию действий и оценку действий. Модель-актор предлагает действие; модель-критик оценивает предложенное действие по политике; только действия, прошедшие оценку критика, доходят до слоя вызова инструментов.

Критически важная деталь реализации: критик должен иметь независимое контекстное окно от актора. Критик с тем же контекстом разделяет полный контекст актора.

Когда использовать Critic-Actor: порог необратимости

Critic-Actor добавляет задержку и необходим, когда действия пересекают порог необратимости: удаление файлов, отправка email, запись в БД, POST-вызовы внешних API.

Supervisor-Worker: ролевая координация нескольких агентов

Структура: суперваизер декомпозирует, работники выполняют в рамках роли

Supervisor-Worker: агент-суперваизер получает цель, декомпозирует на задачи и распределяет каждую задачу специализированному агенту-работнику с определённой ролью и ограниченным набором инструментов:

  • ResearchWorker: инструменты = web_search, read_file, read_url
  • CodeWorker: инструменты = run_command, write_file, read_file
  • CommWorker: инструменты = send_email, post_message

Свойство безопасности: ограничение радиуса поражения скомпрометированных работников

Главное свойство безопасности Supervisor-Worker -- ограничение радиуса поражения: скомпрометированный работник может вызвать только инструменты в рамках своей определённой роли. ResearchWorker, получивший внедрённую инструкцию вызвать send_email(), потерпит неудачу на проверке разрешений Zone 2.

Mixture-of-Agents: ансамблевое рассуждение по экземплярам моделей

Структура: многоуровневое агрегирование выходных данных моделей

Mixture-of-Agents (MoA), Ван и др. из Together AI (arXiv июнь 2024), агрегирует выходные данные нескольких экземпляров LLM через итеративные слои уточнения. Бенчмарк AlpacaEval 2.0: 65,1% вероятность победы с трёхуровневым MoA против 57,5% GPT-4o -- повышение качества на 7,6 пункта.

Компромиссы: качество против мультипликации API-затрат

3 модели x 3 слоя MoA требует около 12 вызовов LLM на запрос пользователя против 1 для одной модели -- увеличение API-затрат примерно в 12 раз. MoA не подходит для высокочастотных, задержко-чувствительных агентных циклов.

Позиция OpenLegion: безопасность паттернов -- это инфраструктура, а не промпт-инжиниринг

Каждый паттерн агентного дизайна в этом руководстве имеет режим сбоя безопасности, который оригинальная академическая статья не рассматривала. Специфичные для паттернов режимы сбоев безопасности:

  • Инъекция в блокнот ReAct: состязательный контент наблюдения внедряет шаги Thought
  • Инъекция плана Plan-and-Execute: артефакт плана может быть изменён между плановиком и исполнителем
  • Отравление памяти Reflexion: отравленная рефлексия сохраняется в эпизодическом буфере между сессиями
  • Обход критика с тем же контекстом: инъекция контекста актора также повреждает оценку критика
  • Компрометация суперваизера: скомпрометированный суперваизер может распределять произвольные задачи всем работникам
Контроль безопасностиOpenLegionLangChain / LangGraphCrewAIAutoGenOpenAI Agents SDK
Предварительное логирование действийZone 2, нативноСоглашение разработчикаСоглашение разработчикаСоглашение разработчикаСоглашение разработчика
ACL плана на доскеПринудительно инфраструктуройНедоступноНедоступноНедоступноНедоступно
Версионированная эпизодическая память с атрибуцией agent_idНативноСоглашение разработчикаСоглашение разработчикаСоглашение разработчикаСоглашение разработчика
Отдельная модель критика с независимым контекстомНативная изоляция агентаРучная настройкаРучная настройкаРучная настройкаРучная настройка
Принудительное применение разрешений инструментов Zone 2 для каждого работникаПринудительно инфраструктуройСоглашение разработчикаСоглашение разработчикаСоглашение разработчикаСоглашение разработчика

Начать строить на OpenLegion

Часто задаваемые вопросы

Что такое паттерны проектирования агентного ИИ?

Паттерны проектирования агентного ИИ -- именованные переиспользуемые архитектурные решения для повторяющихся проблем в проектировании агентных систем, задающие как агент рассуждает, планирует, рефлексирует, делегирует и восстанавливается после сбоев. Основные паттерны: ReAct, Plan-and-Execute, Reflexion, Critic-Actor, Supervisor-Worker и Mixture-of-Agents. Выбор неправильного паттерна приводит к конкретным сбоям: ReAct на длинных задачах вызывает перегрузку; Plan-and-Execute без триггера перепланирования накапливает ошибки; Reflexion без очистки памяти допускает устойчивое отравление.

Что такое паттерн ReAct для ИИ-агентов?

ReAct (Reasoning + Acting), Яо и др. из Google Brain и Princeton (arXiv октябрь 2022, ICLR 2023), чередует рассуждение по цепочке мыслей с вызовами инструментов и результатами инструментов в едином блокноте, заземляя каждый шаг рассуждения в реальных результатах инструментов. В бенчмарках ReAct превзошёл только цепочку мыслей на 14 пунктов в HotpotQA и на 9 пунктов в FEVER. Главный компромисс в продакшн -- рост контекстного окна. Главный риск безопасности -- инъекция в блокнот.

Что такое паттерн Plan-and-Execute для ИИ-агентов?

Plan-and-Execute разделяет агента-плановика и агентов-исполнителей, сокращая потребление контекстного окна примерно на 40-60% на долгосрочных задачах по сравнению с ReAct и допуская автоматическую проверку политики плана перед выполнением любых вызовов инструментов. Основной режим сбоя -- устаревание плана, требующее триггера перепланирования.

Что такое паттерн Reflexion для ИИ-агентов?

Reflexion (Шинн и др., NeurIPS 2023) заставляет агентов генерировать вербальные сводки неудач, сохранять в эпизодическую память и обусловливать будущие попытки на извлечённых рефлексиях. HumanEval кодирование улучшилось с 80% до 91% pass@1 и ALFWorld с 73% до 97%. Риск безопасности -- отравление эпизодической памяти: состязательный контент может привести к сохранению отравленной рефлексии, влияющей на все будущие попытки.

Что такое паттерн Critic-Actor для ИИ-агентов?

Паттерн Critic-Actor разделяет модель-критика (оценивающую предложенные действия перед выполнением по политике) и модель-актора (генерирующую и выполняющую действия), гарантируя, что до слоя вызова инструментов доходят только действия, прошедшие оценку критика. Необходим при необратимых действиях (удаление файлов, отправка email, запись в БД). Отдельная модель-критик с независимым контекстным окном значительно сильнее критика с тем же контекстом.

Что такое паттерн Supervisor-Worker для ИИ-агентов?

Supervisor-Worker -- агент-суперваизер декомпозирует цели и распределяет задачи специализированным агентам-работникам с определёнными ролями и ограниченными наборами инструментов, так что каждый работник действует по принципу наименьших привилегий. Ограничение радиуса поражения -- главное преимущество безопасности: внедрённый работник, пытающийся использовать инструмент вне своей роли, потерпит неудачу на проверке разрешений Zone 2.

Что такое Mixture-of-Agents (MoA)?

Mixture-of-Agents (MoA), Ван и др. из Together AI (arXiv июнь 2024), агрегирует выходные данные нескольких экземпляров LLM через итеративные слои уточнения, исправляя некоррелированные ошибки по экземплярам. На AlpacaEval 2.0 трёхуровневый MoA достиг 65,1% вероятности победы против 57,5% у GPT-4o. Производственные затраты мультипликативны: примерно 12-кратное увеличение API-затрат.

Как выбрать между ReAct, Plan-and-Execute и Reflexion?

Выбор паттерна следует трём осям: длительность задачи, обратимость действий и уровень автономии. Для коротких задач с обратимыми действиями ReAct -- самый простой выбор. Для задач среднего горизонта Plan-and-Execute сокращает потребление контекстного окна на 40-60%. Для повторяющихся задач, где агент может учиться на своей истории ошибок, Reflexion добавляет кумулятивные улучшения производительности. Добавьте Critic-Actor, когда действия необратимы; добавьте Supervisor-Worker, когда различным шагам задачи действительно требуются разные наборы инструментов.