Агентный ИИ: архитектуры AI-агентов, ReAct и tool use

Как устроены агентные системы вокруг LLM: ReAct, tool use, память, маршрутизация, мультиагентные схемы и контроль рисков в production.

Агентный ИИ: автономные модели, действующие самостоятельно

Агентный ИИ — это не отдельный тип модели, а способ собрать систему вокруг LLM: модель рассуждает, вызывает инструменты, читает наблюдения и продолжает работу до результата. В этой статье фокус на архитектуре: ReAct, tool use, память, планирование, мультиагентные схемы и ограничения в production.

Если нужен базовый разбор без технических деталей, начните с evergreen-материала AI-агенты: что это такое и как работают.

Схема ReAct с объединением reasoning и acting на странице проекта ReAct
Источник: страница проекта ReAct: Synergizing Reasoning and Acting in Language Models.

Что значит агентная архитектура

В агентной архитектуре LLM не просто пишет ответ. Она выбирает следующее действие из разрешённого набора, получает результат и решает, завершать задачу или продолжать. Это делает систему полезнее обычного prompt-to-answer, но добавляет новые точки отказа.

  • Модель — центр принятия решений.
  • Инструменты — безопасные функции с явной схемой входа и выхода.
  • Среда — всё, куда агент может смотреть или что может менять.
  • Состояние — память о задаче, пользователе, промежуточных шагах.
  • Политики — лимиты, права, проверки, правила остановки.

ReAct: reasoning плюс acting

Классический паттерн ReAct описан в работе 2022 года ReAct: Synergizing Reasoning and Acting in Language Models. Идея простая: модель чередует рассуждение, действие и наблюдение. Рассуждение помогает выбрать шаг, действие обращается к инструменту, наблюдение возвращает факты в контекст.

Goal: найти актуальный статус заказа A-1042
Thought: нужно получить данные из CRM
Action: get_order(order_id="A-1042")
Observation: заказ оплачен, доставка запланирована на 15 апреля
Thought: нужно сформулировать короткий ответ клиенту
Final: Заказ A-1042 оплачен, доставка запланирована на 15 апреля.

В production не обязательно показывать рассуждения пользователю. Важно другое: каждое действие должно быть структурированным, журналируемым и проверяемым.

Tool use: слой действий

Tool use — граница между моделью и реальным миром. Модель не должна сама менять данные. Она просит вызвать инструмент с аргументами, а приложение проверяет права, выполняет функцию и возвращает результат.

  • Read-only инструменты безопаснее: поиск, чтение документа, получение статуса.
  • Write-инструменты требуют подтверждения или строгих политик: отправка письма, изменение заказа, создание платежа.
  • Каждый инструмент должен иметь схему аргументов, описание и понятный формат ошибки.
  • Чем больше инструментов видно модели одновременно, тем выше риск неверного выбора.

Память и состояние

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

  • Short-term memory держит текущий контекст задачи.
  • Long-term memory хранит устойчивые предпочтения и факты.
  • Retrieval memory подтягивает документы из базы знаний.
  • Execution state фиксирует уже выполненные шаги, чтобы агент не повторял одно и то же.

Планирование и маршрутизация

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

ПаттернГде полезенГлавный риск
RouterПоддержка, triage, выбор workflowНеверная классификация
ReAct loopПоиск, анализ, работа с инструментамиБесконечные или лишние шаги
Planner-executorСложные задачи с несколькими этапамиПлан устаревает после первого сбоя
Multi-agentРазделение ролей: исследователь, исполнитель, ревьюерСпор агентов вместо результата

Мультиагентные системы

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

  • Роли должны быть узкими и проверяемыми.
  • Передача между агентами должна идти через артефакт: diff, таблицу, отчёт, список фактов.
  • Нужен один владелец финального решения.
  • Параллельность полезна только там, где задачи независимы.

Наблюдаемость и оценка качества

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

  • Trace ID для каждого запуска.
  • Список tool calls с аргументами и результатами.
  • Счётчики токенов и внешних API-вызовов.
  • Причина остановки: успех, лимит шагов, ошибка инструмента, ручное подтверждение.
  • Набор eval-задач для регрессионной проверки.

Ограничения в production

Агентная система ломается не так, как обычный сервис. Сервис падает или возвращает ошибку; агент может сделать правдоподобный, но неверный шаг. Поэтому безопасность строится не только вокруг модели, но и вокруг инструментов.

  • Минимизируйте права инструментов: read-only по умолчанию.
  • Добавляйте подтверждение человека для дорогих и необратимых действий.
  • Проверяйте входные документы на prompt injection.
  • Ставьте лимит шагов, времени и бюджета.
  • Делайте idempotency для write-операций, чтобы ретрай не дублировал действие.

Как выбрать архитектуру

  • Задача одношаговая — обычный LLM-запрос или tool call без агента.
  • Есть 2-4 понятных маршрута — router/workflow.
  • Нужны внешние данные и несколько попыток — ReAct loop с лимитом шагов.
  • Нужны роли и независимые подзадачи — multi-agent, но только с явным владельцем финального ответа.
  • Нужны действия в браузере или интерфейсе — отдельный sandbox и ручное подтверждение критичных шагов.

Что читать дальше

Telegram-канал @toolarium