Вызов инструментов
Модель сама ничего не выполняет. Приложение передаёт ей описания инструментов — имя, описание «когда вызывать», JSON-схему параметров. Вместо текста модель может вернуть запрос на вызов с аргументами. Код приложения проверяет аргументы и права пользователя, выполняет функцию и возвращает результат модели отдельным сообщением. Модель формирует ответ или вызывает следующий инструмент.
Описание инструмента — тоже промпт: от него зависит, выберет ли модель нужный. Ошибку инструмента возвращают понятным текстом, а не падением.
Агент — это цикл
Агент повторяет «подумать → вызвать инструмент → посмотреть результат», пока задача не решена. Это гибко, но ненадёжно: ошибки на шагах накапливаются — 95 % успеха на шаге дают около 60 % на десяти шагах. Поэтому начинают с простейшего решения: фиксированная цепочка вызовов надёжнее и дешевле; агент нужен, когда шаги заранее неизвестны. У агента всегда есть лимиты шагов, времени и бюджета и трассировка каждого шага.
MCP
Model Context Protocol — открытый стандарт подключения инструментов и данных к LLM-приложениям. MCP-сервер публикует инструменты, ресурсы и шаблоны промптов, и любой совместимый клиент — ассистент, IDE, свой агент — подключается к нему без отдельной интеграции.
Prompt injection
Промпт-инъекция — текст, который заставляет модель нарушить инструкции. Прямая — пользователь пишет «забудь инструкции». Непрямая — команда спрятана в данных: письме, веб-странице, документе, ответе инструмента. Непрямая опаснее: пользователь ничего не нарушал, а атакующий управляет агентом через контент.
Надёжного фильтра инъекций нет, поэтому защищаются архитектурой: минимальные права инструментов, подтверждение опасных действий человеком, проверка вывода, разделение данных и инструкций. Проектируйте так, чтобы успешная инъекция мало что могла сделать.
Итог
- Модель просит вызов, выполняет его ваш код с проверками.
- Агент — только когда шаги неизвестны, с лимитами и трассами.
- MCP стандартизирует подключение инструментов.
- От инъекций защищают права и подтверждения, а не промпт.