Saltar para o conteúdo principal
Use auto_routing quando quiser que o gateway escolha entre variantes quantized, MoE e dense com base na complexidade da requisição. Quando variantes irmãs ainda não estiverem registradas, use auto_routing_debug para validar a própria decisão de roteamento. Os metadados da resposta vão incluir:
  • routed_model
  • auto_routing_debug
auto_routing_debug é uma string JSON compacta com o modelo solicitado, o tier selecionado, o esforço de raciocínio, a pontuação e os motivos.

Execute a validação

A verificação em produção feita em 31 de março de 2026 usou o endpoint de Responses diretamente com um modelo fixo e uma flag de debug opt-in.
bash
curl https://apigw.mka1.com/api/v1/llm/responses \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <mka1-api-key>' \
  --data '{
    "model": "meetkai:functionary-pt",
    "input": "Summarize this in one sentence: The quick brown fox jumps over the lazy dog.",
    "auto_routing": true,
    "auto_routing_debug": true,
    "max_output_tokens": 64
  }'
Se a implantação estiver ao vivo, os metadados da resposta incluem uma carga útil como esta:
{
  "metadata": {
    "routed_model": "meetkai:functionary-pt",
    "auto_routing_debug": "{\"requested_model\":\"meetkai:functionary-pt\",\"routed_model\":\"meetkai:functionary-pt\",\"desired_tier\":\"quantized\",\"reasoning_effort\":\"minimal\",\"score\":-3,\"reasons\":[\"short prompt\",\"simple transform task\"]}"
  }
}
routed_model ainda pode ser igual ao modelo solicitado se uma família irmã compatível ainda não existir em produção. Isso não significa que a heurística falhou. A prova está em desired_tier, reasoning_effort, score e reasons dentro de auto_routing_debug.

Método de teste

A verificação em produção usou seis requisições de Responses contra https://apigw.mka1.com/api/v1/llm/responses. Cada requisição definiu:
  • model: "meetkai:functionary-pt"
  • auto_routing: true
  • auto_routing_debug: true
A matriz cobriu:
  1. Prompt curto de transformação em inglês
  2. Prompt médio com saída estruturada
  3. Prompt longo de análise de incidente
  4. Prompt com uso forçado de ferramenta
  5. Prompt curto de transformação em português
  6. Prompt longo de análise de incidente em português
Para cada resposta, a validação registrou:
  • status HTTP
  • metadata.routed_model
  • metadata.auto_routing_debug já parseado
  • reasoning.effort efetivo

Resultados ao vivo em produção

Estes foram os resultados observados em produção em 31 de março de 2026 depois do deploy do PR 321:
Caso de testeTier esperadoTier observadoEsforço de raciocínioPontuaçãoMotivos principais
simple_summaryquantizedquantizedminimal-3short prompt, simple transform task
structured_analysis_jsonmoemoelow2structured output requested, short prompt, complex reasoning markers in prompt
complex_incident_plandensedensehigh6large max_output_tokens, long prompt, complex reasoning markers in prompt
forced_code_interpreterdensedensehigh5high-agency tools enabled, tool use required
portuguese_simple_transformquantizedquantizedminimal-3short prompt, simple transform task
portuguese_complex_incidentdensedensehigh5large max_output_tokens, complex reasoning markers in prompt
As seis requisições retornaram 200 OK. As seis respostas incluíram auto_routing_debug. O tier observado correspondeu ao tier esperado em todos os casos.

Trechos brutos de resposta

Os exemplos abaixo foram adaptados do log de produção ao vivo.

Prompt curto de transformação

Request:
{
  "model": "meetkai:functionary-pt",
  "input": "Summarize this in one sentence: The quick brown fox jumps over the lazy dog.",
  "auto_routing": true,
  "auto_routing_debug": true,
  "max_output_tokens": 64
}
Observed response excerpt:
{
  "name": "simple_summary",
  "httpStatus": 200,
  "ok": true,
  "reasoning": {
    "effort": "minimal",
    "summary": null
  },
  "debug": {
    "desired_tier": "quantized",
    "reasoning_effort": "minimal",
    "score": -3,
    "reasons": [
      "short prompt",
      "simple transform task"
    ]
  },
  "error": null
}

