← К журналу

Claude 2026: API, Tool Use, MCP, Structured Output и AI-агенты

AI-агенты & Claude API · 2026.08.18 · ~16 мин чтения

Claude API, Tool Use, MCP и Structured Output как стек агента

Многие команды читают 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.

На одну строку
Claude API — вход; Tool Use / MCP — исполнение (своё vs удалённое обнаружение); Structured Output — машинный контракт; агент — цикл и красные линии, которые пишете вы.

3. Ключевое сравнение (How Compare)

Пять слоёв Claude API: вход, исполнение, контекст, аудитория
Возможность Вход Исполнение Контекст Лучше всего для
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 vs MCP-коннектор
Измерение Свой 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 текста
Красная линия
Filesystem, прод-БД, платежи и исходящая почта по умолчанию вне схемы «обнаруженный MCP, все tools включены». Если MCP обязателен — allowlist + auth + audit logs; высокорисковые шаги подтверждайте человеком.

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.
  • Копипаст strict в каждую MCP client schema → убирайте API-only поля на generic MCP каналах.

7. Семь шагов внедрения

  1. Инвентаризация side effects: read-запросы, внутренние writes, триггеры CI, прод. Одна таблица tools на класс.
  2. Выкатить один свой tool: минимальный input_schema + strict: true; доказать tool_use → execute → tool_result.
  3. Разделить доставку человеку и машине: машинные контракты через Structured Output или отдельный parse call.
  4. Подключить read-only MCP: mcp_servers + allowlist; writes оставить своими.
  5. Обернуть цикл: max N steps, timeouts, token budget, отклонять необъявленные имена tools.
  6. Наблюдать: логировать имя tool, hash аргументов, latency, сбои schema — не только финальный assistant text.
  7. Закрепить тяжёлое исполнение: macOS jobs на cloud Mac / self-hosted runners; агент отдаёт job id, не shell ноутбука.
Эскиз: strict tool + structured final payload (секреты через env)
# 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

Могут ли Tool Use и MCP быть в одном запросе?
Да. Типичное деление: свой Tool Use для writes и MCP toolset для reads. Оба попадают в список tools — важны префиксы имён и allowlist, чтобы модель случайно не выбрала write tool.
Заменяет ли Structured Output strict tools?
Нет. Structured Output ограничивает JSON-текст ассистента; strict — имя и input tool_use. Если функция будет исполняться, нужна schema tool — а не надежда, что валидные args появятся в прозе.
Нужен ли ещё beta header?
Смотрите актуальную документацию Anthropic: structured outputs переехали на output_config.format, со transition для старого параметра. Новые интеграции не должны зависеть от beta header structured-outputs. Нужен ли MCP-коннектору anthropic-beta — проверьте страницу коннектора перед релизом.
Какой max_tokens в цикле агента?
Размер под один шаг tool call, а не «максимум модели на всякий случай». steps × max_tokens — это счёт. Когда контекст раздувается, суммируйте tool_result вместо бесконечного роста окна.
Чем это отличается от MCP-статьи на этом сайте?
Та статья — что такое протокол и почему держится аналогия с USB. Эта — как собрать MCP-коннектор Messages с Tool Use, Structured Output и управляемым циклом агента, с разбивкой по сценариям.
Зачем build-агенту cloud Mac?
codesign и xcodebuild требуют нативного macOS. Агент описывает шаги; исполнению нужен узел с SSH 24/7. Cloud Mac mini держит низкое idle-потребление и воспроизводимое окружение — signing certs и ночные сборки не привязаны к ноутбуку.

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 — ценный узел исполнениясмотреть тарифы и дать циклу завершиться удалённо в рамках бюджета.

Hashvps · Mac Cloud

Агенту нужен стабильный узел исполнения

Cloud Mac mini M4, нативный macOS и SSH — MCP-инструменты и xcodebuild на одном воспроизводимом хосте.

На главную
Акция