ReAct vs ReWOO: какой паттерн выполнения подходит агенту?
Автоматический перевод
Эта статья была автоматически переведена с оригинальной английской версии.
Используйте ReAct, когда следующее действие зависит от результата инструмента, который нельзя предсказать заранее. Рассмотрите ReWOO, когда модель может описать нужные шаги и зависимости между их результатами до выполнения. Архитектура с планировщиком и экзекьютором помогает, когда явный план требует контролируемого выполнения и пересмотра.
Выбирайте паттерн по зависимостям задачи и требованиям к обработке ошибок, затем измеряйте число вызовов модели и ошибок.
Когда модель анализирует результаты инструментов?
| Паттерн | Решения | Практический компромисс |
|---|---|---|
| ReAct | Модель выбирает действие после чтения наблюдений | Адаптируется к новым данным, но требует повторных вызовов модели |
| ReWOO | Планировщик записывает шаги и ссылки на результаты; модуль решения получает результаты | Меньше повторяющегося контекста планирования; зависимости разрешаются во время выполнения |
| Планировщик и экзекьютор | Планировщик создаёт план; выполнение может вызвать повторное планирование | Явный прогресс и обработка ошибок, но дополнительное состояние плана |
Статья о ReAct чередует ризонинг, действия и наблюдения. Это подходит для исследовательского поиска, где каждый результат определяет следующий запрос. Хранение всех предыдущих результатов может увеличивать длину входных данных; управление контекстом остаётся частью реализации.
ReWOO разделяет планирование, работу инструментов и итоговый синтез. Шаги могут ссылаться на предыдущие результаты: сначала получить местоположение, затем найти рестораны рядом с ним. Второй вызов должен дождаться первого. Параллельно могут выполняться только независимые шаги.
Определите обработку ошибок до сравнения стоимости
Плану нужны правила для отсутствующего результата инструмента, неверных аргументов и результата, который меняет задачу. Решите, должно ли выполнение повторить попытку, остановиться, запросить уточнение или вернуться к планировщику. Фиксированный план без таких правил может завершиться ошибкой, даже если его исходные шаги выглядели разумными.
Выполните одни и те же репрезентативные задачи с каждым из рассматриваемых паттернов. Подсчитайте успешные задачи, неверные действия, вызовы модели, повторные попытки и токены, а также измерьте затраченное время. Включите зависимые шаги и сбои инструментов; демонстрация, в которой всё проходит успешно, не показывает поведение при ошибках.
Универсального порядка этих паттернов по стоимости токенов нет. Длина задачи, размер вывода инструментов, повторные попытки и реализация могут изменить результат сравнения на противоположный.
О предшествующем выборе способа автоматизации читайте в материале агент vs рабочий процесс. Раздел о паттернах агентов в LLM Engineering Guide связывает оркестрацию с tool calls и structured output.