GEO

Function Calling

Function calling (tambem chamado de uso de ferramentas) e o recurso que permite a um LLM analisar a solicitacao de um usuario e invocar funcoes ou APIs externas em formato JSON estruturado. A OpenAI introduziu suporte oficial em junho de 2023; desde entao, Claude, Gemini e Llama passaram a oferece-lo como recurso padrao, e ele se tornou a unidade atomica das implementacoes de agentes de IA.

Function calling (tambem chamado de uso de ferramentas) e o recurso que permite a um LLM analisar a solicitacao de um usuario e invocar funcoes ou APIs externas em formato JSON estruturado. A OpenAI introduziu suporte oficial em junho de 2023; desde entao, Claude, Gemini e Llama passaram a oferece-lo como recurso padrao, e ele se tornou a unidade atomica das implementacoes de agentes de IA.

Por que isso importa

Os LLMs sao, fundamentalmente, geradores de texto. Sem function calling, perguntar "qual e o clima em Sao Paulo agora?" so consegue trazer a tona o conhecimento do momento do treinamento. Com function calling, o modelo emite get_weather(location: "Seoul") como JSON, o aplicativo host executa a API real e o resultado retorna ao modelo para a resposta final. Esse mecanismo simples e a base dos agentes de IA, da busca com IA e de todo o ecossistema do MCP.

Como funciona

  1. Definicoes de ferramentas: O aplicativo passa ao LLM uma lista de funcoes disponiveis: nome, descricao, schema de parametros.
  2. Solicitacao do usuario: O usuario insere uma pergunta em linguagem natural.
  3. Decisao de chamada: O LLM decide qual funcao invocar e gera os argumentos como JSON.
  4. Execucao real: O aplicativo host analisa o JSON e executa a funcao real. O modelo em si nao executa codigo.
  5. Injecao dos resultados: A saida da funcao retorna ao contexto do LLM.
  6. Resposta final: O LLM produz uma resposta em linguagem natural fundamentada nos resultados.

Exemplo

Definicao da ferramenta:

{
  "name": "search_blog_posts",
  "description": "Search blog posts by keyword",
  "parameters": {
    "type": "object",
    "properties": {
      "keyword": { "type": "string", "description": "search keyword" },
      "limit": { "type": "integer", "default": 5 }
    },
    "required": ["keyword"]
  }
}

Usuario: "Encontre 3 posts sobre GEO"

Resposta do modelo:

{
  "tool_call": "search_blog_posts",
  "arguments": { "keyword": "GEO", "limit": 3 }
}

Depois que o aplicativo executa a ferramenta: [{title: "...", url: "..."}, ...]

Resposta final: "Encontrei 3 posts sobre GEO..."

Function Calling vs MCP vs ReAct

AspectoFunction CallingMCPReAct
NivelProtocolo de chamada de APIProtocolo padronizado de conexao de ferramentasPadrao de prompting
FuncaoO modelo emite JSON para invocar uma ferramentaCompartilhar ferramentas entre hosts/servidores diferentesLoop de raciocinio + acao passo a passo
RelacaoA base do MCPPadroniza function calling entre aplicativosUsa function calling dentro de um loop

Function calling e uma unica invocacao de ferramenta; o MCP e como muitos aplicativos compartilham a mesma ferramenta; o ReAct e um padrao para executar chamadas em loop com raciocinio.

Limites e pegadinhas

Risco de alucinacao: O modelo pode inventar funcoes inexistentes ou gerar argumentos ruins. A validacao rigorosa de schema e obrigatoria.

Chamadas paralelas: Modelos de fronteira (GPT-4o, Claude Opus 4.6) conseguem invocar varias funcoes em paralelo. Isso traz a gestao de dependencias.

Custo: Cada chamada expande o contexto e aumenta o gasto com tokens. Reduzir a exposicao de ferramentas melhora tanto o desempenho quanto o custo.

Seguranca: Combinado com injecao de prompt, o function calling pode amplificar os danos. Exija confirmacao do usuario para acoes arriscadas, como pagamentos ou exclusoes.

Implicacoes para GEO

Quando a busca com IA extrai informacao de um blog, ela internamente invoca funcoes como fetch_web_content, search_knowledge ou cite_source. Blogs que expoem HTML limpo e dados estruturados melhoram a qualidade dessas chamadas e aumentam a probabilidade de citacao. Em outras palavras, "um blog facil de ler para as funcoes" e um blog amigavel ao GEO.

Fontes: