Прохожу Agents Week от ШАД. Вторая лекция — про Tools и MCP. Лекция хорошая, но снова не без спорных моментов.
⚠️ «Тулы передаются через системный промпт»
Лектор говорит: «The model is informed about available tools — via the system prompt». Начинающий разработчик слышит это и делает что? Правильно — описывает bash-тул прямо в системном промпте, где-то сразу после «Ты кодинг-инженер...».
Результат: модель может даже сгенерировать вызов. Но
finish_reason не будет tool_use, агентный цикл не получит структурированный вывод, и всё развалится.😀 Обманул ли нас лектор? А вот тут зависит от того, что лектор считает системным промптом)
Реальность такова, что в API и Anthropic, и OpenAI тулы объявляются в отдельной секции запроса, не в системном промпте:
curl https://api.anthropic.com/v1/messages -d '{
"system": "Ты инженер...",
"tools": [{"name": "bash", ...}],
"messages": [...]
}'
Уже на сервере модель получает всё склеенным (на уровне внутренностей лектор прав). Но в коде к этой же лекции сначала тулы хрупко парсят из текстового ответа через
json.loads, а потом вводят LangChain, где тулы уже в отдельной секции. Слайд в итоге говорит одно, код — другое.🌟 Что из лекции реально полезно
Принципы проектирования тулов:
🔸 Частичные сбои. Цепочка «списать оплату >> зарезервировать >> доставить» может оборваться. Тул должен оставлять систему в согласованном состоянии.
🔸 Идемпотентность. Таймаут + повтор = письмо не уходит дважды.
🔸 Ошибки для LLM. Не стектрейс, а текст, по которому модель решит: повторить, спросить пользователя или предложить альтернативу.
🔸 Структурированный вывод. JSON с полями status, order_id — не свободный текст.
💡 Хороший тул — контракт между моделью и внешней системой, рассчитанный на сбои, повторы и изменения среды.
📡 Где заканчиваются тулы и начинается MCP
Пока вы контролируете синтаксис своих инструментов — тулов достаточно.
MCP нужен, когда тулы начинают зависеть от чужих API. Предположим Яндекс.Директ обновил формат — и вам надо переписать тул у каждого агента. MCP выносит эту боль в отдельный сервер: обновили один раз, все агенты подхватили.
Кстати, лекция не упоминает CLI как альтернативу. А зря — для одиночного разработчика обёрнутый CLI-инструмент часто проще и MCP-сервера, и самописного тула.
Подробнее:
- про Google Workspace CLI,
- репо @evilfreelancer для превращения OpenAPI в CLI.
Используете MCP или хватает обычных тулов/скиллов?
----
Поляков считает — AI, код и кейсы
