JSON Schema 会成为 AI Agent 的标准 Contract 吗?

从 Tool Calling、Structured Output 到 MCP inputSchema,JSON Schema 正出现在 Agent 栈的每一层。本文判断它能否成为跨厂商的统一契约,以及 OpenAPI、Protobuf 等方案各自守住的边界。

如果你读过本系列前几篇——JSON Schema、Function Calling 与 MCP 的技术演进、Structured Output 落地指南、Agent 调用链上的 JSON 数据流——会发现一个共同点:无论模型厂商、无论协议层,描述「该传什么形状的数据」时,几乎都在用 JSON Schema(或其子集)。

于是一个自然的问题浮出水面:JSON Schema 会不会成为 AI Agent 的「标准 Contract」——就像 OpenAPI 之于 REST、Protobuf 之于 gRPC 那样,成为跨团队、跨 IDE、跨云厂商的默认握手语言?

本文从「Contract 到底指什么」出发,梳理 2026 年生态里的采纳现状、仍存在的裂缝,以及工程上该如何选型。结论先行:JSON Schema 已是 Agent I/O 边界的事实标准,但不会是唯一一层契约——传输、鉴权、编排仍由 MCP、OpenAPI、各 Agent SDK 承担。

Agent 里的「Contract」指什么

在软件工程里,Contract(契约)约定双方交换数据的形状、语义与错误处理方式。AI Agent 比普通 API 更复杂,因为「调用方」里多了一个非确定性的大模型——它可能漏字段、编参数、或在自然语言与结构化输出之间摇摆。

因此 Agent 栈里其实有多层契约,JSON Schema 主要落在payload 形状这一层:

层级契约内容典型技术
模型 ↔ Host工具列表、tool_calls 参数、结构化回复JSON Schema(parameters / response_format)
Host ↔ 工具提供者工具发现、调用、结果回传MCP(inputSchema 为 JSON Schema)、OpenAPI 包装
Host ↔ 业务系统订单、工单、审批等领域对象JSON Schema + 领域校验规则
Agent ↔ Agent任务委派、多 Agent 协作新兴协议(A2A 等)+ Schema 描述消息体
传输与鉴权谁可以调什么、凭证如何传递OAuth、mTLS、MCP 能力协商(非 Schema 职责)

说「JSON Schema 成为标准 Contract」,在实践里通常指:凡是模型与程序之间、程序与工具之间要交换结构化 JSON 的地方,默认用 JSON Schema 描述。传输怎么连、谁有权限调——那是上一层协议的事。

JSON Schema 已占据的三条战线

1. Tool / Function Calling 参数

OpenAI、Google Gemini、Anthropic Claude 的 Tools API 均用 JSON Schema 描述 parameters(或等价字段)。模型读 description 理解语义,宿主用同一 Schema 校验 arguments 再执行——这与我们在数据流一文里拆解的链路一致。

{
  "name": "create_ticket",
  "description": "在工单系统创建一条记录",
  "parameters": {
    "type": "object",
    "properties": {
      "title": { "type": "string", "description": "工单标题" },
      "priority": { "type": "string", "enum": ["low", "medium", "high"] }
    },
    "required": ["title"],
    "additionalProperties": false
  }
}

2. Structured Output(模型最终回复)

当业务不要自然语言、只要 JSON 时,各厂商的 Structured Output / JSON Schema 模式在解码阶段约束 token,使输出符合 Schema。详见Structured Output 指南;Gemini 侧可参考Gemini 结构化 JSON 教程。

3. MCP Tool 的 inputSchema

MCP 规范明确要求每个 Tool 提供 inputSchema,类型即 JSON Schema。Cursor、Claude Desktop 等 Host 把 MCP 工具映射为模型 API 的 Function Calling 格式时,Schema 往往原样透传或做轻微子集裁剪——这是「写一次 Schema,IDE 与云端模型共用」的基础。

三条战线覆盖 Agent 生命周期里几乎所有结构化 JSON 边界,这也是「标准 Contract」论点的核心证据。

竞品与替代方案

