Если вы читали предыдущие посты этой серии — эволюция JSON Schema, Function Calling и MCP, Structured Output на практике, поток JSON-данных в цепочке вызовов Agent — один паттерн выделяется: и у вендора модели, и на уровне протокола, когда речь о «какой форме данных обмениваться», ответ почти всегда JSON Schema (или подмножество).
Отсюда естественный вопрос: станет ли JSON Schema «Contract» по умолчанию для AI Agents — языком handshake между командами, IDE и облачными вендорами, как OpenAPI для REST или Protobuf для gRPC?
Отталкиваясь от того, что «Contract» реально означает, эта статья описывает adoption в 2026, оставшиеся пробелы и инженерные решения. Спойлер: JSON Schema уже de facto стандарт для границ I/O Agent, но не единственный слой контракта — транспорт, auth и оркестрация остаются за MCP, OpenAPI и Agent SDKs.
Что «Contract» означает для Agents
В инженерии ПО контракт задаёт форму, семантику и обработку ошибок обмениваемых данных. AI Agents сложнее обычных API, потому что «вызывающая сторона» включает недетерминированную большую модель, которая может пропускать поля, выдумывать параметры или «уплывать» между естественным языком и structured output.
У стека Agent несколько слоёв контракта; JSON Schema в основном покрывает форму payload:
| Слой | Область контракта | Типичная технология |
|---|---|---|
| Model ↔ Host | Список инструментов, args tool_calls, structured replies | JSON Schema (parameters / response_format) |
| Host ↔ Tool provider | Обнаружение инструментов, вызов, результаты | MCP (inputSchema — JSON Schema), OpenAPI wrappers |
| Host ↔ Business systems | Заказы, тикеты, согласования | JSON Schema + доменная валидация |
| Agent ↔ Agent | Делегирование задач, multi-Agent collaboration | Новые протоколы (A2A и др.) + Schema для тел сообщений |
| Transport & auth | Кто что может вызывать, поток credentials | OAuth, mTLS, MCP capability negotiation (не задача Schema) |
Фраза «JSON Schema становится стандартным Contract» на практике означает: где модели и программы — или программы и инструменты — обмениваются structured JSON, JSON Schema — описание по умолчанию. Как подключаться и кто авторизован — слой выше.
Три фронта, где JSON Schema уже доминирует
1. Параметры Tool / Function Calling
Tools API OpenAI, Google Gemini и Anthropic Claude используют JSON Schema для parameters (или эквивалента). Модель читает description для семантики; Host валидирует arguments тем же Schema перед выполнением — как в цепочке из статьи о потоке данных.
{
"name": "create_ticket",
"description": "Create a record in the ticketing system",
"parameters": {
"type": "object",
"properties": {
"title": { "type": "string", "description": "Ticket title" },
"priority": { "type": "string", "enum": ["low", "medium", "high"] }
},
"required": ["title"],
"additionalProperties": false
}
}
2. Structured Output (финальный ответ модели)
Когда бизнесу нужен JSON вместо естественного языка, режимы Structured Output / JSON Schema вендоров ограничивают токены на этапе декодирования. См. гайд Structured Output; для Gemini — туториал structured JSON.
3. MCP Tool inputSchema
Спецификация MCP требует, чтобы каждый Tool открывал inputSchema как JSON Schema. Когда Cursor, Claude Desktop и другие Hosts мапят MCP tools в Function Calling модели, Schema часто пробрасывается или слегка урезается до подмножества — основа «написал Schema один раз — переиспользуй в IDE и облачных моделях».
Эти три фронта покрывают почти все structured JSON границы в жизненном цикле Agent — ключевое доказательство тезиса «стандартный Contract».
Альтернативы и конкуренты
| Подход | Сильные стороны | Роль в Agent stacks |
|---|---|---|
| OpenAPI 3.x | Полное HTTP-описание, зрелая экосистема, codegen | Описывает REST backends; Agents потребляют через MCP/OpenAPI-to-tools адаптеры, не сырой OpenAPI в модели |
| Protobuf / gRPC | Строгая типизация, производительность, multi-language stubs | Внутренний microservice RPC; на стороне LLM всё равно нужны JSON views или JSON Schema bridges |
| TypeScript + Zod / Pydantic | Отличный DX, единство с типами кода | Runtime validation на Host; часто экспорт в Agent contracts через zod-to-json-schema |
| Prompt-only templates | Ноль deps, быстрые прототипы | Не versionable и не fail-fast; в продакшен Agents редко одни |
| Vendor-private DSLs | Могут оптимизировать под модель | Высокая стоимость миграции; тренд 2024–2026 сходится к JSON Schema subsets |
Ключевой вывод: ни один формат оптимально не обслуживает и «model-readable», и high-performance RPC. JSON Schema побеждает на связке model ↔ program; OpenAPI и Protobuf держат свои домены и соединяются через conversion layers.
Почему JSON Schema побеждает
- Согласован с распределением LLM training: JSON изобилует в pretraining; Schema
type,enumиdescriptionработают как мягкие type hints. - Читаем человеком и машиной: PM, backend и prompt engineers могут ревьюить один Schema — лучше для collaboration, чем бинарный Protobuf.
- Зрелая validation ecosystem: ajv, jsonschema (Python), cloud API built-ins — всё равно рекомендуем second-pass validation после Structured Output для семантики.
- Vendor convergence: в 2023 были custom tool formats; 2024–2026 mainstream API docs стандартизируют JSON Schema subsets для parameters и responses.
- «Downward compatibility» MCP и OpenAPI: MCP выбрал JSON Schema вместо нового DSL; Schema components OpenAPI 3 переиспользуются напрямую.
Что ещё не унифицировано
«De facto standard» ≠ «fully unified». Продакшен Agents всё ещё сталкиваются с:
- Schema dialects: OpenAI
strict: trueстрог кadditionalPropertiesи полномуrequired; Gemini и Anthropic по-разному поддерживают unions, глубину$refи т.д. Тестируйте сложный Schema против целевых API. - Draft versions: draft-07, 2019-09, 2020-12 сосуществуют;
$defsvsdefinitionsломает codegen tools. - Syntax vs semantics: Schema гарантирует «priority есть и string», но не «priority=high соответствует SLA policy» — business rules нужны в коде или extensions вроде JSON Logic.
- Non-JSON payloads: images, audio, file URIs — Schema оборачивает metadata, не blob storage contracts.
- Orchestration and state: multi-step Agents, human-in-the-loop, sub-Agent delegation — JSON Schema не описывает state machines; у LangGraph, Temporal и др. свои DSLs.
Ожидать «один Schema правит всем Agent stack» нереалистично; ожидать «все structured JSON границы по умолчанию на Schema» — уже в большей части правда.
Сигналы экосистемы 2026
| Сигнал | Значение |
|---|---|
| MCP Server explosion + registries | Авторы tools массово публикуют inputSchema — Schema становится shareable «визитками» инструментов |
| Cloud Structured Output GA | «JSON format в prompt» уступает API-level Schema constraints |
| Agent SDK Schema registries | LangChain, Vercel AI SDK и др. экспортируют tools + response schema из Zod/Pydantic |
| Enterprise Schema governance | Крупные команды относятся к Agent tool Schema как к OpenAPI — Git, CI validation, change review |
| A2A / multi-Agent protocols emerging | Envelopes задаёт протокол; payloads по-прежнему JSON + Schema |
Если оцениваете tech debt: инвестиции в JSON Schema skills и tooling сейчас безопаснее, чем наращивать prompts на private JSON formats — даже будущий «Agent Schema 2027» profile скорее будет JSON Schema superset или subset, а не новым языком.
Станет ли «единственным» стандартом?
Ответ на двух уровнях:
Да (высокая уверенность) — как Contract по умолчанию для structured I/O Agent: tool parameters, Structured Output, MCP inputSchema, OpenAPI request/response bodies. Новые tools и model APIs без JSON Schema descriptions кажутся неполными.
Нет (не менее важно) — как единственный full-stack Agent contract: transport (stdio/SSE/HTTP), auth, tool discovery, multi-Agent orchestration, SLA и quotas остаются у MCP, OpenAPI и platform policy. JSON Schema — «type layer», не «network» или «governance» layer.
┌──────────────────────────────────────────────────┐
│ Governance / auth / audit (OAuth, RBAC, logs) │
├──────────────────────────────────────────────────┤
│ Orchestration / state (Agent frameworks, flows) │
├──────────────────────────────────────────────────┤
│ Connection / discovery (MCP, OpenAPI, gRPC GW) │
├──────────────────────────────────────────────────┤
│ ★ JSON Schema: tool args · output · payloads ★ │
├──────────────────────────────────────────────────┤
│ Executors (HTTP, DB, files, browser automation) │
└──────────────────────────────────────────────────┘
Практические рекомендации
- Single Schema source: определяйте domain models в Pydantic / Zod, генерируйте JSON Schema для OpenAI, MCP и docs — избегайте трёх расходящихся определений.
- Subset per target API: держите «compatible Schema» для OpenAI strict, Gemini и т.д., или CI-detect unsupported keywords.
- Treat description as Prompt:
descriptionвлияет на промахи; ревьюите как naming полей. - Structured Output + server re-validation: decoding снижает syntax errors; business rules — тот же Schema + custom validators.
- Version and changelog: изменение Schema = breaking API change; pin Schema versions или сохраняйте backward compatibility.
- Validate locally first: JSON Toolbox для schema syntax и sample payloads перед интеграцией.
FAQ
Как JSON Schema и OpenAPI связаны в Agent stacks?
OpenAPI описывает полные HTTP REST contracts (paths, methods, auth); JSON Schema часто входит как OpenAPI components для request/response bodies. Agent Tool Calling и MCP потребляют JSON Schema subsets напрямую; REST services по-прежнему на OpenAPI и могут быть exposed Agents через MCP Servers или adapters.
Vendor JSON Schema support одинаков?
Нет. OpenAI strict mode, Gemini responseJsonSchema, Anthropic и др. поддерживают JSON Schema subsets с разной поддержкой $ref, oneOf, additionalProperties и т.д. Тестируйте compatibility против target API и избегайте слишком сложных schemas в production.
Может ли TypeScript / Zod заменить JSON Schema?
Внутри TypeScript host Zod лучше для runtime validation и type inference; model APIs и MCP всё равно требуют JSON Schema (или auto-converted subsets). Типичный паттерн: Zod → JSON Schema code generation — один schema source для types и Agent contracts.
Может ли JSON Schema описать multi-Agent collaboration?
JSON Schema отлично для single-message или tool-call data shapes, но не для multi-Agent orchestration, session state machines или transport. Протоколы A2A и MCP определяют discovery, auth и message envelopes выше Schema; Schema ограничивает payload shape.
Могут ли Agents работать без JSON Schema?
Да — небольшие scripts и prototypes могут на prompt-only JSON formats. Без verifiable contracts parse failures, field drift и hallucinated parameters усиливаются at scale. Structured Output и tool parameters теперь по умолчанию через Schema.
Как валидировать Agent JSON Schema?
Используйте JSON Toolbox в браузере для локальной проверки schema syntax и sample tool arguments или model output — ничего не загружается.
Итог и следующие шаги
JSON Schema становится стандартным Contract для structured I/O AI Agent — не прогноз, а колея, проложенная OpenAI, Google, Anthropic, MCP и mainstream Agent SDKs. Он не заменит весь OpenAPI или Protobuf, но для handshake model ↔ program альтернативам мало места.
Дальше: выберите реальный business path (например user intent → structured extraction → ticket API), ведите Structured Output и tool parameters из одного JSON Schema, валидируйте локально в JSON Toolbox, затем подключайте MCP. Рекомендуемый порядок серии: обзор эволюции → Structured Output → поток данных → эта статья (вердикт Contract).