Многие команды читают changelog Claude 2026 как пресс-релиз «модель стала умнее»: Messages API, Tool Use, MCP, Structured Output, циклы агента — названий больше, код тот же: один messages.create, куда впихивают prompt, tools и надежду, что появится JSON. В проде ломается редко качество текста. Чаще — аргументы tools не попадают в schema, слишком широкая поверхность прав MCP и JSON, выдранный regex'ом. Вопрос ниже: это пять возможностей одного слоя? Асимметричный вывод: водораздел — ограничения schema и границы исполнения, а не имя модели.
Для разработчиков, которые подключают Claude в прод: разложить Claude API, Tool Use, MCP-коннектор, Structured Outputs и цикл агента по входу / исполнению / контексту, а затем решить, когда держать свои tools, когда цеплять удалённый MCP и когда strict обязателен. Основы протокола: что такое MCP (аналогия с USB). Слои в IDE: Claude Skills vs Cursor Rules. Эта страница — только о том, как API-сторона превращается в управляемого агента.
1. Почему длинный список фич делает прод хрупче
С конца 2025 по 2026 Anthropic вынес на основной путь Messages «вызов tools», «подключение MCP» и «выдачу JSON Schema»: output_config.format заменил beta-параметр output_format; у tools можно задать strict: true, чтобы grammar-constrained sampling держал аргументы валидными; удалённый MCP едет в том же запросе через mcp_servers и type: "mcp_toolset". Документация ясная. В инженерии всё ещё схлопывают три роли в одну:
- Человекочитаемый текст и машинный JSON в одном blob без schema;
- Локальные скрипты, SaaS и MCP-tools с правами записи в одном плоском массиве
tools, из которого модель выбирает; - «Агент» как «повторить тот же user turn 20 раз» без max steps и без аудита
tool_use.
Демо работают; тикеты забиваются JSONDecodeError, неверными enum и MCP-серверами, которым доверяют как универсальному shell. У Claude API не «не хватает фич». Вход, исполнение и контекст так и не разделили. Если агенту нужен xcodebuild, исполнение ложится на реальное Mac-железо — та же ops-задача, что и у самостоятельного macOS runner для GitHub Actions, а не проблема промптинга.
2. Что такое каждый слой (What)
2.1 Claude API — вход в диалог, не продукт-агент
Claude API (Messages) — это вход, который связывает модель, сообщения, system prompt, cache и биллинг с вашей системой. Она не исполняет tools за вас и не гарантирует json.loads. Chat completion — нормальный сценарий. Как только downstream пишет в БД, открывает тикет или дёргает CI, накладываются следующие слои. Сначала спросите: этот вызов потребляет человек или парсер?
2.2 Tool Use — плоскость исполнения, которой вы владеете
Tool Use даёт модели эмитить блоки tool_use; ваш сервер их выполняет и возвращает tool_result. Для реализаций под вашим контролем: инвентарь, тикеты, скрипты репозитория. В проде 2026 включайте strict tool use в определении: strict: true и input_schema идут через тот же grammar pipeline, что и structured outputs — меньше падений вида «строка 2 вместо числа». Цена: schema должна укладываться в поддерживаемое Anthropic подмножество JSON Schema.
2.3 MCP-коннектор — удалённая плоскость tools, не ещё один SDK
MCP-коннектор Messages объявляет удалённые серверы (URL, OAuth) и mcp_toolset для включения всех tools, allowlist или denylist. Он решает обнаружение и транспорт: не нужно вручную писать Anthropic tool JSON для каждого SaaS. Это не автоматическая безопасность — filesystem или shell MCP всё равно требуют gateway или allowlist. «Зачем USB» в протоколе и «как повесить сервер на API» на этой странице дополняют друг друга, это не дубликаты.
2.4 Structured Output — контекст для парсеров, не голос для читателей
Structured Output через output_config.format с json_schema заставляет текстовый блок модели быть валидным JSON. Для извлечения полей, объектов отчётов, контрактов для следующего сервиса. Ортогонально Tool Use: только JSON, только strict tools или оба. Не заменяет вызовы tools — красивый JSON сам HTTP не отправит.
2.5 AI-агент — политика цикла, не пятый API-продукт
AI-агент здесь: модель выбирает tool → вы исполняете → результаты возвращаются → до stop. Условия остановки — ваши: max раундов, запрещённые имена tools, бюджет, подтверждение человеком. Цикл может быть только Tool Use или смешанным с MCP. Structured Output подходит для финальной передачи. «Полный автомат» без потолка цикла — это неограниченный retry.
3. Ключевое сравнение (How Compare)
| Возможность | Вход | Исполнение | Контекст | Лучше всего для |
|---|---|---|---|---|
| Claude API | Messages / SDK messages.create |
Текст и мультимодальность; без внешних side effects | messages + system + cache blocks | Чат, черновики, сводки для людей |
| Tool Use | tools[] владельца запроса |
Ваш backend выполняет функции; опционально strict: true |
schema tool + round-trip tool_result | Команды с внутренними API и аудитом на вызов |
| MCP-коннектор | mcp_servers + mcp_toolset |
Удалённые MCP-tools; multi-server, OAuth | Обнаруженные списки tools, которые нужно обрезать | Интеграторы, которым нужен готовый MCP без ручного JSON |
| Structured Output | output_config.format = json_schema |
Не запускает tools; гарантирует parseable JSON-текст | Schema входит в ограничения sampling | ETL, поля тикетов, типизированные downstream-сервисы |
| Цикл AI-агента | Ваш оркестратор (while / queue / workflow) | Повтор Tool Use или MCP до stop | Накопленный tool_result; следите за раздуванием окна | Многошаговые изменения состояния с явным бюджетом |
| Измерение | Свой Tool Use Вы пишете функцию | MCP-коннектор Удалённое обнаружение |
|---|---|---|
| Владение | Реализация, логи, rate limits — в вашем репо | Семантика tools принадлежит MCP-серверу |
| Скорость изменений | Изменения schema едут вместе с агентом | Новые server tools появляются при discovery — allowlist |
| Strict args | Официальный strict чисто стыкуется с вашей schema | Не впихивайте API-only поля в generic MCP client schemas |
| Где уместно | Критичные write paths, compliance-аудит | Read-only SaaS, стандартизированный retrieval, «буфеты» tools |
4. Как выбирать (Decision)
Сначала зафиксируйте потребителя и side effects, потом выбирайте слои. Матрица делится по тому, меняете ли вы внешнее состояние.
| Сценарий | Предпочесть | Избегать |
|---|---|---|
| Еженедельная сводка для ops | Claude API, простой текст | JSON Schema «чтобы выглядело продвинуто» |
| Извлечь поля письма в CRM | Structured Output + серверная валидация | Фейковые «extraction tools», которые никогда не пишут |
| Создать Jira / закрыть алерты | Свой Tool Use + strict: true + idempotency keys |
Свалить write-capable MCP pack в один запрос |
| Доки / календарь read-only | MCP-коннектор + allowlist tools | Включить все tools «на всякий случай» |
| Многошаговый фикс репо + тесты | Цикл агента + свои git/test tools + max steps | Небounded while-true; ночной xcodebuild на ноутбуке |
| Финальный контракт для downstream API | Structured Output на последнем turn (или отдельный parse call) | Regex-добыча JSON из смешанного tool_use текста |
5. Рекомендуемые стеки
Складывайте возможности. Не ищите одно имя продукта.
- Личные скрипты / внутренние боты: Claude API + 2–5 своих tools + strict. MCP — когда surface секретов того стоит.
- Растущий SaaS support agent: свои write tools (тикеты) + read-only MCP knowledge + Structured Output в конце для QA.
- Платформа / несколько команд: MCP gateway для auth и rate limits; оркестратор для шагов и бюджета; billing writes остаются на своём Tool Use.
- macOS / iOS build agent: наружу только «поставить job в очередь на именованный runner»; настоящий
xcodebuild— на стабильном cloud Mac, не ad-hoc SSH от модели.
Против IDE Skills: API-агент владеет циклами с системными side effects; Claude Code Skills — dev SOP внутри репо. Оба могут упоминать MCP; не делите одну таблицу credentials для write access.
6. Ловушки
«MCP значит, Tool Use можно выкинуть»→ write paths, compliance и idempotency остаются своими и аудируемыми.«Structured Output — это агент»→ он только ограничивает текстовый JSON; side effects не выполняет.«strict работает на любой вложенный JSON Schema»→ держитесь документированного подмножества; глубокий oneOf / динамические ключи падают.Считать legacy beta→ только переходная совместимость; новый код —output_formatиoutput_configдвумя продуктамиoutput_config.format.«Сильным моделям max steps не нужен»→ шаги — это деньги и blast radius, не IQ.Копипаст→ убирайте API-only поля на generic MCP каналах.strictв каждую MCP client schema
7. Семь шагов внедрения
- Инвентаризация side effects: read-запросы, внутренние writes, триггеры CI, прод. Одна таблица tools на класс.
- Выкатить один свой tool: минимальный
input_schema+strict: true; доказать tool_use → execute → tool_result. - Разделить доставку человеку и машине: машинные контракты через Structured Output или отдельный parse call.
- Подключить read-only MCP:
mcp_servers+ allowlist; writes оставить своими. - Обернуть цикл: max N steps, timeouts, token budget, отклонять необъявленные имена tools.
- Наблюдать: логировать имя tool, hash аргументов, latency, сбои schema — не только финальный assistant text.
- Закрепить тяжёлое исполнение: macOS jobs на cloud Mac / self-hosted runners; агент отдаёт job id, не shell ноутбука.
# Pseudocode — use the official SDK in production
POST /v1/messages
{
"model": "claude-opus-4-6",
"max_tokens": 2048,
"tools": [{
"name": "create_ticket",
"strict": true,
"input_schema": {
"type": "object",
"properties": {
"title": {"type": "string"},
"severity": {"type": "string", "enum": ["low","high"]}
},
"required": ["title","severity"],
"additionalProperties": false
}
}],
"output_config": {
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"ticket_id": {"type": "string"},
"next_action": {"type": "string"}
},
"required": ["ticket_id","next_action"],
"additionalProperties": false
}
}
},
"messages": [{"role": "user", "content": "Open a high-severity ticket: build timed out"}]
}
Закрепите model ID в консоли и в обзоре Tool Use. Перед продом убедитесь, что output_config и strict больше не зависят от остаточных beta headers в вашей версии SDK.
8. Заключение
Claude API отвечает, как модель входит в систему. Tool Use — за своё исполнение и гарантированные аргументы. MCP — за удалённое обнаружение и обрезку. Structured Output — за контракт парсера. AI-агент — за то, когда цикл останавливается и насколько велик blast radius. Это не пять параллельных заголовков «новая фича». Это один вход, две плоскости исполнения, один формат доставки и оркестрация, которую пишете вы. Сначала проведите границы side effects; затем включайте MCP и цикл, чтобы демо пережили прод.
Дальше: Structured outputs · Strict tool use · MCP-коннектор · Введение в протокол MCP
FAQ
Tools бесполезны, если сборке негде крутиться
Claude Tool Use и MCP превращают намерение в вызовы. Настоящие xcodebuild, Fastlane и подпись всё равно идут на macOS. Hashvps cloud Mac mini M4 даёт SSH/VNC, выделенный IPv4 и воспроизводимое дерево Homebrew — read-only MCP по репо, write jobs на именованном runner, а не нестабильный shell ноутбука от модели.
Если вы встраиваете Claude API агента в iOS/macOS pipeline, cloud Mac Hashvps — ценный узел исполнения — смотреть тарифы и дать циклу завершиться удалённо в рамках бюджета.