方案优势在 Agent 栈中的位置
OpenAPI 3.xHTTP 全栈描述、生态成熟、代码生成描述 REST 后端;Agent 通过 MCP/OpenAPI-to-tools 适配器消费,而非模型直接读 OpenAPI
Protobuf / gRPC强类型、高性能、多语言 stub微服务内部 RPC;LLM 侧仍需 JSON 视图或 JSON Schema 桥接
TypeScript + Zod / Pydantic开发者体验好、与代码类型一体宿主运行时校验;常通过 zod-to-json-schema 等生成 Agent 契约
纯 Prompt 模板零依赖、原型快不可版本化、不可 fail-fast,生产 Agent 已很少单独依赖
厂商私有 DSL可针对自家模型优化跨厂商迁移成本高,2024–2026 趋势是收敛到 JSON Schema 子集

关键洞察:没有一种格式能同时最优地服务「模型可读」与「高性能 RPC」。JSON Schema 赢的是「模型 ↔ 程序」这一环;OpenAPI 与 Protobuf 继续在各自领地存活,并通过转换层与 Agent 对接。

为何 JSON Schema 在赢

  1. 与 LLM 训练分布对齐:JSON 在预训练语料中海量存在,Schema 的 type、enum、description 可被模型当作「软类型提示」。
  2. 人类与机器双可读:产品、后端、Prompt 工程师能同读一份 Schema,比二进制 Protobuf 更适合协作与 Code Review。
  3. 校验生态现成:ajv、jsonschema(Python)、各云 API 内置校验——Structured Output 之后仍建议二次校验语义与业务规则。
  4. 厂商收敛:2023 各家用自定义 tool 格式;2024–2026 主流 API 文档均以 JSON Schema 子集为 parameters / response 的规范表述。
  5. MCP 与 OpenAPI 的「向下兼容」:MCP 选用 JSON Schema 而非发明新 DSL,降低工具作者学习成本;OpenAPI 3 的 Schema 组件可直接复用。

尚未统一的部分

「事实标准」不等于「完全统一」。生产 Agent 仍需处理以下裂缝:

  • Schema 方言:OpenAI strict: true 对 additionalProperties、required 全量覆盖要求严;Gemini、Anthropic 支持的组合类型、$ref 深度各异。复杂 Schema 需按目标 API 做兼容性测试。
  • Draft 版本:生态仍混用 draft-07、2019-09、2020-12;$defs vs definitions 等差异会导致生成工具踩坑。
  • 语义 vs 语法:Schema 保证「有 priority 字段且为 string」,不保证「priority=high 是否符合 SLA 政策」——业务规则仍需代码或 JSON Logic 等扩展。
  • 非 JSON 载荷:图片、音频、文件 URI 等多模态 Tool 结果,Schema 只描述元数据包装,不替代 Blob 存储契约。
  • 编排与状态:多步 Agent、Human-in-the-loop、子 Agent 委派——JSON Schema 不描述状态机,LangGraph、Temporal 等另有一套 DSL。

这些限制说明:期待「一份 Schema 统治 Agent 全栈」不现实;期待「所有结构化 JSON 边界默认 Schema 化」则已基本成立。

2026 生态信号

信号含义
MCP Server 数量爆发 + registry 出现工具作者批量产出 inputSchema,Schema 成为可分享、可索引的「工具名片」
各云 Structured Output GA「Prompt 里写 JSON 格式」让位于 API 级 Schema 约束
Agent SDK 内置 Schema registryLangChain、Vercel AI SDK 等支持从 Zod/Pydantic 一键导出 tools + response schema
企业 Schema 治理大型团队把 Agent 工具 Schema 纳入 Git、CI 校验,与 OpenAPI 变更同等对待
A2A / 多 Agent 协议萌芽消息信封用协议定义,payload 仍倾向 JSON + Schema

若你正在评估技术债:现在投资 JSON Schema 技能与工具链,比在私有 JSON 格式上继续堆 Prompt 更安全——即便未来出现「Agent Schema 2027」之类的 profile,也大概率是 JSON Schema 的超集或子集 profile,而非全新语言。

会成为「唯一」标准吗?

分两层回答:

会(高置信)——作为 Agent结构化 I/O的默认 Contract:Tool 参数、Structured Output、MCP inputSchema、OpenAPI 组件中的 request/response body。新工具、新模型 API 若不提供 JSON Schema 描述,反而显得「不完整」。

不会(同样重要)——作为 Agent全栈唯一契约:传输(stdio/SSE/HTTP)、鉴权、工具发现、多 Agent 编排、SLA 与配额,仍由 MCP、OpenAPI、各平台策略覆盖。JSON Schema 是栈中的「类型层」,不是「网络层」或「治理层」。

