Function Calling
Function Calling é um recurso moderno de modelos de linguagem que permite que eles chamem funções reais do seu sistema usando parâmetros estruturados. Em vez de o modelo tentar “adivinhar” como executar uma ação via texto, ele devolve um comando preciso, em JSON, indicando exatamente qual função deve ser disparada e com quais argumentos.
Essa camada transforma o LLM em um orquestrador inteligente de tarefas, capaz de interagir com sistemas internos, APIs, bancos de dados e automações de forma segura e previsível.
Como Function Calling funciona na prática
A mecânica é simples, mas poderosa. O modelo não executa ações diretamente. Ele decide se deve chamar uma função e retorna os parâmetros para que o backend execute.
1. Definição das funções
O desenvolvedor define funções e seus parâmetros usando um schema em JSON.
Esse schema descreve o nome da função, o que ela faz, o tipo de cada parâmetro e quais são obrigatórios.
2. Envio das funções ao modelo
Durante a conversa, o LLM recebe a lista de funções disponíveis e usa essa informação para decidir se alguma delas resolve o pedido do usuário.
3. Decisão do modelo
Com base no contexto, o LLM escolhe se retorna uma resposta normal em texto ou se deve acionar uma função.
4. Retorno estruturado
Quando o modelo decide chamar uma função, ele cria um JSON com o nome da função e os argumentos preenchidos.
5. Execução no backend
A aplicação recebe o JSON, executa a função real e devolve o resultado ao modelo.
6. Resposta final
O LLM usa o resultado da função para gerar uma resposta natural e contextualizada ao usuário.
Exemplo de schema de função
{
"name": "get_weather",
"description": "Obtém clima atual de uma cidade",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "Nome da cidade"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}
}
E o LLM retornaria algo como:
{
"function": "get_weather",
"arguments": {"city": "São Paulo", "unit": "celsius"}
}
Onde Function Calling faz diferença
Integrações com sistemas internos
Permite acionar processos reais dentro da empresa.
Exemplos comuns incluem criar tickets, consultar CRMs ou registrar atividades.
Busca de informação estruturada
O modelo consulta fontes confiáveis via função, e não apenas tenta “lembrar”.
Ideal para bancos de dados, APIs internas e documentos corporativos.
Execução de ações automatizadas
Permite que o LLM envie emails, atualize estoques, processe pagamentos ou crie registros, tudo com argumentos validados.
Vantagens em relação ao prompt engineering tradicional
Function Calling oferece precisão que prompts não conseguem garantir.
Os principais ganhos incluem:
Saída estruturada e validada
O LLM responde com JSON correto, seguindo tipos e formatos definidos.
Menos ambiguidade e erros
A conversão texto → ação fica mais confiável, reduzindo riscos.
Segurança operacional maior
O backend controla exatamente o que pode ou não ser executado.
Eficiência
Evita respostas longas, reduz custo de tokens e acelera a decisão.
Melhores práticas para implementar Function Calling
Escreva descrições claras
Funções e parâmetros precisam ser compreensíveis pelo modelo.
Valide argumentos
Nunca execute uma função sem antes validar tipos e formato enviados pelo LLM.
Implemente tratamento de erros
Funções podem falhar. O agente precisa saber como reagir.
Cuide de autenticação e limites
Toda automação integrada deve ter controle de acesso, rate limiting e logs.
Audite chamadas
Registro de todas as chamadas melhora rastreabilidade e segurança em produção.