К содержанию
PardAiLab

AI-агенты

Как собрать самого простого ИИ-агента: архитектура, которую может повторить каждый

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

Когда говорят об ИИ-агентах, часто создается впечатление, что это какая-то сложная технология с множеством моделей и компонентов. На практике минимальный агент состоит всего из четырех основных частей: классификатора, набора скиллов, инструментов и языковой модели (LLM). Этого уже достаточно, чтобы агент понимал запросы пользователя, выполнял необходимые действия и формировал ответ.

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

Пользователь
      │
      ▼
Классификатор
      │
      ▼
    Skill
      │
      ▼
    Tools
      │
      ▼
      LLM
      │
      ▼
 Пользователь

Рассмотрим каждый компонент подробнее.

Классификатор

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

Например, пользователь пишет:

  • «Какая сегодня погода?»
  • «Напиши краткое содержание статьи.»
  • «Создай изображение космического корабля.»

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

Skill

Скилл (Skill) — это описание того, как выполнить конкретную задачу. Он не содержит сложной логики искусственного интеллекта. Его задача — определить последовательность действий и необходимые инструменты.

Например, скилл «Поиск новостей» может состоять из следующих шагов:

  1. Выполнить поиск.
  2. Получить содержимое найденных страниц.
  3. Выделить главное.
  4. Передать результаты языковой модели.

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

Tools

Инструменты (Tools) выполняют реальные действия. Они не принимают решений и не анализируют смысл запроса. Каждый инструмент выполняет только одну функцию.

Типичные инструменты:

  • поиск в интернете;
  • HTTP API;
  • работа с базой данных;
  • RAG-поиск по документам;
  • генерация изображений;
  • запуск Python-кода;
  • отправка сообщений в Telegram или по электронной почте.

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

LLM

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

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

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

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

Предположим, пользователь пишет:

«Какая погода будет завтра в Москве?»

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

Пользователь
      │
      ▼
Классификатор
      │
      ▼
 Skill «Погода»
      │
      ▼
 Weather API
      │
      ▼
      LLM
      │
      ▼
 Ответ пользователю

Шаг 1. Выбор скилла

Классификатор анализирует запрос и определяет, что пользователь хочет получить прогноз погоды. Для этого подходит скилл «Погода».

Если бы запрос был «Переведи текст на английский», был бы выбран другой скилл. Если пользователь попросил найти новости — третий. Классификатор занимается только выбором подходящего сценария и не выполняет никаких действий самостоятельно.

Шаг 2. Выполнение скилла

После выбора начинается выполнение скилла.

Например, внутри скилла «Погода» могут быть описаны следующие действия:

  1. Определить город.
  2. Определить дату прогноза.
  3. Вызвать API погодного сервиса.
  4. Получить прогноз.

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

Шаг 3. Работа инструментов

Инструмент обращается к внешнему сервису и возвращает данные. Обычно это обычный JSON-документ.

Например:

{
  "city": "Москва",
  "temperature": 14,
  "condition": "Облачно",
  "wind": 5
}

На этом этапе никакого красивого текста еще нет. Получены только структурированные данные.

Шаг 4. Работа LLM

Теперь результат передается языковой модели.

LLM получает уже готовые данные и формирует понятный человеку ответ, например:

«Завтра в Москве ожидается облачная погода. Температура воздуха около +14 °C, ветер до 5 м/с.»

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

Почему это важно

Разделение обязанностей делает агента более надежным.

  • Классификатор выбирает нужный сценарий.
  • Скилл определяет последовательность действий.
  • Инструменты получают реальные данные.
  • LLM анализирует результаты и формирует ответ.

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

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

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

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

Memory
 ├── История диалога
 ├── Долговременная память
 └── База знаний (RAG)

История диалога

Самый простой вид памяти — история текущего разговора. Благодаря ей агент понимает, к чему относятся местоимения и уточнения.

Например:

Пользователь: «Расскажи про ChatGPT.»
Пользователь: «А сколько у него контекст?»

Без истории диалога второй вопрос становится непонятным. Агент не знает, о чем идет речь. История позволяет сохранить контекст разговора и передать его языковой модели.

Долговременная память

Этот тип памяти хранит информацию, которая может пригодиться в будущих диалогах.

