AI‑агенты и фреймворки

ReAct и MRKL: подходы к агентам в LLM

2 февраля 2026 г.

ReAct и MRKL: подходы к агентам в LLM

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

Что такое LLM агенты и зачем они нужны

LLM агенты представляют собой программные системы, которые используют большие языковые модели для принятия решений, выполнения задач и взаимодействия с внешней средой. В отличие от простых чат-ботов, агенты обладают способностью к reasoning (рассуждению), могут планировать последовательность действий и использовать внешние инструменты для решения сложных задач.

Основные возможности современных AI-агентов:

  • Динамическое планирование последовательности действий для достижения цели
  • Интеграция с API, базами данных и другими внешними сервисами
  • Адаптация стратегии на основе промежуточных результатов
  • Обработка сложных многошаговых запросов пользователей
  • Самостоятельное устранение ошибок и корректировка подхода

Предварительные требования

Прежде чем приступить к изучению архитектур ReAct и MRKL, вам понадобятся:

  • Базовое понимание работы больших языковых моделей (GPT, Claude, LLaMA)
  • Знание Python на уровне создания классов и работы с API
  • Опыт работы с промптами и prompt engineering
  • Понимание концепций API и RESTful сервисов
  • Установленный Python 3.8+ и готовность работать с библиотеками LangChain или аналогичными

Архитектура ReAct: Reasoning + Acting

Основные принципы ReAct

ReAct (Reasoning and Acting) представляет собой подход к построению агентов, который объединяет процессы рассуждения и выполнения действий в единый цикл. Ключевая идея заключается в том, что агент чередует этапы мышления (Thought), действия (Action) и наблюдения (Observation).

Архитектура работает по следующему циклу:

  1. Thought: агент анализирует текущую ситуацию и формулирует план
  2. Action: агент выполняет конкретное действие (вызов API, поиск информации)
  3. Observation: агент получает результат действия и анализирует его
  4. Thought: агент переосмысливает ситуацию с учетом нового знания
  5. Цикл повторяется до достижения финального ответа

Практический пример реализации ReAct

Вот базовая структура промпта для ReAct-агента:

react_prompt = """
Ответь на вопрос, используя следующий формат:

Вопрос: исходный вопрос
Thought: твои рассуждения о том, что делать дальше
Action: действие для выполнения [Search, Calculate, Finish]
Action Input: входные данные для действия
Observation: результат действия
... (цикл Thought/Action/Observation повторяется)
Thought: я знаю финальный ответ
Final Answer: итоговый ответ на вопрос

Доступные действия:
- Search[query]: поиск информации в интернете
- Calculate[expression]: вычисление математического выражения
- Finish[answer]: завершение с финальным ответом

Вопрос: {question}
"""

Пример работы ReAct-агента на практике:

Вопрос: Сколько стоит акция Tesla сегодня и как это изменилось за неделю?

Thought: Мне нужно узнать текущую цену акции Tesla
Action: Search[текущая цена акции Tesla]
Action Input: Tesla stock price today
Observation: Цена акции Tesla составляет $248.50

Thought: Теперь нужно узнать цену неделю назад
Action: Search[цена акции Tesla неделю назад]
Action Input: Tesla stock price one week ago
Observation: Неделю назад цена была $235.20

Thought: Теперь могу вычислить изменение
Action: Calculate[(248.50 - 235.20) / 235.20 * 100]
Action Input: (248.50 - 235.20) / 235.20 * 100
Observation: 5.65

Thought: Я знаю финальный ответ
Final Answer: Акция Tesla стоит $248.50. За неделю она выросла на 5.65% (с $235.20).

Архитектура MRKL: Modular Reasoning, Knowledge and Language

Концепция модульных систем MRKL

MRKL (произносится как "miracle") расшифровывается как Modular Reasoning, Knowledge and Language. Это архитектура, которая делает акцент на модульности и специализации различных компонентов агента. В отличие от монолитного подхода, MRKL организует систему как набор экспертных модулей, каждый из которых отвечает за определенную область знаний или тип операций.

Основные компоненты MRKL:

  • Router (Маршрутизатор): определяет, какой модуль должен обработать запрос
  • Expert Modules (Экспертные модули): специализированные компоненты для конкретных задач
  • Knowledge Bases (Базы знаний): хранилища структурированной информации
  • Language Model (Языковая модель): центральный компонент для понимания и генерации текста

Типы экспертных модулей в MRKL

В MRKL-системе можно выделить несколько категорий модулей:

