Архитектура и создание AI-агентов: от теории к практике

Курс посвящен проектированию и разработке автономных интеллектуальных систем. Вы изучите архитектуру агентов, работу с инструментами (Tools) и памятью, а также освоите платформы для создания решений без кода и с использованием Docker, опираясь на актуальные подходы [vc.ru](https://vc.ru/ai/2264219-sozdanie-ai-agenta-bez-koda-za-odin-den) и техническую документацию [cloud.ru](https://cloud.ru/docs/ai-agents/ug/topics/guides__create-agent).

1. Понятие AI-агента: отличия от GenAI, критерии автономности и ключевые компоненты системы

Понятие AI-агента: отличия от GenAI, критерии автономности и ключевые компоненты системы

Добро пожаловать в курс «Архитектура и создание AI-агентов». Мы начинаем погружение в одну из самых быстрорастущих областей искусственного интеллекта. Если 2023 год был годом чат-ботов, то текущий этап развития технологий по праву можно назвать эрой агентных систем.

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

От генерации текста к выполнению действий

Долгое время взаимодействие с языковыми моделями (LLM) строилось по принципу «Запрос — Ответ». Вы задаете вопрос, модель генерирует текст. Это пассивный режим: модель не знает о внешнем мире, не может проверить факты в реальном времени и не умеет выполнять задачи за пределами диалогового окна.

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

Согласно Habr, многие компании (например, Anthropic и Hugging Face) сходятся во мнении, что агенты — это системы, где LLM динамически управляют собственными процессами и использованием инструментов.

Проще говоря: * GenAI (ChatGPT): Пишет письмо по вашему запросу. * AI-агент: Открывает почтовый клиент, находит нужный контакт, анализирует переписку, пишет письмо, отправляет его и ставит задачу в CRM.

AI-агент vs GenAI: В чем разница?

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

| Характеристика | GenAI (LLM) | AI-агент | | :--- | :--- | :--- | | Роль | Энциклопедия / Генератор контента | Исполнитель / Сотрудник | | Входные данные | Только промпт пользователя | Промпт + Состояние среды + Результаты инструментов | | Доступ к миру | Ограничен датой обучения (cutoff) | Реальное время (через API и поиск) | | Цикл работы | Один проход (Input Output) | Итеративный цикл (Мысль Действие Наблюдение) | | Результат | Текст, код, картинка | Выполненная работа (забронированный билет, развернутый сервер) |

Как отмечают в vc.ru, если представить ИИ-агент как самостоятельный модуль, то существуют и более сложные системы — «агентный ИИ», где множество агентов работают сообща, как оркестр.

Критерии автономности

Не любую программу, вызывающую API, можно назвать агентом. Чтобы система считалась AI-агентом, она должна соответствовать трем ключевым критериям, которые часто выделяют в индустрии (например, в документации Сбера):

  • Планирование (Planning)
  • Способность разбить сложную задачу («Узнай цены конкурентов и составь отчет») на последовательность шагов: найти сайты извлечь цены сравнить записать в файл.

  • Выполнение (Execution)
  • Способность самостоятельно совершать действия, используя инструменты (браузер, интерпретатор кода, базы данных), а не просто просить пользователя сделать это.

  • Автономность (Autonomy)
  • Наличие полномочий принимать решения внутри плана без микроменеджмента со стороны человека. Агент сам решает, что делать, если сайт конкурента не открылся (например, поискать «зеркало» или пропустить шаг).

    > AI‑агент или агентная система — это автоматизированная система, соответствующая трем критериям: Планированию действий, Выполнению плана, Автономности. > > Habr

    Архитектура: Из чего состоит агент

    Классическая архитектура AI-агента состоит из четырех главных модулей. Представьте это как цифрового сотрудника.

    1. Мозг (LLM)

    Это ядро системы. LLM (например, GPT-4, Claude 3.5, Llama 3) отвечает за рассуждения. Она не просто генерирует текст, а анализирует задачу и выбирает, какой инструмент использовать.

    2. Память (Memory)

    Чтобы агент был эффективным, он должен помнить контекст. Память делится на два типа: * Краткосрочная: История текущего диалога и промежуточные мысли (Chain of Thought). * Долгосрочная: База знаний (Vector Database), куда агент может сохранить информацию и извлечь её спустя дни или недели.

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

    где: * — степень похожести (от -1 до 1, где 1 — полная идентичность); * — вектор запроса пользователя; * — вектор документа в базе данных; * — скалярное произведение векторов; * и — длины (нормы) векторов.

    Пример: Если вектор запроса (тема «финансы»), а вектор документа (статья про акции), их сходство будет близко к 1, и агент поймет, что этот документ полезен.

    3. Планирование (Planning)

    Агент должен уметь критиковать свои действия. Используются техники: * ReAct (Reason + Act): Модель сначала пишет «мысль» (что мне нужно сделать), затем совершает «действие», получает «наблюдение» и делает вывод. * Decomposition: Разбиение большой цели на подзадачи.

    4. Инструменты (Tools)

    Это «руки» агента. Инструментом может быть что угодно, что имеет API: * Поисковик (Google Search, Bing). * Калькулятор или Python REPL (для точных вычислений). * Корпоративные системы (CRM, Jira, Slack).

    Согласно Habr, в корпоративной среде агенты не просто отвечают на вопросы, а классифицируют заявки, назначают исполнителей и инициируют процессы, работая с неструктурированными данными.

    Как агент принимает решения (Пример)

    Представьте, что агенту нужно выбрать лучший инструмент для задачи. Он может использовать внутреннюю логику оценки полезности. Допустим, у агента есть выбор между «Поиском в Google» и «Внутренней базой знаний».

    Агент может оценить полезность инструмента () по простой взвешенной формуле:

    где: * — итоговая оценка полезности инструмента; * — вес важность релевантности (насколько инструмент подходит); * — оценка релевантности (от 0 до 1); * — вес стоимости (время или деньги); * — стоимость использования инструмента.

    Пример расчета: Задача: «Найти курс доллара на сегодня».

  • Поиск в Google: Релевантность , Стоимость . Веса: .
  • База знаний (данные за 2021 год): Релевантность , Стоимость .
  • Результат: , агент выбирает Google. Это упрощенная модель того, что происходит внутри «мозга» агента при выборе Tools.

    Итоги

    Мы разобрали базовые понятия, необходимые для дальнейшего создания агентов. Краткое резюме:

  • Агент — это не просто чат-бот. Это система, обладающая целью, способностью планировать и инструментами для воздействия на внешний мир.
  • Три кита автономности: Планирование (понимание «как»), Выполнение (реализация через инструменты) и Автономность (работа без постоянного контроля).
  • Архитектура агента строится вокруг LLM (мозг), но обязательно включает Память (контекст), Планирование (стратегия) и Инструменты (действия).
  • GenAI — это двигатель, Агент — это автомобиль. Языковая модель обеспечивает интеллект, но агентная обвязка позволяет этому интеллекту ехать в нужном направлении и перевозить грузы.
  • В следующих статьях мы перейдем от теории к практике и разберем, как спроектировать простейшего агента на Python.

    2. Архитектура агента: LLM как мозг, управление памятью, планирование и использование внешних инструментов

    Архитектура агента: LLM как мозг, управление памятью, планирование и использование внешних инструментов

    В предыдущей статье мы определили, что AI-агент отличается от обычного чат-бота наличием автономности и способностью воздействовать на мир. Теперь мы откроем «капот» этой системы и разберем её инженерное устройство.

    Агент — это не монолитная нейросеть, а составная программная архитектура, где языковая модель (LLM) играет роль центрального процессора, но не является всей системой. Согласно Habr, между простым чат-ботом и агентом лежит пропасть инженерных решений: управление состоянием, память и интеграция инструментов.

    Рассмотрим четыре главных компонента архитектуры: Мозг (Brain), Память (Memory), Планирование (Planning) и Инструменты (Tools).

    1. LLM как мозг: Вероятностная природа решений

    Центральный компонент агента — Большая Языковая Модель (LLM). В архитектуре агента она выполняет функцию не генератора контента, а движка рассуждений (Reasoning Engine).

    Физика процесса

    Важно понимать, что LLM не «думает» в человеческом смысле. Она предсказывает следующий токен на основе поданного контекста.

    Математически работу «мозга» агента можно описать как функцию условной вероятности:

    где: * — вероятность появления следующего токена; * — предсказываемый токен (следующее слово или часть слова); * — контекст (история сообщений, системный промпт, результаты работы инструментов), поданный на вход модели.

    Согласно kshvakov.github.io, понимание этой вероятностной природы критически важно: если вы хотите, чтобы агент стабильно вызывал инструменты, необходимо снижать параметр вариативности (Temperature) до 0, делая систему детерминированной.

    Проблема «Stateful» и «Stateless»

    Сама по себе LLM — это Stateless система (без сохранения состояния). Она не помнит, что вы писали ей 5 минут назад. Иллюзия памяти создается архитектурной обвязкой, которая при каждом новом запросе заново скармливает модели всю историю переписки. Это подводит нас ко второму компоненту.

    2. Управление памятью

    Память агента — это механизм, позволяющий преодолеть ограничение контекстного окна LLM и сохранять информацию о пользователе и задачах.

    Краткосрочная память (Short-term Memory)

    Это всё, что помещается в текущее контекстное окно модели (Context Window). Сюда входят:

  • Системный промпт: Инструкция «кто ты и что делаешь».
  • История диалога: Последние сообщений.
  • Scratchpad (Черновик): Промежуточные мысли агента (Chain of Thought), которые не показываются пользователю, но нужны для логики.
  • Долгосрочная память (Long-term Memory)

    Если диалог длится долго или агенту нужны знания из корпоративной базы, контекстного окна не хватит. Здесь используется RAG (Retrieval-Augmented Generation) и векторные базы данных.

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

    Рассмотрим формулу гибридного ранжирования памяти:

    где: * — итоговая оценка полезности документа для запроса ; * — весовой коэффициент (от 0 до 1), определяющий важность смысловой близости; * — косинусное сходство между вектором запроса и вектором документа (насколько они похожи по смыслу); * — текущее время (timestamp); * — время создания или последнего обновления документа; * — число Эйлера (основание натурального логарифма, ), добавляется для предотвращения деления на ноль, если документ создан только что.

    Пример: Если агент выбирает между «Инструкцией за 2020 год» (высокое сходство) и «Инструкцией за 2024 год» (чуть меньшее сходство, но новее), второе слагаемое формулы повысит приоритет свежего документа.

    Согласно Habr, современные фреймворки, такие как LangGraph, позволяют управлять состоянием памяти, сохраняя контекст даже между перезапусками приложения.

    3. Планирование (Planning)

    Планирование — это способность агента разбить абстрактную цель («Увеличь продажи») на конкретные шаги. Без планирования агент будет пытаться решить задачу одним запросом, что часто приводит к галлюцинациям.

    Методология ReAct (Reason + Act)

    Это самый популярный паттерн поведения агентов. Он заставляет модель действовать в цикле:

  • Thought (Мысль): Агент анализирует текущее состояние. «Пользователь просит погоду в Лондоне. Мне нужно узнать координаты Лондона, а затем запросить погоду».
  • Action (Действие): Агент формирует команду для инструмента. «Вызвать GeoAPI(city="London")».
  • Observation (Наблюдение): Агент получает результат от инструмента (не от LLM, а от программного кода). «Координаты: 51.50, -0.12».
  • Repeat (Повтор): Цикл повторяется с новыми данными.
  • Пример декомпозиции

    Представим задачу: «Сравни выручку Apple и Microsoft за 2023 год».

    Без планирования LLM может просто выдумать цифры. С планированием агент создаст цепочку: * Шаг 1: Найти финансовый отчет Apple 2023. * Шаг 2: Найти финансовый отчет Microsoft 2023. * Шаг 3: Извлечь цифру Revenue из обоих текстов. * Шаг 4: Вычислить разницу. * Шаг 5: Сформировать ответ.

    4. Инструменты (Tools) и Function Calling

    Инструменты — это «руки» агента. Это функции, API или скрипты, которые агент может вызывать.

    Как LLM нажимает на кнопки?

    LLM не может сама нажать кнопку в браузере или выполнить SQL-запрос. Она работает с текстом. Механизм Function Calling (вызов функций) работает так:

  • Вы описываете инструменты в формате JSON-схемы и передаете их модели вместе с промптом.
  • Если модель решает, что нужно использовать инструмент, она не генерирует обычный текст, а возвращает структурированный JSON с аргументами.
  • Ваш код (runtime) парсит этот JSON, выполняет реальную функцию и возвращает результат модели.
  • Пример того, как модель видит инструмент (упрощенно):

    Если вы спросите «Какая погода в Париже?», модель вернет: {"tool": "get_weather", "args": {"location": "Paris", "unit": "celsius"}}.

    Согласно Habr, именно способность LLM динамически выбирать инструменты и аргументы для них отличает агента от жестко запрограммированного скрипта.

    Оркестрация: Цикл выполнения

    Все эти компоненты объединяются в бесконечный цикл выполнения (Agent Loop), который работает до тех пор, пока задача не будет решена или не сработает предохранитель (например, лимит шагов).

    Упрощенный алгоритм работы агента:

  • Получение задачи от пользователя.
  • Чтение памяти: Добавление релевантного контекста к промпту.
  • LLM (Планирование): Модель решает, что делать дальше (ответить пользователю или вызвать инструмент).
  • Выполнение: Если выбран инструмент запуск кода получение результата.
  • Обновление памяти: Результат записывается в историю.
  • Возврат к шагу 3.
  • Итоги

  • LLM — это не весь агент. Это вероятностный движок, который принимает решения, но для полноценной работы ему нужны «обвес» в виде памяти и инструментов.
  • Память бывает разной. Краткосрочная ограничена окном контекста, долгосрочная реализуется через векторные базы данных и RAG. Для выбора данных важна не только смысловая близость, но и время создания.
  • ReAct — основа действий. Паттерн «Мысль Действие Наблюдение» позволяет агенту корректировать свои действия в процессе выполнения задачи.
  • Инструменты через текст. Агент взаимодействует с внешним миром, генерируя структурированные данные (JSON), которые исполняются обычным кодом.