Prompt com saída estruturada

Request:
{
  "model": "meetkai:functionary-pt",
  "input": "Analyze three customer complaints, identify the top themes, and return a compact JSON object with themes and recommended actions.",
  "auto_routing": true,
  "auto_routing_debug": true,
  "max_output_tokens": 256,
  "text": {
    "format": {
      "type": "json_object"
    }
  }
}
Observed response excerpt:
{
  "name": "structured_analysis_json",
  "httpStatus": 200,
  "ok": true,
  "reasoning": {
    "effort": "low",
    "summary": null
  },
  "debug": {
    "desired_tier": "moe",
    "reasoning_effort": "low",
    "score": 2,
    "reasons": [
      "structured output requested",
      "short prompt",
      "complex reasoning markers in prompt"
    ]
  },
  "error": null
}

Prompt longo de análise de incidente

Request:
{
  "model": "meetkai:functionary-pt",
  "input": "You are reviewing a TypeScript production incident in a request router. Investigate the root cause, identify failure modes, compare remediation trade-offs, and produce a step-by-step refactor and rollout plan. Consider error handling, retries, observability, regression risk, and operational safeguards. Explain the likely root cause, list the most important contributing factors, compare at least two possible fixes, and recommend one with justification. Also call out any assumptions, open questions, and follow-up verification steps. Keep the reasoning structured and explicit so an engineer can execute the plan safely. You are reviewing a TypeScript production incident in a request router. Investigate the root cause, identify failure modes, compare remediation trade-offs, and produce a step-by-step refactor and rollout plan. Consider error handling, retries, observability, regression risk, and operational safeguards. Explain the likely root cause, list the most important contributing factors, compare at least two possible fixes, and recommend one with justification. Also call out any assumptions, open questions, and follow-up verification steps. Keep the reasoning structured and explicit so an engineer can execute the plan safely. You are reviewing a TypeScript production incident in a request router. Investigate the root cause, identify failure modes, compare remediation trade-offs, and produce a step-by-step refactor and rollout plan. Consider error handling, retries, observability, regression risk, and operational safeguards. Explain the likely root cause, list the most important contributing factors, compare at least two possible fixes, and recommend one with justification. Also call out any assumptions, open questions, and follow-up verification steps. Keep the reasoning structured and explicit so an engineer can execute the plan safely.",
  "auto_routing": true,
  "auto_routing_debug": true,
  "max_output_tokens": 4000
}
Observed response excerpt:
{
  "name": "complex_incident_plan",
  "httpStatus": 200,
  "ok": true,
  "reasoning": {
    "effort": "high",
    "summary": null
  },
  "debug": {
    "desired_tier": "dense",
    "reasoning_effort": "high",
    "score": 6,
    "reasons": [
      "large max_output_tokens",
      "long prompt",
      "complex reasoning markers in prompt"
    ]
  },
  "error": null
}

Prompt com uso forçado de ferramenta

Request:
{
  "model": "meetkai:functionary-pt",
  "input": "Use the code interpreter to inspect this issue and report what it finds.",
  "auto_routing": true,
  "auto_routing_debug": true,
  "max_output_tokens": 256,
  "tools": [
    {
      "type": "code_interpreter",
      "container": {
        "type": "auto"
      }
    }
  ],
  "tool_choice": {
    "type": "code_interpreter"
  }
}
Observed response excerpt:
{
  "name": "forced_code_interpreter",
  "httpStatus": 200,
  "ok": true,
  "reasoning": {
    "effort": "high",
    "summary": null
  },
  "debug": {
    "desired_tier": "dense",
    "reasoning_effort": "high",
    "score": 5,
    "reasons": [
      "high-agency tools enabled",
      "tool use required"
    ]
  },
  "error": null
}

