En 2023, los complementos de ChatGPT le dieron al mundo un primer vistazo a los modelos que llaman a API. En 2024, las llamadas a funciones se convirtieron en estándar entre los proveedores. En 2025, Anthropic lanzó MCP y los IDE como Cursor y Claude Desktop lo adoptaron; en el mismo arco, JSON evolucionó de un formato de intercambio de datos al formato del Agente.sistema de tiposyprotocolo de apretón de manos.
Si está creando canalizaciones RAG, flujos de trabajo de automatización o productos estilo Copilot, eventualmente encontrará tres términos:Esquema JSON(limitaciones estructurales),Llamada de función(el modelo elige herramientas y completa parámetros), yMCP(Protocolo de contexto modelo: conectividad de herramientas estandarizada). Este artículo está dirigido a desarrolladores de aplicaciones de backend, plataformas y IA. Explica por qué surgió cada capa, qué problema resuelve, cómo encajan y cómo elegir en la práctica.
Por qué los agentes necesitan interfaces estructuradas
El patrón central de las primeras aplicaciones LLM era: los usuarios hacían preguntas → el modelo generaba lenguaje natural → copiaban manualmente los resultados para su ejecución. Esto es suficiente para escenarios de chat, pero no puede impulsar de manera confiable la escritura de bases de datos, el envío de correos electrónicos, la verificación del inventario, etc.Repetible y auditabletareas automatizadas.
El modo ReAct (Reason + Act) en el proyecto Prompt puro permite que el modelo escriba "Acción: buscar (consulta =...)" en el texto, y el programa host utiliza un análisis regular; se puede ejecutar, pero es frágil: el anidamiento de corchetes, el escape de comillas y la mezcla de varios idiomas provocarán fallas en el análisis. Lo que requiere el entorno de producción esLegible por máquina, verificable y versionablecontrato en lugar de confiar en la suerte para analizar Markdown.
JSON cumple con tres requisitos: existe en grandes cantidades en los datos de capacitación de LLM, puede ser leído tanto por humanos como por programas, y tiene un ecosistema maduro de verificación de esquemas. Como resultado, JSON Schema se ha convertido en el estándar de facto para describir "qué forma de datos debe generar el modelo"; Las llamadas a funciones también incorporan "qué función llamar y qué parámetros pasar" en la misma estructura JSON.
Cronología de la evolución de la tecnología
| escenario | capacidad representativa | Puntos de dolor centrales | Solución |
|---|---|---|---|
| 2022-2023 temprano | Texto sin formato + plantilla de aviso | Salida de parámetros alucinatorios no analizables. | Formato de restricción de ejemplo de pocas tomas |
| 2023 mediados | Ideas de ReAct/Formador de herramientas | La acción de análisis regular es inestable | Bloque JSON acordado, aún confíe en el mensaje |
| Finales de 2023-2024 | Llamada a funciones OpenAI | Los formatos no son uniformes entre los fabricantes. | Parámetros de herramientas de nivel API, descripción del esquema JSON |
| 2024 | Salidas estructuradas | Es posible que al modelo todavía le falten campos | Decodificación de restricciones del lado del servidor, lo que obliga al cumplimiento del esquema |
| Finales de 2024-2025 | MCP (promovido por Anthropic y otros) | Integración N×M: cada IDE × cada herramienta | Host unificado ↔ Protocolo de servidor, herramientas conectables |
| 2025-2026 | Agente SDK + Ecosistema MCP | Permisos, auditoría, multiinquilino | OAuth, transporte stdio/SSE, descubrimiento de herramientas |
Los cambios esenciales en esta línea son:Traducir "lo que el modelo quiere hacer" del lenguaje natural a mensajes estructurados mecanografiados.y luego ejecutado de forma segura por el programa host o el servidor MCP.
Esquema JSON: "sistema de tipos" del agente
El esquema JSON se utilizó originalmente para la documentación de API y la verificación de la configuración (OpenAPI, Kubernetes CRD, etc.). En el escenario del Agente asume dos tipos de responsabilidades:
- Parámetros de entrada de herramienta: Description
search_productsrequiresquery(string) andlimit(integer, default 10) - Salida del modelo: Por ejemplo, al extraer entidades, etiquetas de clasificación, conclusiones de aprobación, etc., se deben devolver campos fijos para el consumo posterior.
Esquema de parámetros típicos de la herramienta
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name, e.g. Beijing or Shanghai"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Temperature unit"
}
},
"required": ["city"]
}The description field is particularly important: it enters the context of the model and helps the model understand when to call and what the semantics of each parameter are - Schema also servesvalidadoryInmediato.
Salidas estructuradas y esquema
Si solo se escribe el esquema en el mensaje, es posible que el modelo aún tenga campos adicionales o errores tipográficos. El modo Salidas estructuradas/JSON proporcionado por OpenAI, Google, etc. restringirá los tokens durante la etapa de decodificación para que la salida se ajuste estrictamente al esquema. Esto es una necesidad para el tipo de canalización "OCR de facturas → JSON estructurado → Sistema de contabilidad".
Sugerencias durante la etapa de desarrollo: primer uso de herramientas como JSON ToolboxSintaxis del esquema de verificación local, and then use the sample payload to verify whether required and enum intercept illegal input as expected.
Llamada de funciones: apretón de manos entre modelos y herramientas
La llamada a funciones (también llamada uso de herramientas, API de herramientas por varios proveedores) define la comunicación entre el modelo y el host.una ronda de apretones de manos:
- El host envía la lista de herramientas (nombre, descripción, esquema de parámetros) al modelo junto con mensajes
- The model does not directly execute the code, but returns
tool_calls: selected tool name + JSON parameter string - The host executes the real function (check DB, adjust HTTP), and stuff the result back into the conversation as
toolrole message - El modelo genera respuestas visibles para el usuario final en función de los resultados.
Comparación con el modo de texto ReAct
| Dimensiones | Reaccionar texto | Llamada de función |
|---|---|---|
| Formato de parámetro | Texto libre, necesita ser analizado. | JSON, campos nativos API |
| Múltiples herramientas en paralelo | Desastre | Admite múltiples llamadas a herramientas a la vez |
| Alineación de ajuste fino del modelo | débil | Capacitación de proveedores para el formato de herramientas. |
| Observabilidad | Necesita crear un registro usted mismo | Estructura de mensaje estándar, fácil de rastrear |
La llamada a funciones no elimina el marco del Agente (LangChain, AutoGen, Cursor Agent, etc.), sino que se convierte en la interfaz entre el marco y el modelo.capa de protocolo delgada——El marco es responsable de la orquestación, el reintento y la memoria; la API del modelo es responsable de "decidir a qué herramienta llamar".
MCP: ecosistema de herramientas conectables
Las llamadas a funciones resuelven el problema de "cómo declarar la llamada en el lado del modelo". Pero cuando el número de herramientas crece y las fuentes se dispersan (GitHub, Slack, Postgres, navegadores, sistemas de archivos), surgen nuevos problemas:
- Cada Host (IDE, cliente de Chat, Agente autoconstruido) debe escribir una adaptación para cada herramienta.
- Los permisos, las credenciales y los métodos de transporte stdio/HTTP son independientes entre sí.
- Los usuarios no pueden "instalar un servidor MCP y ponerlo a disposición en todas partes"
Protocolo de contexto modelo (MCP)Anthropic lo abrió a finales de 2024 y se posiciona como un protocolo estándar entre el host y el proveedor de herramientas. La relación de analogía es aproximadamente:
| analogía | era web | Era del agente |
|---|---|---|
| Descripción de la capacidad | Esquema OpenAPI/JSON | Definición de la herramienta MCP (incluido inputSchema) |
| Conexión en tiempo de ejecución | RESTO HTTP | Transporte MCP como stdio / SSE |
| cliente | Navegador, SDK | Host MCP (cursor, escritorio Claude…) |
| mercado de complementos | npm, extensión de Chrome | Registro del servidor MCP |
Conceptos básicos de MCP
- Anfitrión: La aplicación que inició la conexión (como Cursor IDE)
- Cliente: Cliente MCP en Host, manteniendo sesión con Servidor
- Servidor: Procesos que exponen herramientas, recursos y mensajes (como filesystem-mcp, github-mcp)
- Capacidades: La lista de herramientas se descubre dinámicamente en lugar de codificarse en el mensaje.
MCP Tool's inputSchema itself is JSON Schema. Therefore, MCP does not replace Function Calling, but standardizes "tool implementation"; Host may still use MCP toolscartografíaFormato de llamada de función para la API del modelo.
Cómo trabajan los tres juntos
Utilice una capa lógica para comprender la relación entre los tres:
┌─────────────────────────────────────────────┐
│ 用户 / 业务系统 │
└─────────────────────┬───────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ Agent Host(编排、权限、记忆) │
│ ┌─────────────┐ ┌─────────────────────┐ │
│ │ LLM API │◄──►│ Function Calling │ │
│ │ (推理) │ │ (tool_calls 消息) │ │
│ └─────────────┘ └─────────────────────┘ │
│ ▲ │ │
│ │ JSON Schema ▼ │
│ ┌────────┴────────┐ ┌──────────────────┐ │
│ │ 输出 Schema │ │ MCP Client │ │
│ │ (Structured │ │ ──stdio/SSE──► │ │
│ │ Outputs) │ │ MCP Server(s) │ │
│ └─────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────┘- Esquema JSON: Corte transversal de cada capa: parámetros de herramienta, esquema de entrada MCP, salida estructurada del modelo
- Llamada de función: Modelo ↔ Sintaxis de llamadas de host
- MCP:Host ↔ Bus de herramientas para el mundo exterior
Es posible que los scripts pequeños solo tengan llamadas a funciones + algunas funciones locales; Las plataformas de agentes de nivel empresarial suelen utilizar clústeres MCP + registro de esquema unificado + registros de auditoría.
Ejemplo completo de enlace de llamada
El usuario preguntó: "¿Cuál es la temperatura en Shanghai hoy? Por cierto, consulte mi almacén relacionado con el esquema json en GitHub".
- AnfitriónPull available tools from MCP:
get_weather,github_search_repos - Convertido a una matriz de herramientas de la API del modelo, cada una con parámetros de esquema JSON
- ModeloDevuelve dos llamadas a herramientas, ambos parámetros son JSON legales
- AnfitriónLlame al servidor meteorológico y al servidor github a través de MCP para recopilar resultados JSON
- Los resultados se devuelven como mensajes de herramienta; el modelo sintetiza respuestas en lenguaje natural
- Si necesita escribirlo en el sistema de órdenes de trabajo, utiliceEsquema de salidaConstraint final JSON:
{ "summary", "temperature", "repo_count" }
Si algún parámetro de paso no se ajusta al esquema, el host puede rechazarlo y solicitar al modelo que vuelva a intentarlo antes de la ejecución; esto es difícil de hacer con el texto ReActfallar rápido.
Comparación de selección y mejores prácticas.
| escena | sugerencia |
|---|---|
| Backend único + 3 o menos herramientas | Llamada a función + esquema escrito a mano es suficiente |
| IDE/Desktop Copilot, las herramientas siguen creciendo | Priorice el servidor MCP y reduzca la integración de la personalización del host |
| El sistema posterior solo necesita JSON, no lenguaje natural. | Resultados estructurados + esquema estricto |
| Proveedores multimodelo (OpenAI + Claude + código abierto) | El esquema está desacoplado de la definición de herramientas y la API del fabricante, y de la conversión de capa intermedia. |
| Cumplimiento y Auditoría | Registre cada herramienta_calls y versión de esquema, prohíba herramientas no definidas |
Puntos de diseño del esquema
- Field
descriptionclearly writes business semantics, which can reduce miscalls better thantypealone. requiredBetter to be strict than loose; usedefaultor explicitly nullable for optional fields- Use string + description instead for large enumerations to avoid the
enumlist being too long and occupying the context - El esquema se incorpora a la gestión de versiones de Git y la revisión del código se realiza de la misma manera que los cambios de API.
Preguntas frecuentes
¿Cuál es la relación entre el esquema JSON y la llamada a funciones?
La llamada a funciones define cómo el modelo declara y llama a las herramientas; El esquema JSON describe las restricciones estructurales de los parámetros de la herramienta y la salida del modelo. La mayoría de las API utilizan directamente un subconjunto de esquema JSON como definición de parámetros de herramientas.
¿Todavía necesito MCP con llamadas a funciones?
La llamada a función resuelve el protocolo de llamada entre el modelo de disparo único y el programa host; MCP resuelve cómo se descubren, autorizan, conectan y reutilizan las herramientas en todos los procesos. Los agentes complejos generalmente se superponen a los dos: MCP proporciona el ecosistema de herramientas y la llamada a funciones es la sintaxis de llamada en el lado del modelo.
¿MCP reemplazará a OpenAPI?
No será reemplazado por completo. OpenAPI describe el contrato API HTTP; MCP está orientado a la conexión de herramientas entre el tiempo de ejecución del Agente y el IDE. Los servicios REST aún pueden usar OpenAPI y se puede acceder al lado del Agente a través del paquete del servidor MCP.
¿Por qué la salida del Agente también requiere restricciones del esquema JSON?
La salida estructurada facilita el análisis, la verificación y el consumo posterior del programa, reduce los campos faltantes o los errores de tipo causados por el "juego libre" del modelo y mejora la confiabilidad de las tareas automatizadas.
¿Qué capa debería aprender primero al desarrollar un Agente?
Secuencia recomendada: Conceptos básicos del esquema JSON → Llamada de función de herramienta única → Orquestación del agente de varios pasos → Introducir MCP a pedido para conectarse a sistemas externos. Cada capa resuelve problemas de diferente granularidad.
¿Cómo verificar localmente el esquema JSON utilizado por el Agente?
Puede utilizar la función de verificación de la caja de herramientas JSON para verificar localmente en el navegador si la sintaxis del esquema coincide con los datos de muestra y si los datos no se cargan en el servidor.
Resumen y próximos pasos
La transformación de AI Agent de "poder chatear" a "poder hacer cosas" se basa en bloquear la incertidumbre en límites estructurados capa por capa: JSON Schema define la forma, Function Calling define cómo se extiende el modelo y MCP define cómo la herramienta se conecta al ecosistema. Los tres no son sustitutos el uno del otro;Diferentes capas en la misma pila.
Sugerencia del siguiente paso: tome una herramienta comercial real (verifique pedidos, envíe notificaciones), escriba un esquema JSON para ella → conéctese a la llamada de función y ejecútela en una sola ronda → luego evalúe si vale la pena encapsularla como un servidor MCP para la reutilización de múltiples hosts. Los datos de esquema y de muestra se pueden verificar localmente en la caja de herramientas JSON antes de conectarse.