Comparação

OpenAI Decisions API vs Function Calling

Function calling permite que um modelo decida invocar uma ferramenta e construa seus argumentos. O padrão de decisão por trás da OpenAI Decisions API — e o endpoint decisions-1 deste site — apenas responde qual das suas opções finitas se aplica, com uma probabilidade para cada. Se o trabalho do modelo é escolher uma ramificação, uma dessas opções tem bem menos encanamento.

Atualizado

A diferença real

Com function calling você declara ferramentas, envia a conversa, recebe um payload tool_calls, valida seus argumentos, executa a função e devolve o resultado. É um laço projetado para fazer coisas.

Uma chamada de decisão é uma ida e volta: estado entra, resposta sai. Sem registro de ferramentas, sem esquema de argumentos para validar, sem segunda chamada para obter um rótulo utilizável. A resposta já contém o vencedor mais uma probabilidade por opção.

O caminho do function calling

Rotear um ticket via function calling significa embrulhar a resposta numa definição de ferramenta e parsear tool_calls. Funciona — e é a ferramenta certa quando o modelo realmente precisa produzir argumentos para uma ação.

Function calling

// Function calling: the model decides to call a tool and
// builds its arguments. You parse tool_calls and execute it.
{
  "tools": [{
    "type": "function",
    "function": {
      "name": "route_ticket",
      "parameters": {
        "type": "object",
        "properties": {
          "team": { "enum": ["payments", "frontend", "account"] }
        }
      }
    }
  }]
}

O caminho da decisão

A mesma tarefa de roteamento como pergunta choice: as opções são nomeadas em criteria, e a resposta volta com o rótulo vencedor, probabilidades por opção e um valor de confiança — pronta para receber limiares.

Requisição de decisão

// Decision endpoint: pick among finite answers and get a
// probability per option — no tool plumbing, no arg parsing.
{
  "model": "decisions-1",
  "state": "The page renders blank in Safari.",
  "questions": {
    "team": {
      "type": "choice",
      "instructions": "Which team should own this ticket?",
      "criteria": {
        "payments": "Checkout or billing.",
        "frontend": "Rendering or browser behavior.",
        "account": "Login or permissions."
      }
    }
  }
}

Quando usar cada um

Use function calling quando o modelo deve produzir argumentos estruturados para uma ação — reserve isto, consulte aquilo, preencha estes campos. A saída alimenta código que executa.

Use um endpoint de decisão quando a saída é a entrada da ação — qual fila, qual ramo, passa ou segura. Você recebe a distribuição, não só a escolha, então casos limítrofes podem ir para um humano em vez de adivinhar.

Perguntas frequentes

Uma ferramenta com parâmetro enum não é a mesma coisa?

Em espírito sim — mas você ainda precisa construir e parsear a camada tool_calls, e a escolha do modelo não carrega probabilidades. O endpoint de decisão retorna a distribuição, que é o que torna possível definir limiares.

Posso executar uma ação depois de uma decisão?

Sim — mapeie o rótulo vencedor para sua própria função localmente. O endpoint de decisão escolhe; seu código executa. Isso mantém a superfície do modelo mínima.

A Decisions API da OpenAI substitui function calling?

Trabalhos diferentes. Function calling produz argumentos para ferramentas que você executa; uma decisions API escolhe entre respostas finitas com probabilidades. O anúncio de 2026-09-29 descreve o segundo.

Pule o encanamento de ferramentas

Uma decisão de teste grátis para novos visitantes — faça uma pergunta choice e receba a distribuição inteira.