Prompt de transformação em português

Request:
{
  "model": "meetkai:functionary-pt",
  "input": "Traduza e resuma este texto em português em uma frase curta.",
  "auto_routing": true,
  "auto_routing_debug": true,
  "max_output_tokens": 64
}
Observed response excerpt:
{
  "name": "portuguese_simple_transform",
  "httpStatus": 200,
  "ok": true,
  "reasoning": {
    "effort": "minimal",
    "summary": null
  },
  "debug": {
    "desired_tier": "quantized",
    "reasoning_effort": "minimal",
    "score": -3,
    "reasons": [
      "short prompt",
      "simple transform task"
    ]
  },
  "error": null
}

Prompt de análise de incidente em português

Request:
{
  "model": "meetkai:functionary-pt",
  "input": "Investigue a causa raiz deste incidente em um serviço TypeScript, analise os trade-offs entre correções possíveis e produza um plano passo a passo para corrigir, refatorar e implantar com segurança. Considere tratamento de erros, observabilidade, risco de regressão e validação operacional. Explique a provável causa raiz, liste os fatores contribuintes mais importantes, compare pelo menos duas alternativas de correção e recomende uma com justificativa. Também destaque premissas, dúvidas em aberto e etapas de verificação posteriores. Investigue a causa raiz deste incidente em um serviço TypeScript, analise os trade-offs entre correções possíveis e produza um plano passo a passo para corrigir, refatorar e implantar com segurança. Considere tratamento de erros, observabilidade, risco de regressão e validação operacional. Explique a provável causa raiz, liste os fatores contribuintes mais importantes, compare pelo menos duas alternativas de correção e recomende uma com justificativa. Também destaque premissas, dúvidas em aberto e etapas de verificação posteriores. Investigue a causa raiz deste incidente em um serviço TypeScript, analise os trade-offs entre correções possíveis e produza um plano passo a passo para corrigir, refatorar e implantar com segurança. Considere tratamento de erros, observabilidade, risco de regressão e validação operacional. Explique a provável causa raiz, liste os fatores contribuintes mais importantes, compare pelo menos duas alternativas de correção e recomende uma com justificativa. Também destaque premissas, dúvidas em aberto e etapas de verificação posteriores.",
  "auto_routing": true,
  "auto_routing_debug": true,
  "max_output_tokens": 4000
}
Observed response excerpt:
{
  "name": "portuguese_complex_incident",
  "httpStatus": 200,
  "ok": true,
  "reasoning": {
    "effort": "high",
    "summary": null
  },
  "debug": {
    "desired_tier": "dense",
    "reasoning_effort": "high",
    "score": 5,
    "reasons": [
      "large max_output_tokens",
      "complex reasoning markers in prompt"
    ]
  },
  "error": null
}

Interprete o resultado

Use este checklist ao validar uma implantação:
  1. Confirme que a resposta inclui metadata.auto_routing_debug.
  2. Faça o parse da string JSON e inspecione desired_tier.
  3. Verifique se reasoning_effort corresponde ao nível de complexidade esperado.
  4. Verifique se reasons correspondem às características do prompt que você queria acionar.
  5. Se variantes irmãs existirem, confirme também que routed_model muda para a irmã esperada.
Se auto_routing_debug estiver ausente, a imagem de API implantada provavelmente ainda não inclui o recurso.

Observações

  • auto_routing_debug é voltado para validação e checks de rollout. Ele é opt-in e não deve ser habilitado por padrão no tráfego normal de produção.
  • auto_routing_debug está disponível no momento na Responses API.
  • As heurísticas para prompts em português já estão incluídas na lógica atual de roteamento em produção, então prompts curtos de transformação e prompts complexos de análise de incidente podem ser validados tanto em inglês quanto em português.