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

Чтобы модель не просто говорила, а действовала — искала, считала, вызывала API — её рассуждение чередуют с действиями.

ReAct (Reasoning + Acting) — паттерн, где модель чередует шаги рассуждения и действия: думает, вызывает инструмент, получает результат, думает дальше.

Зачем модели инструменты

Сама по себе LLM не знает сегодняшнюю погоду, не считает большие числа точно и не видит вашу базу данных. Но она может решить, что нужен инструмент, и сформировать запрос к нему. Инструмент (поиск, калькулятор, SQL, внешний API) возвращает факт, который модель использует дальше. Так выдумки заменяются проверенными данными.

Цикл Thought → Action → Observation

Идея ReAct — текстовый цикл: модель пишет мысль, затем действие (вызов инструмента), получает наблюдение (результат), и повторяет, пока не готова дать ответ.

Вопрос: Какая сейчас погода в столице Франции?

Thought: Нужно узнать столицу и затем погоду.
Action: search("столица Франции")
Observation: Париж.
Thought: Теперь нужна погода в Париже.
Action: weather("Париж")
Observation: +18°C, ясно.
Thought: Достаточно данных.
Answer: В Париже сейчас +18°C, ясно.

Рассуждение (Thought) делает выбор инструмента осмысленным, а Observation заземляет ответ на реальные данные, а не на память модели.

Как это реализуется

В современных API это оформлено как tool use / function calling: вы описываете доступные инструменты (имя, параметры, назначение), модель возвращает структурированный вызов, ваш код выполняет его и подаёт результат обратно в диалог. Цикл повторяется автоматически. ReAct — концептуальная основа этого механизма.

ЧастьКто делает
Решение вызвать инструментМодель (рассуждение)
Описание инструментовРазработчик в промпте/схеме
Само выполнениеВаш код
Использование результатаМодель (следующий шаг)

Что это даёт

  • Доступ к свежим и приватным данным (поиск, БД).
  • Точные вычисления через калькулятор/код вместо «арифметики в уме».
  • Меньше галлюцинаций: факты приходят из инструментов.
  • Действия в мире: отправить письмо, создать задачу.

Итог

  • ReAct чередует рассуждение и действия (вызовы инструментов).
  • Цикл Thought → Action → Observation заземляет ответ на реальные данные.
  • В API это реализуется как tool use / function calling.
  • Инструменты дают свежие данные, точные расчёты и снижают выдумки.
Проверьте себя
1. В чём суть паттерна ReAct?
AМодель только рассуждает, не действуя
BЧередование рассуждения и действий: модель думает, вызывает инструмент, использует результат
CЗапуск модели несколько раз для голосования
DСжатие промпта
2. Зачем модели инструменты (поиск, калькулятор, API)?
AЧтобы отвечать медленнее
BЧтобы получать свежие/приватные данные и точные расчёты вместо опоры на память и догадки
CЧтобы повысить температуру
DИнструменты бесполезны для LLM
3. Кто фактически выполняет вызов инструмента в tool use?
AСама модель внутри себя
BВаш код: модель лишь возвращает структурированный запрос на вызов
CПровайдер API без участия разработчика
DНикто, это имитация
Поддержать проект