Базовый минимум. Часть 4: ИИ-агенты

Базовый минимум. Часть 4: ИИ-агенты

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

Серия «Базовый минимум» включает четыре части:

  • Базовый минимум. Часть 1: большие языковые модели
  • Базовый минимум. Часть 2: промпт-инжиниринг
  • Базовый минимум. Часть 3: RAG-системы
  • Базовый минимум. Часть 4: ИИ-агенты (текущая часть)

«Что такое воля, как не мысль, переходящая в дело?» — Александр Александрович Бестужев-Марлинский

От RAG-систем к ИИ-агентам

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

Если поиск вернул нерелевантные фрагменты, модель просто сгенерирует ответ на их основе.

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

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

Согласно документации Google Cloud, ИИ-агент (AI agent) — это система, использующая искусственный интеллект для достижения целей и выполнения задач от имени пользователя. Он анализирует задачу, формирует план, выбирает инструменты и выполняет последовательность действий до получения результата.

Агент может взаимодействовать с внешними сервисами: запускать код, изменять файлы, обращаться к API или работать с базами данных. То есть он не просто описывает решение, а влияет на окружение.

Важная особенность агентов — самокоррекция. Если информации недостаточно или результат некорректен, агент может уточнить запрос, повторить поиск или пересчитать данные перед тем, как сформировать итоговый ответ.

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

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

Компоненты ИИ-агента

Для автономной работы ИИ-агенту необходимы несколько ключевых компонентов.

В центре остаётся LLM. На каждом шаге она генерирует инструкции, промежуточные выводы, запросы к инструментам, а также редактирует текст и код.

Для взаимодействия со средой используются инструменты. Это может быть поиск в базе знаний, вызов API, выполнение кода и другие операции.

Агент обладает памятью. Краткосрочная хранит текущий контекст и промежуточные результаты, чтобы не терять ход рассуждений. Долгосрочная — например, векторные базы данных или корпоративные знания — позволяет накапливать и использовать информацию в будущем.

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

Контроль ошибок — ещё один важный элемент. Агент оценивает результаты, выявляет несогласованности, сверяет факты и при необходимости делает повторные попытки.

Окружение — это всё, с чем агент может взаимодействовать: сервисы, данные, пользователи.

Что такое ReAct

Один из ранних и эффективных паттернов агентного поведения — ReAct. Его логика проста: модель действует по циклу «думать — действовать — наблюдать».

Сначала она рассуждает (reason), что нужно сделать. Затем выполняет действие (act) через инструмент. После получения результата (observe) решает, какой шаг будет следующим.

Преимущество ReAct в прозрачности: видна вся цепочка — план, вызовы инструментов, результаты. Это позволяет контролировать процесс. Многие современные агенты строятся на этом паттерне.

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

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

Мультиагентная система (MAS, Multi-Agent System) — это совокупность агентов, которые координируют действия и совместно решают задачу. Это похоже на команду: есть планировщик, исследователь, исполнитель и валидатор. Их результаты объединяются в итоговый ответ.

Такой подход даёт преимущества:

  • Параллелизм: подзадачи выполняются одновременно.
  • Качество: агенты могут проверять друг друга, снижая риск ошибок.
  • Масштабируемость: проще управлять сложными сценариями с множеством инструментов и данных.

Чаще всего используется агент-координатор (или «оркестратор»), который разбивает цель на подзадачи, распределяет их и собирает результат. В простых случаях это конвейер ролей, в сложных — динамическая схема с обратными вызовами между агентами.

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

ИИ-агенты в современных сервисах

Крупные компании активно внедряют агентные технологии в массовые продукты.

Например, в ChatGPT развиваются сценарии с агентным поведением, включая работу с кодом через Codex. GitHub Copilot интегрируется в IDE (например, VSCode), анализирует проекты, предлагает правки и создаёт тесты — всё это признаки перехода к агентности.

Microsoft представила Microsoft 365 Copilot — помощника, встроенного в приложения Office (Word, Excel, PowerPoint, Outlook, Teams). Он обрабатывает документы, письма, встречи и автоматически формирует отчёты и презентации.

К моменту чтения этой статьи, вероятно, уже появилось ещё больше подобных инструментов.

Практический пример: минимальный ИИ-агент-помощник

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

Результат — MVP помощника в путешествиях, который умеет:

  • Проверять погоду в городах
  • Искать мероприятия в городах
  • Отправлять письма на почту

Полный код доступен в Google Colab для экспериментов. Ниже — разбор ключевых компонентов.

Инициализация модели

Использовалась модель Qwen 3.5 (9B), запущенная локально в Colab через Ollama.

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

Инструменты агента

В коде определены три инструмента: get_weather, get_events и send_email.

Агент может находить мероприятия в городе, предлагать их пользователю и давать рекомендации по одежде на основе погоды.

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

Функции реализованы с помощью декоратора @tool из langchain_core.tools. Он превращает обычную Python-функцию в инструмент, доступный для вызова агентом.

Модель видит описание функции (docstring), понимает её аргументы и решает, когда её применить.

В продвинутых системах инструменты часто реализуют через MCP (Model Context Protocol), например с fastmcp. Это даёт больше гибкости и возможность выносить инструменты в отдельные сервисы. В данном примере это избыточно, поэтому используется простой подход.

Промпт и контекст пользователя

Здесь задаётся поведение агента и передаётся персональная информация о пользователе для более осмысленных ответов.

Инструменты объединяются в список. Модель и список передаются в create_agent из langchain.agents вместе с SystemMessage из langchain_core.messages. На этом этапе LLM превращается в агента.

В примере используется LangChain версии 1.2.12.

Цикл работы

Реализован цикл взаимодействия с пользователем.

Ввод пользователя добавляется в историю диалога и передаётся агенту вместе с системным промптом. Внутри agent.invoke происходит вся логика.

Промежуточные шаги (вызовы инструментов и их результаты) выводятся отдельно — чтобы было видно, как агент рассуждает и действует.

Пример диалога

В примере агент самостоятельно решает вызвать два инструмента — погоду и события. Получив данные, он формирует итоговый ответ.

При этом он учитывает контекст: обращается к пользователю по имени, даёт рекомендации по одежде и предлагает мероприятия.

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

Заключение

В этой серии мы прошли путь от базовой языковой модели к сложным системам на её основе.

RAG подключает внешние знания, делая ответы точнее и проверяемыми. Промпт-инжиниринг помогает управлять качеством и форматом вывода. Агенты расширяют возможности LLM до выполнения многошаговых, автономных задач.

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

Читать оригинал