Для кого эта статья: для тех, кто только начинает знакомство с миром AI и хочет понять, что происходит «под капотом» - LLM, агенты, tooling и MCP.

Стиль: я сознательно опускаю сложные детали, чтобы сохранить простоту и дать ясную общую картину.

Введение - что перед нами и зачем это понимать

Итак - что такое любой AI-чат? По сути это клиент-серверное приложение: клиент - это фронтенд (веб-форма с чатом), сервер - бэкенд с API. Бэкенд общается с главным компонентом - большой языковой моделью (LLM, Large Language Model). LLM умеет предсказывать продолжение текста: вы даёте prompt (входное сообщение), модель «додумывает» ответ - и вы получаете сгенерированный текст.

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

Как работает LLM в двух предложениях

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

Важно: модель не «понимает» мир как человек - она опирается на статистику и паттерны.

Векторы и токенизация - почему текст не напрямую

На входе и выходе с моделью работают не «слова», а их цифровые представления - токены и векторы (embeddings, токенизация/декодирование). Кто-то (инфраструктура или библиотека) конвертирует ваш текст в числа, передаёт их в модель, а модель выдаёт числа, которые преобразуют обратно в текст.

Это часть технической магии, но для понимания важна идея: LLM оперирует числами, а не «буквами».

Память - где хранится история беседы

LLM сама по себе не хранит постоянной «памяти» разговоров между сессиями. Чтобы создать эффект памяти, бэкенд обычно при каждом запросе отправляет в модель историю сообщений (контекст). То есть «память» - это задача бэкенда: сохранять, подготавливать и при необходимости сокращать/подменять контекст.

Модель может чего то не знать и как это решается

Если вы спросите у модели «Какая сейчас погода?» или «Какой сегодня день?», модель может:

  • честно ответить «не знаю» (если это предусмотрено),

  • или «галлюцинировать» - выдать вымышленный ответ.

Решение - дать модели доступ к внешним инструментам (tooling): интернет-поиск, запрос к календарю, запуск небольшого кода и т. п. Тогда модель научится просить: «вызовите этот инструмент» - и опираясь на реальный результат даст корректный ответ.

Tooling - что это и как выглядит на практике

Tooling - это набор инструментов, которые LLM может «вызвать» для выполнения задач вне её статистических знаний: поиск в сети, получение времени, генерация изображений, взаимодействие с БД, выполнение кода и т.д.

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

{
  "name": "getDate",
  "description": "Возвращает текущую дату"
}

Поток обмена может выглядеть так:

Пользователь: Какой сегодня день?
LLM: Мне нужен результат функции getDate()
Фреймворк/бэкенд: вызывает getDate() → "01/01/2025"
LLM: Сегодня первое января 2025 года

Фреймворки вроде LangChain, CrewAI, Spring AI и др. помогают программистам автоматически формировать контекст, сериализовать вызовы функций и обрабатывать ответы - чтобы разработчику не писать всю эту рутину вручную.

MCP (Model Context Protocol) - зачем он нужен

MCP - это попытка стандартизировать «язык общения» между LLM и инструментами. Если tooling - это конкретные функции в конкретном бэкенде, то MCP - общий формат/протокол, который позволяет описывать инструменты в стандартном виде, обмениваться ими и переиспользовать.

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

Чем отличается AI-чат от AI-агента

Разницы по структуре немного, но есть акцент:

AI-чат - интерфейс для общения: фронтенд, бэкенд, LLM и набор инструментов (tooling/MCP). AI-агент - более «умная» реализация, где сверху может быть написана логика на коде, решающая бизнес-задачи: оркестрация вызовов моделей, автоматизация сценариев, использование RAG (retrieval-augmented generation) для подстановки релевантной информации в контекст и т. д.

Проще: агент - это чат + программная логика, которая принимает решения и действует от имени пользователя.

Пример архитектуры (кратко)

AI-чат обычно состоит из:

  • фронтенд-приложения (веб-интерфейс с чатом),

  • бэкенда (API чата, хранение истории, управление контекстом),

  • LLM и внешних инструментов (tooling) - возможно обёрнутых в фреймворк и/или реализованных через MCP,

  • дополнительной «начинки» - других нейросетей (например, генерация картинок: DALL·E, Stable Diffusion и т. п.), в случае если чат не только про текст.

Заключение - без магии, с пониманием

В итоге: за «волшебным» ответом чата стоит вполне инженерная работа: подготовка контекста, токенизация/векторизация текста, вызовы внешних инструментов и обработка их результатов. Понимание этих трёх слов - LLM, tooling и MCP - даёт вам хорошую картину того, как современные чаты и агенты получают и формируют ответы.

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