ReAct vs ReWOO: какой паттерн выполнения подходит агенту?

Автоматический перевод

Эта статья была автоматически переведена с оригинальной английской версии.

Используйте ReAct, когда следующее действие зависит от результата инструмента, который нельзя предсказать заранее. Рассмотрите ReWOO, когда модель может описать нужные шаги и зависимости между их результатами до выполнения. Архитектура с планировщиком и экзекьютором помогает, когда явный план требует контролируемого выполнения и пересмотра.

Выбирайте паттерн по зависимостям задачи и требованиям к обработке ошибок, затем измеряйте число вызовов модели и ошибок.

Когда модель анализирует результаты инструментов?

ПаттернРешенияПрактический компромисс
ReActМодель выбирает действие после чтения наблюденийАдаптируется к новым данным, но требует повторных вызовов модели
ReWOOПланировщик записывает шаги и ссылки на результаты; модуль решения получает результатыМеньше повторяющегося контекста планирования; зависимости разрешаются во время выполнения
Планировщик и экзекьюторПланировщик создаёт план; выполнение может вызвать повторное планированиеЯвный прогресс и обработка ошибок, но дополнительное состояние плана

Статья о ReAct чередует ризонинг, действия и наблюдения. Это подходит для исследовательского поиска, где каждый результат определяет следующий запрос. Хранение всех предыдущих результатов может увеличивать длину входных данных; управление контекстом остаётся частью реализации.

ReWOO разделяет планирование, работу инструментов и итоговый синтез. Шаги могут ссылаться на предыдущие результаты: сначала получить местоположение, затем найти рестораны рядом с ним. Второй вызов должен дождаться первого. Параллельно могут выполняться только независимые шаги.

Определите обработку ошибок до сравнения стоимости

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

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

Универсального порядка этих паттернов по стоимости токенов нет. Длина задачи, размер вывода инструментов, повторные попытки и реализация могут изменить результат сравнения на противоположный.

О предшествующем выборе способа автоматизации читайте в материале агент vs рабочий процесс. Раздел о паттернах агентов в LLM Engineering Guide связывает оркестрацию с tool calls и structured output.