Например:

  • предпочитаемый язык общения;
  • имя пользователя;
  • активный проект;
  • любимый формат ответов;
  • индивидуальные настройки.

Такие данные не нужно спрашивать при каждом новом запросе. Агент может автоматически использовать их при выполнении соответствующих скиллов.

База знаний (RAG)

RAG (Retrieval-Augmented Generation) — это память другого типа. Она хранит не информацию о пользователе, а документы, инструкции, статьи, внутреннюю документацию компании и другие источники знаний.

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

После этого найденные материалы передаются языковой модели, которая формирует итоговый ответ.

Когда агент использует память

Память может использоваться на разных этапах выполнения запроса.

Пользователь
      │
      ▼
Чтение Memory
      │
      ▼
Классификатор
      │
      ▼
    Skill
      │
 ┌────┴─────────────┐
 │                  │
 ▼                  ▼
Tools            Memory
 │
 ▼
      LLM
      │
      ▼
Запись новой информации
      │
      ▼
 Пользователь

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

Нужно ли всегда использовать память?

Нет. Если пользователь задает простой вопрос, например «Сколько будет 125 × 16?», память не требуется. Но если задача связана с предыдущими сообщениями, персональными настройками или внутренними документами, память становится важной частью архитектуры.

В следующей части мы объединим все компоненты в единую схему, рассмотрим полный цикл работы агента и разберем практические рекомендации по проектированию собственной агентной системы.

Теперь объединим все рассмотренные компоненты в единую архитектуру. Именно так устроено большинство современных ИИ-агентов независимо от используемой платформы или языковой модели.

                 Пользователь
                       │
                       ▼
             Классификатор
                       │
                       ▼
                   Skill
            ┌────────┼────────┐
            ▼        ▼        ▼
         Memory    Tools     RAG
            │        │
            └────┬───┘
                 ▼
                LLM
                 │
                 ▼
          Ответ пользователю

Обработка каждого запроса происходит по одному и тому же принципу.

  1. Пользователь отправляет запрос.
  2. Классификатор определяет, какой скилл необходимо выполнить.
  3. Скилл читает память, если это необходимо.
  4. Скилл вызывает один или несколько инструментов.
  5. Инструменты получают реальные данные или выполняют действия.
  6. При необходимости выполняется поиск по базе знаний (RAG).
  7. Все полученные результаты передаются языковой модели.
  8. LLM анализирует информацию и формирует итоговый ответ.
  9. Если появились новые важные данные, они сохраняются в память.

Как проектировать скиллы

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

Лучше придерживаться простого правила:

  • один скилл — одна задача;
  • один инструмент — одно действие;
  • каждый компонент должен иметь только одну область ответственности.

Например, вместо одного скилла «Работа с документами» лучше создать несколько независимых:

  • «Поиск документа»;
  • «Извлечение текста»;
  • «Резюмирование»;
  • «Перевод»;
  • «Проверка фактов».

Такую архитектуру значительно проще тестировать, расширять и повторно использовать в других агентах.

Минимальный набор инструментов

Для большинства проектов достаточно нескольких базовых инструментов:

  • поиск в интернете;
  • HTTP/API-клиент;
  • RAG-поиск по документам;
  • работа с файлами;
  • доступ к базе данных;
  • выполнение Python-кода.

Остальные инструменты можно добавлять по мере необходимости.

Итоги

Самый простой ИИ-агент не требует сложной инфраструктуры. Его можно построить всего из нескольких независимых компонентов:

  • классификатор выбирает нужный скилл;
  • скилл определяет последовательность действий;
  • инструменты выполняют работу;
  • память хранит контекст и знания;
  • LLM анализирует результаты и формирует ответ.

Такое разделение делает архитектуру модульной. Чтобы добавить новую возможность, обычно не требуется изменять весь агент — достаточно создать новый скилл, подключить необходимые инструменты и зарегистрировать его в классификаторе. Именно поэтому современные агентные системы легко масштабируются: количество навыков может расти без существенного усложнения основной логики работы.

ПоделитьсяВКТГ

Нашли ошибку

Напишите, что не сходится в этом материале.

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

Дальше

ИИ становится инженером: как новые модели переходят от написания кода к разработке сложных систем

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

Все материалы раздела «Практика»