Слово «агент» за последний год стало таким же затёртым, как «облако» в 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. Один ключ открывает весь каталог моделей — модель выбираете вы.
Клиент
Клиент — это то, что управляет агентным циклом и общается с моделью. Варианты:
- Claude Code — терминальный клиент с поддержкой MCP. Хорош для задач разработки, понимает структуру проекта.
- Cursor — редактор с встроенным агентом. Удобен, если основная задача — работа с кодом.
- Codex — агент OpenAI, работает в облаке, умеет запускать код в изолированной среде.
- Свой скрипт — Python или TypeScript с OpenAI SDK. Максимум контроля, минимум магии. Подходит для агентов, которые встраиваются в существующую инфраструктуру.
Для большинства рабочих сценариев свой скрипт предпочтительнее: вы точно знаете, что происходит на каждом шаге.
Хранилище контекста проекта
Модель не помнит ничего между запросами. Если агент должен работать с проектом дольше одного сеанса, нужно хранилище: векторная база для семантического поиска по документации, реляционная база для структурированных данных, простой файл с историей — зависит от задачи.
Минимум — это файл с описанием проекта, который вы передаёте в системный промпт при каждом запуске. Максимум — полноценный RAG-пайплайн с индексом по всей кодовой базе и документации.
Набор инструментов
Начните с малого. Типичный минимум:
- чтение и запись файлов
- выполнение поискового запроса по документации или базе знаний
- вызов внутреннего API (если нужен)
- отправка уведомления (Slack, почта, Telegram)
Каждый инструмент — это точка риска. Чем больше инструментов, тем сложнее предсказать поведение агента. Добавляйте инструменты постепенно, когда в них появляется реальная потребность.
Логирование запросов
Без логов вы не поймёте, почему агент сделал то, что сделал. Логируйте каждый вызов модели: промпт, ответ, вызванные инструменты, результаты инструментов, время и количество токенов. В личном кабинете 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.