Тип модуля Назначение Примеры использования
Калькулятор Математические вычисления Финансовые расчеты, статистика, геометрия
Поисковик Извлечение актуальной информации Новости, цены, погода, факты
Базы данных Структурированные запросы SQL-запросы, поиск в документах
API-коннекторы Взаимодействие с сервисами CRM, ERP, платежные системы
Специализированные ML Узкие задачи AI Распознавание изображений, анализ тональности

Сравнение ReAct и MRKL

Критерий ReAct MRKL
Основной фокус Цикл рассуждения и действия Модульная архитектура
Структура Линейный цикл Иерархическая система модулей
Масштабируемость Средняя (ограничена контекстом) Высокая (добавление новых модулей)
Прозрачность Высокая (видна цепочка мыслей) Средняя (зависит от реализации)
Сложность реализации Низкая Средняя-высокая
Оптимизация затрат Может быть высокой (множество вызовов LLM) Лучше (специализированные модули дешевле)
Обработка ошибок Встроенная через повторное рассуждение Требует явной реализации

Реализация агентов с помощью LangChain

Создание ReAct-агента

Пошаговая инструкция для создания ReAct-агента:

  1. Установите необходимые библиотеки:
pip install langchain langchain-openai langchain-community
  1. Импортируйте компоненты:
from langchain.agents import create_react_agent, AgentExecutor
from langchain_openai import ChatOpenAI
from langchain.tools import Tool
from langchain import hub
  1. Определите инструменты для агента:
def search_tool(query: str) -> str:
    # Реализация поиска
    return f"Результаты поиска для: {query}"

def calculator_tool(expression: str) -> str:
    # Безопасное вычисление
    try:
        result = eval(expression)
        return str(result)
    except:
        return "Ошибка вычисления"

tools = [
    Tool(
        name="Search",
        func=search_tool,
        description="Полезно для поиска актуальной информации"
    ),
    Tool(
        name="Calculator",
        func=calculator_tool,
        description="Полезно для математических вычислений"
    )
]
  1. Создайте и запустите агента:
llm = ChatOpenAI(temperature=0, model="gpt-4")
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

result = agent_executor.invoke({
    "input": "Сколько будет 25% от 840?"
})
print(result["output"])
  1. Настройте параметры выполнения для контроля:
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,
    max_iterations=10,  # Максимум итераций
    handle_parsing_errors=True  # Обработка ошибок парсинга
)

Создание MRKL-агента

Для MRKL используется похожий подход, но с акцентом на разделение модулей:

from langchain.agents import create_structured_chat_agent

# Группируем инструменты по категориям
math_tools = [calculator_tool, statistics_tool]
data_tools = [database_tool, api_tool]
knowledge_tools = [search_tool, wiki_tool]

# Создаем агента с структурированным подходом
agent = create_structured_chat_agent(
    llm=llm,
    tools=math_tools + data_tools + knowledge_tools,
    prompt=structured_prompt
)

Выбор подхода для вашего проекта

Рекомендации по выбору архитектуры:

Используйте ReAct, если:

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

Используйте MRKL, если:

  • Система должна интегрироваться с множеством специализированных сервисов
  • Требуется высокая масштабируемость и производительность
  • Разные части системы разрабатываются разными командами
  • Необходима оптимизация затрат через использование специализированных модулей

Устранение распространенных проблем

Проблема 1: Зацикливание агента

Симптомы: Агент повторяет одни и те же действия без прогресса.

Решение:

agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    max_iterations=15,
    early_stopping_method="generate"  # Принудительная генерация ответа
)

Проблема 2: Некорректный выбор инструментов

Симптомы: Агент выбирает неподходящие инструменты для задачи.

Решение: Улучшите описания инструментов и добавьте примеры:

Tool(
    name="Calculator",
    func=calculator_tool,
    description="""Используй для математических вычислений.
    Примеры:
    - Сложение: 5 + 3
    - Процент: (50 / 200) * 100
    - Степень: 2 ** 8
    НЕ используй для поиска информации или текстового анализа."""
)

Проблема 3: Высокие затраты на API

Симптомы: Большие расходы на вызовы LLM.

Решение:

  • Используйте кэширование результатов для повторяющихся запросов
  • Применяйте более дешевые модели для промежуточных шагов
  • Ограничивайте количество итераций через max_iterations
  • Внедряйте специализированные модули вместо универсальных LLM-вызовов

Проблема 4: Ошибки парсинга ответов

Симптомы: Агент не может распарсить собственный вывод.

Решение:

agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    handle_parsing_errors="Проверь формат вывода и попробуй снова. Используй только указанные ключевые слова: Thought, Action, Action Input, Observation."
)

Продвинутые паттерны и оптимизации

