Em 2023, os plug-ins ChatGPT deram ao mundo uma primeira visão dos modelos que chamam APIs. Em 2024, a chamada de função tornou-se padrão entre os fornecedores. Em 2025, a Anthropic lançou o MCP, e IDEs como Cursor e Claude Desktop o adotaram - no mesmo arco, o JSON evoluiu de um formato de troca de dados para o formato do Agente.sistema de tipoeprotocolo de aperto de mão.
Se você estiver construindo pipelines RAG, fluxos de trabalho de automação ou produtos estilo Copilot, eventualmente encontrará três termos:Esquema JSON(restrições estruturais),Chamada de função(o modelo escolhe ferramentas e preenche parâmetros) ePCM(Model Context Protocol – conectividade de ferramenta padronizada). Este artigo é para desenvolvedores de back-end, plataforma e aplicativos de IA. Ele explica por que cada camada surgiu, qual problema ela resolve, como elas se encaixam e como escolher na prática.
Por que os agentes precisam de interfaces estruturadas
O padrão central dos primeiros aplicativos LLM era: os usuários faziam perguntas → o modelo gerava linguagem natural → copiava manualmente os resultados para execução. Isso é suficiente para cenários de bate-papo, mas não pode conduzir de forma confiável a gravação de banco de dados, o envio de e-mails, a verificação de inventário, etc.Repetível e auditáveltarefas automatizadas.
O modo ReAct (Reason + Act) no projeto Prompt puro permite que o modelo escreva "Action: search(query=...)" no texto, e o programa host usa análise regular - ele pode ser executado, mas é frágil: aninhamento de colchetes, escape de aspas e mistura de vários idiomas causarão falha na análise. O que o ambiente de produção exige éLegível por máquina, verificável, versionávelcontrato em vez de confiar na sorte para analisar Markdown.
JSON atende a três requisitos: existe em grandes quantidades em dados de treinamento LLM, pode ser lido tanto por humanos quanto por programas e possui um ecossistema maduro de verificação de esquema. Como resultado, o JSON Schema tornou-se o padrão de fato para descrever "que formato de dados o modelo deve produzir"; A chamada de função também incorpora "qual função chamar e quais parâmetros passar" na mesma estrutura JSON.
Cronograma de evolução da tecnologia
| estágio | capacidade representativa | Principais pontos problemáticos | Solução |
|---|---|---|---|
| 2022–2023 Antecipado | Texto simples + modelo de prompt | Saída de parâmetros alucinatórios e não analisáveis | Formato de restrição de exemplo de poucas fotos |
| 2023 meados | Ideias do ReAct/Toolformer | A ação de análise regular é instável | Bloco JSON acordado, ainda depende do Prompt |
| Fim de 2023–2024 | Chamada de função OpenAI | Os formatos não são uniformes entre os fabricantes | Parâmetros de ferramentas de nível de API, descrição do esquema JSON |
| 2024 | Resultados Estruturados | O modelo ainda pode perder campos | Decodificação de restrições do lado do servidor, forçando a conformidade com o Schema |
| Fim de 2024–2025 | MCP (promovido pela Anthropic e outros) | Integração N×M: cada IDE × cada ferramenta | Host unificado ↔ Protocolo de servidor, ferramentas conectáveis |
| 2025–2026 | Agente SDK + ecossistema MCP | Permissões, auditoria, multilocação | OAuth, transporte stdio/SSE, descoberta de ferramentas |
As alterações essenciais nesta linha são:Traduza "o que o modelo deseja fazer" da linguagem natural em mensagens estruturadas digitadase, em seguida, executado com segurança pelo programa host ou servidor MCP.
Esquema JSON: “sistema de tipos” do agente
O esquema JSON foi originalmente usado para documentação de API e verificação de configuração (OpenAPI, Kubernetes CRD, etc.). No cenário Agente, assume dois tipos de responsabilidades:
- Parâmetros de entrada da ferramenta: Description
search_productsrequiresquery(string) andlimit(integer, default 10) - Saída do modelo: Por exemplo, ao extrair entidades, rótulos de classificação, conclusões de aprovação, etc., os campos fixos devem ser retornados para consumo posterior.
Esquema de parâmetros típicos da ferramenta
{
"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 servesvalidadoreIncitar.
Saídas Estruturadas e Esquema
Se apenas Schema for escrito no Prompt, o modelo ainda poderá ter campos extras ou erros de tipo. Saídas estruturadas/modo JSON fornecido por OpenAI, Google, etc. restringirão os tokens durante o estágio de decodificação para que a saída esteja estritamente em conformidade com o esquema. Esta é uma necessidade para o tipo de pipeline "OCR de fatura → JSON estruturado → Sistema de contabilidade".
Sugestões durante a fase de desenvolvimento: primeiro use ferramentas como a caixa de ferramentas JSONSintaxe do esquema de verificação local, and then use the sample payload to verify whether required and enum intercept illegal input as expected.
Chamada de Função: Handshake entre modelos e ferramentas
A Chamada de Função (também chamada de Uso de Ferramenta, API de Ferramentas por vários fornecedores) define a comunicação entre o modelo e o host.uma rodada de apertos de mão:
- O host envia a lista de ferramentas (nome, descrição, esquema de parâmetros) para o modelo junto com mensagens
- 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 - O modelo gera respostas visíveis para o usuário final com base nos resultados
Comparação com o modo de texto ReAct
| Dimensões | Texto ReAgir | Chamada de função |
|---|---|---|
| Formato do parâmetro | Texto livre, precisa ser analisado | JSON, campos nativos da API |
| Várias ferramentas em paralelo | Desastre | Suporta múltiplas tool_calls ao mesmo tempo |
| Alinhamento de ajuste fino do modelo | fraco | Treinamento de fornecedores para formato de ferramenta |
| Observabilidade | Precisa criar um registro sozinho | Estrutura de mensagem padrão, fácil de rastrear |
A Chamada de Função não elimina a estrutura do Agente (LangChain, AutoGen, Cursor Agent, etc.), mas se torna a interface entre a estrutura e o modelo.camada de protocolo fina——A estrutura é responsável pela orquestração, novas tentativas e memória; a API do modelo é responsável por "decidir qual ferramenta chamar".
MCP: ecossistema de ferramentas conectáveis
A chamada de função resolve o problema de "como declarar a chamada no lado do modelo". Mas quando o número de ferramentas cresce e as fontes se dispersam (GitHub, Slack, Postgres, navegadores, sistemas de arquivos), surgem novos problemas:
- Cada Host (IDE, cliente de Chat, Agente autoconstruído) deve escrever uma adaptação para cada ferramenta.
- Permissões, credenciais e métodos de transporte stdio/HTTP são independentes uns dos outros
- Os usuários não podem “instalar um servidor MCP e disponibilizá-lo em qualquer lugar”
Protocolo de Contexto do Modelo (MCP)De código aberto pela Anthropic no final de 2024, é posicionado como um protocolo padrão entre o Host e o Provedor de Ferramentas. A relação de analogia é aproximadamente:
| analogia | Era da web | Era do agente |
|---|---|---|
| Descrição da capacidade | Esquema OpenAPI/JSON | Definição da ferramenta MCP (incluindo inputSchema) |
| Conexão em tempo de execução | REST HTTP | Transporte MCP como stdio/SSE |
| cliente | Navegador, SDK | Host MCP (Cursor, Claude Desktop…) |
| mercado de plug-ins | npm, extensão do Chrome | Registro do servidor MCP |
Conceitos básicos do MCP
- Hospedar: O aplicativo que iniciou a conexão (como Cursor IDE)
- Cliente: Cliente MCP no Host, mantendo sessão com o Servidor
- Servidor: processos que expõem ferramentas, recursos e prompts (como filesystem-mcp, github-mcp)
- Capacidades: a lista de ferramentas é descoberta dinamicamente em vez de codificada no Prompt.
MCP Tool's inputSchema itself is JSON Schema. Therefore, MCP does not replace Function Calling, but standardizes "tool implementation"; Host may still use MCP toolsmapeamentoFormato de chamada de função para a API do modelo.
Como os três trabalham juntos
Use uma camada lógica para entender a relação entre os três:
┌─────────────────────────────────────────────┐
│ 用户 / 业务系统 │
└─────────────────────┬───────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ 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 camada - parâmetros da ferramenta, esquema de entrada MCP, saída estruturada do modelo
- Chamada de função: Modelo ↔ Sintaxe de chamada de host
- PCM:Host ↔ Barramento de ferramentas para o mundo externo
Scripts pequenos podem ter apenas Chamadas de Função + algumas funções locais; As plataformas de agente de nível empresarial geralmente usam clusters MCP + registro de esquema unificado + logs de auditoria.
Exemplo completo de link de chamada
O usuário perguntou: "Qual é a temperatura em Xangai hoje? A propósito, verifique meu armazém relacionado ao esquema json no GitHub."
- HospedarPull available tools from MCP:
get_weather,github_search_repos - Convertido em uma matriz de ferramentas da API do modelo, cada uma com parâmetros do esquema JSON
- ModeloRetorna duas tool_calls, os parâmetros são JSON legais
- HospedarChame o Weather Server e o GitHub Server via MCP para coletar resultados JSON
- Os resultados são retornados como mensagens de ferramentas; o modelo sintetiza respostas em linguagem natural
- Se você precisar escrevê-lo no sistema de ordem de serviço, useEsquema de saídaConstraint final JSON:
{ "summary", "temperature", "repo_count" }
Se algum parâmetro da etapa não estiver em conformidade com o esquema, o host poderá rejeitá-lo e solicitar que o modelo tente novamente antes da execução - isso é difícil de fazer com o texto ReActfalha rápida.
Comparação de seleção e melhores práticas
| cena | sugestão |
|---|---|
| Back-end único + 3 ou menos ferramentas | Chamada de função + esquema manuscrito é suficiente |
| IDE/Desktop Copilot, as ferramentas continuam a crescer | Priorize o servidor MCP e reduza a integração de personalização do host |
| O sistema downstream precisa apenas de JSON, não de linguagem natural. | Saídas Estruturadas + Esquema Estrito |
| Fornecedores multimodelos (OpenAI + Claude + código aberto) | O esquema é dissociado da definição da ferramenta e da API do fabricante e da conversão da camada intermediária |
| Conformidade e Auditoria | Registre cada tool_calls e versão do esquema, proíba ferramentas indefinidas |
Pontos de design de 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 - O esquema é incorporado ao gerenciamento de versões do Git e a revisão do código é feita da mesma forma que as alterações da API.
Perguntas frequentes
Qual é a relação entre o esquema JSON e a chamada de função?
A chamada de função define como o modelo declara e chama ferramentas; O esquema JSON descreve as restrições estruturais dos parâmetros da ferramenta e da saída do modelo. A maioria das APIs usa diretamente um subconjunto do esquema JSON como definição de parâmetros de ferramentas.
Ainda preciso do MCP com chamada de função?
A chamada de função resolve o protocolo de chamada entre o modelo single-shot e o programa host; O MCP resolve como as ferramentas são descobertas, autorizadas, conectadas e reutilizadas nos processos. Os Agentes Complexos geralmente se sobrepõem aos dois: o MCP fornece o ecossistema de ferramentas e a Chamada de Função é a sintaxe de chamada no lado do modelo.
O MCP substituirá o OpenAPI?
Não será completamente substituído. OpenAPI descreve o contrato da API HTTP; O MCP é orientado para a conexão da ferramenta entre o tempo de execução do Agente e o IDE. Os serviços REST ainda podem usar OpenAPI e o lado do agente pode ser acessado por meio do pacote do servidor MCP.
Por que a saída do agente também exige restrições do esquema JSON?
A saída estruturada facilita a análise do programa, a verificação e o consumo downstream do pipeline, reduz campos ausentes ou erros de tipo causados pelo "jogo livre" do modelo e melhora a confiabilidade das tarefas automatizadas.
Qual camada você deve aprender primeiro ao desenvolver um Agente?
Sequência recomendada: Noções básicas do esquema JSON → Chamada de função de ferramenta única → Orquestração de agente em várias etapas → Introduzir o MCP sob demanda para conectar-se a sistemas externos. Cada camada resolve problemas de granularidade diferente.
Como verificar localmente o esquema JSON usado pelo agente?
Você pode usar a função de verificação da caixa de ferramentas JSON para verificar localmente no navegador se a sintaxe do esquema corresponde aos dados de amostra e se os dados não são carregados no servidor.
Resumo e próximas etapas
A transformação do Agente de IA de “capaz de conversar” para “capaz de fazer coisas” depende do bloqueio da incerteza em limites estruturados, camada por camada: o esquema JSON define a forma, a chamada de função define como o modelo se estende e o MCP define como a ferramenta se conecta ao ecossistema. Os três não são substitutos um do outro;Diferentes camadas na mesma pilha.
Sugestão para o próximo passo: pegue uma ferramenta de negócios real (verifique pedidos, envie notificações), escreva o esquema JSON para ela → conecte-se à chamada de função e execute uma única rodada → então avalie se vale a pena encapsulá-la como um servidor MCP para reutilização de vários hosts. Os dados de esquema e de amostra podem ser verificados localmente na caixa de ferramentas JSON antes de ficarem online.