┌──────────────────────────────────────────────────┐
│  治理 / 鉴权 / 审计(OAuth, RBAC, 日志)           │
├──────────────────────────────────────────────────┤
│  编排 / 状态(Agent 框架, 工作流引擎)             │
├──────────────────────────────────────────────────┤
│  连接 / 发现(MCP, OpenAPI, gRPC 网关)            │
├──────────────────────────────────────────────────┤
│  ★ JSON Schema:工具参数 · 结构化输出 · 消息体 ★  │
├──────────────────────────────────────────────────┤
│  执行体(HTTP, DB, 文件, 浏览器自动化…)            │
└──────────────────────────────────────────────────┘

落地建议

  • 单一 Schema 源:用 Pydantic / Zod 定义领域模型,生成 JSON Schema 供 OpenAI、MCP、文档共用,避免三份定义漂移。
  • 按目标 API 做子集:为 OpenAI strict、Gemini 各维护一份「兼容 Schema」或通过 CI 自动检测不支持的关键字。
  • description 当 Prompt 写:description 直接影响模型是否误调用;与字段命名一样值得 Review。
  • Structured Output + 服务端二次校验:解码约束降低语法错误,业务规则仍用同一 Schema + 自定义 validator。
  • 版本化与变更日志:Schema 变更 = API 破坏性变更;Agent 客户端应 pin Schema 版本或做向后兼容。
  • 本地先验:上线前用 JSON 工具箱校验 Schema 语法与样例 payload,减少联调轮次。

常见问题 FAQ

JSON Schema 和 OpenAPI 在 Agent 里是什么关系?

OpenAPI 描述 HTTP REST 服务的完整契约(路径、方法、鉴权);JSON Schema 常作为 OpenAPI 组件描述 request/response body。Agent 侧 Tool Calling 与 MCP 更直接消费 JSON Schema 子集;REST 服务仍用 OpenAPI,可通过 MCP Server 或适配层把 OpenAPI 映射为 Agent 工具。

各厂商支持的 JSON Schema 完全一样吗?

不完全一样。OpenAI strict mode、Gemini responseJsonSchema、Anthropic 等均支持 JSON Schema 子集,对 $ref、oneOf、additionalProperties 等特性支持程度不同。生产环境应针对目标 API 做兼容性测试,并避免过于复杂的 Schema。

能用 TypeScript / Zod 代替 JSON Schema 吗?

在纯 TypeScript 宿主内,Zod 等库更适合运行时校验与类型推导;但模型 API 与 MCP 协议层仍要求 JSON Schema(或可自动转换的子集)。常见做法是 Zod → JSON Schema 代码生成,单一 Schema 源驱动类型与 Agent 契约。

JSON Schema 能描述 Agent 之间的协作协议吗?

JSON Schema 擅长描述单次消息或工具调用的数据结构,不擅长描述多 Agent 编排、会话状态机或传输层。A2A、MCP 等协议在 Schema 之上定义发现、鉴权与消息信封;Schema 是 payload 层的形状约束。

没有 JSON Schema 的 Agent 还能用吗?

可以,小脚本或原型仍可用 Prompt 约定 JSON 格式。但缺少可校验契约时,解析失败、字段漂移与幻觉参数会在规模化时放大。Structured Output 与 Tool parameters 几乎都已默认走 Schema。

如何验证 Agent 用的 JSON Schema?

在 JSON 工具箱浏览器端本地校验 Schema 语法,并用样例 tool arguments 或模型输出做结构匹配,数据不上传服务器。

总结与下一步

JSON Schema 正在成为 AI Agent 结构化 I/O 的标准 Contract——不是理论预测,而是 OpenAI、Google、Anthropic、MCP 与主流 Agent SDK 共同铺就的事实轨道。它不会取代 OpenAPI 或 Protobuf 的全部职能,但在「模型与程序握手」这一环,替代方案的空间已急剧缩小。

下一步:选一条真实业务链路(例如「用户意图 → 结构化抽取 → 调工单 API」),用一份 JSON Schema 同时驱动 Structured Output 与 Tool parameters,并在 JSON 工具箱本地验通后再接入 MCP。系列阅读建议按演进顺序:技术演进总览 → Structured Output → 数据流 → 本文(Contract 判断)。