Для повышения эффективности агентов используйте следующие техники:

  • Memory (Память): Добавьте хранилище для запоминания контекста между сессиями
  • Callback handlers: Отслеживайте метрики производительности и стоимость
  • Streaming: Выводите промежуточные результаты для улучшения UX
  • Retry logic: Автоматически повторяйте неудачные операции с экспоненциальной задержкой
  • Validation: Проверяйте корректность данных перед передачей в инструменты

FAQ

Вопрос 1: Можно ли комбинировать ReAct и MRKL в одной системе?

Да, это распространенная практика. Вы можете использовать ReAct как общий фреймворк для reasoning, а MRKL-модули как специализированные инструменты внутри системы. Например, ReAct-цикл управляет общей логикой, а MRKL-модули предоставляют экспертизу в конкретных областях.

Вопрос 2: Какие модели LLM лучше всего подходят для агентов?

Для production-систем рекомендуются GPT-4, Claude 3 Opus/Sonnet или Gemini Pro. Для экспериментов подойдут GPT-3.5-turbo или открытые модели вроде Mixtral. Ключевые требования: хорошее следование инструкциям, способность к reasoning и стабильный формат вывода.

Вопрос 3: Как оценить качество работы агента?

Используйте метрики:

  • Task Success Rate (процент успешно выполненных задач)
  • Average iterations (среднее число шагов до решения)
  • Cost per task (стоимость одной задачи)
  • Human evaluation score (оценка экспертов)
  • Response time (время выполнения)

Вопрос 4: Безопасно ли давать агенту доступ к критическим системам?

Необходимо внедрять строгие меры безопасности: песочницы для выполнения кода, ограничения на операции (whitelist действий), логирование всех действий, human-in-the-loop для критических операций, rate limiting для предотвращения злоупотреблений.

Вопрос 5: Как масштабировать агентов для production?

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

Заключение

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

Для следующих шагов рекомендуется:

  1. Создайте простой прототип агента с базовыми инструментами
  2. Протестируйте оба подхода на ваших реальных задачах
  3. Измерьте метрики производительности и стоимости
  4. Постепенно добавляйте сложность через новые инструменты и модули
  5. Внедрите мониторинг и логирование для production-среды

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

Ключевые слова

ReAct MRKL агенты

Нужна помощь с автоматизацией?

SDVG Labs поможет внедрить AI и автоматизацию в ваш бизнес.

Комментарии (14)

Качественный обзор современных подходов. Приятно видеть русскоязычный контент такого уровня. Единственное пожелание - добавить больше технических деталей для продвинутых читателей.

Спасибо за материал! Очень своевременно, как раз разбираюсь с агентами для корпоративного проекта. Вопрос: какой подход лучше подходит для финтех-приложений с высокими требованиями к точности?

Наконец-то понятное объяснение различий между подходами! Искал информацию про архитектура агентов несколько дней, ваша статья лучшая из найденных. Буду ждать продолжения темы.

Хорошая подборка материала. Правда, хотелось бы больше примеров кода или ссылок на готовые реализации. Но в целом для понимания концепции более чем достаточно.

Спасибо, очень помогло! Теперь понимаю, какой фреймворк выбрать для нашего проекта автоматизации поддержки клиентов.

Очень полезно для тех, кто только начинает погружаться в тему AI-агентов. Язык понятный, без излишнего академизма. Рекомендую коллегам!

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

Отличное введение в тему. Сохранил ссылку, чтобы делиться с джуниорами в команде. Материал структурирован логично и понятно объясняет сложные концепции.

Коротко и по делу. Сохранила в закладки, чтобы показать команде разработки. Мы как раз планируем внедрять AI-агентов в наш продукт.

Классный разбор! Раздел про reasoning особенно помог разобраться, как агенты принимают решения. Теперь понятно, почему наш прототип работал не так, как ожидалось.

Отлично! Как раз думаю над интеграцией агентов в наш SaaS. Статья помогла определиться с направлением. Есть ли у вас кейсы по внедрению?

Искал информацию про LLM агенты, эта статья идеально подошла! Особенно ценно, что автор не просто описал теорию, но и дал практические рекомендации по выбору архитектуры. Редко встречаю такой баланс.

Очень актуально! Мы в компании как раз обсуждаем внедрение AI-агентов. Статья дала хорошую базу для принятия решения о выборе технологии.

Отличная статья! Наконец нашел хорошее объяснение про ReAct MRKL агенты. Раньше встречал только поверхностные обзоры, а здесь все разложено по полочкам. Особенно помогло сравнение подходов и конкретные примеры применения. Буду использовать в своем проекте.

Оставить комментарий