O fluxo na API: (1) você envia seu prompt mais definições de funções (schemas JSON descrevendo nome, descrição e parâmetros de cada função), (2) o modelo decide se deve chamar uma função e qual, (3) ele gera uma chamada de função estruturada com argumentos específicos, (4) seu código executa a função e retorna o resultado, (5) o modelo incorpora o resultado na sua resposta. Alguns modelos podem chamar múltiplas funções em sequência ou em paralelo.
Function calling é a primitiva no nível do modelo: o modelo gera chamadas de ferramenta estruturadas. MCP (Model Context Protocol) é um protocolo de nível mais alto que padroniza como ferramentas são descobertas, descritas e conectadas. Pense em function calling como o conjunto de instruções e MCP como o sistema operacional — MCP usa function calling por baixo mas adiciona descoberta de ferramentas, autenticação e padronização entre provedores.
Function calling é mais confiável do que pedir a um modelo para gerar chamadas de função como texto (que requer parsing e é propenso a erros). Provedores implementam function calling restringindo a saída do modelo a chamadas de função válidas que correspondam ao seu schema — similar a structured output. Mas o modelo ainda pode escolher funções erradas, alucinar valores de parâmetros ou chamar funções quando não deveria. Aplicações robustas incluem validação, tratamento de erros e confirmação humana para operações de alto risco.