Слово «агент» за последний год стало таким же затёртым, как «облако» в 2012-м. Все говорят, никто толком не объясняет, что именно имеется в виду. Одни понимают под агентом чат-бота с памятью, другие — автономный процесс, который сам пишет код и деплоит его в прод. Разница принципиальная, и путать их — значит либо переоценить возможности, либо недооценить сложность.

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


Модель, агент, инструмент: в чём разница

Начнём с базы, потому что без неё дальше будет каша.

Модель — это языковая модель, которая принимает текст на вход и возвращает текст на выход. Сама по себе она ничего не делает: не читает файлы, не обращается к базе данных, не отправляет запросы в сторонние сервисы. Она только генерирует ответ на основе того, что ей передали в контексте.

Инструмент — это функция, которую модель может вызвать. Технически это описание функции в JSON-схеме, которое передаётся вместе с запросом. Модель решает, нужно ли вызвать инструмент, и если да — возвращает имя функции и аргументы. Ваш код вызывает реальную функцию, получает результат и передаёт его обратно модели. Так модель «видит» файловую систему, базу данных, результаты поиска — всё, что вы ей дадите.

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

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


Что такое MCP и зачем он нужен

MCP (Model Context Protocol) — это открытый протокол, который стандартизирует способ подключения инструментов к языковым моделям. Идея простая: вместо того чтобы каждый разработчик писал свою обвязку для каждого инструмента, есть единый формат описания серверов с инструментами, ресурсами и подсказками.

Конкретно: MCP-сервер — это процесс, который объявляет набор инструментов по стандартному протоколу. Клиент (Claude Code, Cursor, ваш скрипт) подключается к серверу, получает список доступных инструментов и может их вызывать. Сервер может предоставлять доступ к файловой системе, базе данных, внутреннему трекеру задач, корпоративному вики — чему угодно.

До MCP каждый инструмент нужно было интегрировать вручную: описывать схему, писать обработчик, следить за совместимостью при обновлении модели. MCP убирает эту рутину: если сервер реализует протокол, любой совместимый клиент может с ним работать.

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


Минимальный набор для рабочего помощника

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

Ключ к моделям

Всё начинается с доступа к модели. NeuroZal API предоставляет единый OpenAI-совместимый шлюз к 46 моделям: GPT-5.6, Claude Opus 5 и Sonnet 5, Gemini Flash, DeepSeek, Grok и другим. Один ключ вида sk-nz-..., один base_url: https://api.neurozal.ru/v1 — и вы переключаетесь между моделями без переписывания кода.

Это важно для агентов: тяжёлую задачу отдаёте Claude Opus или GPT-5.6, рутинную классификацию — DeepSeek или Gemini Flash. Расход баланса при этом существенно отличается, и осознанный выбор модели под задачу — это не экономия ради экономии, а инженерное решение.

Важно: NeuroZal API — это ключ для программ, редакторов кода, ботов и автоматизации. Это не аккаунт ChatGPT или Claude с логином и паролем. Он не подключается в мобильном приложении ChatGPT и не заменяет подписку Plus. Один ключ открывает весь каталог моделей — модель выбираете вы.

Клиент

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

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

Хранилище контекста проекта

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

Минимум — это файл с описанием проекта, который вы передаёте в системный промпт при каждом запуске. Максимум — полноценный RAG-пайплайн с индексом по всей кодовой базе и документации.

Набор инструментов

Начните с малого. Типичный минимум:

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

Логирование запросов

Без логов вы не поймёте, почему агент сделал то, что сделал. Логируйте каждый вызов модели: промпт, ответ, вызванные инструменты, результаты инструментов, время и количество токенов. В личном кабинете NeuroZal есть журнал запросов с расходом по каждому ключу — это базовый уровень, но для отладки агента нужны и собственные логи на уровне приложения.


Три живых сценария

Помощник по внутренней документации

Команда растёт, документация разрастается, новые люди тратят часы на поиск ответов. Агент с доступом к вики через MCP-сервер отвечает на вопросы, опираясь на актуальные страницы. Он не придумывает — он ищет и цитирует.

Что нужно: модель (Sonnet или Gemini Flash достаточно для большинства вопросов), MCP-сервер с инструментом поиска по документации, интерфейс (Slack-бот, веб-форма или терминал).

Что может сломаться: документация устарела — агент даёт уверенный, но неверный ответ. Решение: добавить метаданные с датой обновления и передавать их в контекст.

Разбор входящих обращений

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

Что нужно: модель (DeepSeek или Gemini Flash справляются с классификацией и хорошо экономят баланс), инструменты для работы с почтой или мессенджером, инструмент для создания задачи в трекере, шаблоны ответов.

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

Рутинный аудит данных по расписанию

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

Что нужно: модель с хорошим пониманием SQL и структур данных (Claude Sonnet или GPT-4o-mini), инструмент для выполнения запросов к базе (только чтение!), инструмент для генерации и отправки отчёта, планировщик (cron или аналог).

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


Таблица: сценарий, инструменты, риски

Сценарий Инструменты Рекомендуемая модель Что может сломаться
Помощник по документации Поиск по вики, чтение страниц Sonnet, Gemini Flash Устаревшие данные, уверенный неверный ответ
Разбор обращений Почта/мессенджер, трекер задач, шаблоны DeepSeek, Gemini Flash Нестандартные случаи, неверная классификация
Аудит данных SQL-запросы (только чтение), генерация отчёта Claude Sonnet, GPT-4o-mini Пустой результат = «всё хорошо», ошибка в запросе
Кодовый ревью Чтение файлов, git diff, комментарии в PR Claude Opus, GPT-5.6 Контекст слишком большой, потеря деталей
Генерация отчётов База данных, шаблоны, отправка Qwen3-Max, GLM Галлюцинации в числах без проверки источника

Честно про ограничения

Агенты — не волшебство. Вот что реально мешает в продакшне.

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

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

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

Тяжёлые модели тратят баланс заметно быстрее. Claude Opus 5 или GPT-5.6 дают отличное качество рассуждений, но агентный цикл из десяти шагов на такой модели — это совсем другой расход, чем тот же цикл на Gemini Flash. Используйте тяжёлые модели там, где качество рассуждений критично, лёгкие — для рутины.

Контекст не бесконечный. Длинная история инструментальных вызовов быстро заполняет контекстное окно. Агент начинает «забывать» начало задачи. Следите за размером контекста и при необходимости сжимайте историю или разбивайте задачу на части.

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


Практический итог

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

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

Выбор модели под задачу — инженерное решение. Тяжёлые модели хороши для сложных рассуждений и анализа. Лёгкие — для классификации, извлечения данных, генерации по шаблону. Один ключ NeuroZal API даёт доступ ко всему каталогу, и переключение между моделями — это одна строка в коде.

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


С чего начать прямо сейчас

Создайте ключ в личном кабинете на api.neurozal.ru/panel. Подключитесь через OpenAI SDK с base_url: https://api.neurozal.ru/v1. Напишите первый агент с одним инструментом — например, поиском по файлам проекта. Посмотрите журнал запросов, убедитесь, что расход разумный, и только потом добавляйте следующий инструмент.

Документация и примеры — на neurozal.ru/docs. Если что-то не работает — support@neurozal.ru.