Guia Prático do GLM-5.3: Pensamento Sempre Ativo, Três Níveis de Esforço e a Matriz de Suporte da API

AIHubMix7 min de leitura
Guia Prático do GLM-5.3: Pensamento Sempre Ativo, Três Níveis de Esforço e a Matriz de Suporte da API

Título: Guia Prático do GLM-5.3: Pensamento Sempre Ativo, Três Níveis de Esforço & Matriz de Suporte da API

Descrição: Guia GLM-5.3 de agosto de 2026: pensamento sempre ativo com três níveis de esforço de raciocínio, resumos de raciocínio, chamadas de ferramentas em paralelo, saída estruturada e cache automático — com exemplos verificados do AIHubMix Chat / Responses / Messages.


Este artigo cobre as principais mudanças na API e notas de uso para GLM-5.3. GLM-5.3 é o modelo principal da Z.ai lançado em 2026-08-14 — ele usa o mesmo modelo base que o GLM-5.2, com todos os ganhos provenientes do pós-treinamento. No AIHubMix, o ID do modelo é coding-glm-5.3 (atualmente uma rota de pré-visualização por tempo limitado), disponível através das APIs Chat Completions, Responses e Messages compatíveis com Claude. Veja também: o blog oficial de lançamento da Z.ai.

As conclusões e respostas de exemplo "Verificadas" em cada seção vêm de chamadas reais feitas em 2026-08-14 através das APIs AIHubMix (Chat Completions / Responses / Messages).

1. Especificações do Modelo em Resumo

Item Valor
Janela de contexto 1M tokens (valor exato oficial: 1,048,576)
Saída máxima 128K (max_tokens teto verificado: 131,072 — excedê-lo retorna 400)
Modalidades de entrada Texto
Pensamento Sempre ativo, não pode ser desativado; reasoning_effort tem três níveis — low / high / max, padrão max
Relação com o GLM-5.2 Mesmo modelo base, atualizado via pós-treinamento: desempenho de codificação e tarefas de longo prazo muito mais forte, além de capacidades cibernéticas emergentes
ID do modelo AIHubMix coding-glm-5.3 (rota de pré-visualização por tempo limitado; seguiremos assim que a API comercial oficial for lançada)
Verificado: max_tokens: 999999 retorna 400 com a faixa válida especificada no corpo do erro — o teto é genuinamente validado, não truncado silenciosamente.
# max_tokens=999999 -> HTTP 400
"max_tokens parameter invalid: value must be within [1,131072]"

2. GLM-5.3 vs GLM-5.2: Pensamento Sempre Ativo, Intensidade via reasoning_effort

Item GLM-5.2 GLM-5.3
Modelo base Idêntico ao 5.2 (todos os ganhos são do pós-treinamento)
thinking.type enabled / disabled — pode ser desativado enabled apenas — não pode ser desativado
reasoning_effort mapeamento de compatibilidade de 7 valores (níveis efetivos: max/high) Três níveis low / high / max, padrão max
Posicionamento Modelo principal de uso geral Fortalecido para tarefas de codificação e de longo prazo, com capacidades cibernéticas emergentes

Estas são as duas mudanças mais importantes na API do GLM-5.3 em relação ao GLM-5.2:

  1. thinking.type não suporta mais disabled — o pensamento não pode ser desativado. Conselho oficial de migração: aplicações que costumavam enviar {"type": "disabled"} devem mudar para {"type": "enabled"} e definir reasoning_effort para "low".
  2. reasoning_effort se restringe a três níveis: low (leve) / high (melhorado) / max (profundo, o padrão). O mapeamento de compatibilidade de 7 valores da era GLM-5.2 não se aplica mais; a Z.ai recomenda max para tarefas de codificação.
Verificado: enviar thinking: {"type": "disabled"} através do AIHubMix retorna 200 e o pensamento ainda acontece (reasoning_content é retornado como de costume) — o valor é convertido automaticamente de acordo com a semântica do canal oficial em vez de ser rejeitado. Se seu cliente dependia de "desativar o pensamento para economizar tokens", mude para reasoning_effort: "low".

Verificado: valores fora do enum para reasoning_effort também retornam 200 sem erro (voltando ao padrão max conforme a documentação oficial); low vs max mostra a tendência esperada de pensamento mais leve (27 vs 39 tokens de raciocínio na mesma pergunta aritmética).

Chat Completions

O conteúdo do pensamento é retornado no campo reasoning_content; em streaming, chega como delta.reasoning_content.

from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    reasoning_effort="max",          # low / high / max, padrão max
    extra_body={"thinking": {"type": "enabled"}},
    messages=[
        {"role": "user", "content": "Calcule a raiz quadrada de (17*23-19*11), arredondada para baixo. Apenas dígitos."}
    ],
)

print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content)   # Observado: "13"
Verificado: usage.completion_tokens_details.reasoning_tokens relata o uso do pensamento — 27 com reasoning_effort="low", 39 com "max" na mesma pergunta.

Responses

O conteúdo do pensamento retorna como um item de saída reasoning, com o texto dentro do array summary como summary_text.

from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

response = client.responses.create(
    model="coding-glm-5.3",
    input="Qual é a capital da França? Apenas o nome da cidade.",
)

# Tipos de item de resposta.output observados: ["reasoning", "message"]
# item de raciocínio: {"type": "reasoning", "summary": [{"type": "summary_text", "text": "O usuário está perguntando..."}]}
# usage.output_tokens_details.reasoning_tokens: 80
Verificado: a solicitação padrão (sem o parâmetro reasoning de forma alguma) já inclui o item reasoning com summary_text — não é necessário optar explicitamente.

Messages

O conteúdo do pensamento é retornado como blocos de conteúdo thinking nativos.

from anthropic import Anthropic

client = Anthropic(
    api_key="<AIHUBMIX_API_KEY>",
    base_url="https://aihubmix.com"
)

response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Qual é a capital da França? Apenas o nome da cidade."}
    ],
)

# Tipos de bloco de resposta.content observados: ["thinking", "text"]
Verificado: blocos de pensamento são retornados por padrão; thinking: {"type": "disabled"} nesta API também retorna 200 com o pensamento ainda acontecendo (consistente com a semântica oficial de "desativado se converte em baixo, a solicitação continua").

3. Chamadas de Ferramentas e Ferramentas Paralelas

A chamada de função foi verificada como funcionando em todas as três APIs; na API Responses, também observamos chamadas de ferramentas paralelas dentro de uma única interação (a Z.ai declara explicitamente supports_parallel_tool_calls: true para o GLM-5.3). Limites upstream: até 128 funções em tools; tool_choice suporta nativamente apenas auto.

Chat Completions

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    messages=[{"role": "user", "content": "Qual é o tempo em Pequim hoje?"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Obter o tempo para uma cidade",
            "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
        },
    }],
)

# Observado: finish_reason "tool_calls", com uma chamada get_weather em tool_calls
Verificado: tool_choice: "none" funciona — a mesma pergunta sobre o tempo retorna texto simples sem chamada de ferramenta.

Responses

response = client.responses.create(
    model="coding-glm-5.3",
    input="Verifique o tempo de hoje em Xangai e Pequim",
    parallel_tool_calls=True,
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Obter o tempo para uma cidade",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
)

# Observado: uma única interação retorna 2 itens de saída function_call paralelos (um para cada cidade)
Verificado: 2 chamadas de ferramentas paralelas em uma interação, correspondendo à declaração oficial supports_parallel_tool_calls: true.

Messages

response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    tools=[{
        "name": "get_weather",
        "description": "Obter o tempo para uma cidade",
        "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    messages=[{"role": "user", "content": "Qual é o tempo em Pequim hoje?"}],
)

# Observado: stop_reason "tool_use"; o conteúdo contém um bloco tool_use
Verificado: nesta API, o modelo ainda produz chamadas de ferramentas após tool_choice: {"type": "none"} — para desativar ferramentas, remova completamente o parâmetro tools, ou use tool_choice: "none" na API Chat Completions em vez disso.

4. Saída Estruturada

response_format suporta text e json_object; o upstream não lista um modo json_schema. Quando você precisa de conformidade estrita com o esquema, insira o JSON Schema no prompt e valide do lado do cliente.

Chat Completions

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    messages=[
        {"role": "user", "content": "Qual é a capital da França? Responda em JSON com a chave \"answer\"."}
    ],
    response_format={"type": "json_object"},
)

# Conteúdo da resposta observado: {"answer": "Paris"}
Verificado: a saída é um JSON válido contendo a chave solicitada.

Responses

response = client.responses.create(
    model="coding-glm-5.3",
    input="Qual é a capital da França? Responda em JSON com a chave \"answer\".",
    text={"format": {"type": "json_object"}},
)

# Texto de saída observado: {"answer": "Paris"}

Messages

# Especifique a estrutura JSON no prompt; saída observada é um JSON válido
response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Qual é a capital da França? Responda em JSON com a chave \"answer\"."}
    ],
)

# Texto de resposta observado: {"answer": "Paris"}

5. O Cache de Contexto é Automático

O cache implícito está ativado por padrão sem parâmetros a serem passados; prefixos longos repetidos relatam acertos de cache no uso (o nome do campo varia por API).

Chat Completions

# uso da segunda chamada com um prefixo longo idêntico
"prompt_tokens_details": {"cached_tokens": 960}
Verificado: a segunda de duas chamadas consecutivas atingiu 960 tokens em cache.

Responses

# uso da segunda chamada com um prefixo longo idêntico
"input_tokens_details": {"cached_tokens": 960}

Messages

# acertos são relatados via usage.cache_read_input_tokens
"cache_read_input_tokens": 0
Verificado: não reproduzimos um acerto de cache nesta API nesta rodada (caches aquecem por canal; uma troca de balanceador de carga pode causar uma falha). O campo de contabilidade de acertos segue a semântica da Anthropic.

6. Amostragem e Validação de Parâmetros

A amostragem segue as convenções do endpoint da família GLM: faixa de temperature [0, 1] com padrão 1.0 (nota — mais estreita do que a faixa [0, 2] do protocolo OpenAI); faixa de top_p [0.01, 1] com padrão 0.95. A Z.ai recomenda ajustar apenas um dos dois.

Verificado: a validação de parâmetros difere entre as APIs — a API Messages rejeita um temperature: 3 fora da faixa com um 400 que especifica a faixa válida [0,1], enquanto Chat Completions / Responses aceitam silenciosamente o mesmo valor fora da faixa com 200. Ao migrar entre APIs, não confie no gateway para capturar valores de amostragem fora da faixa para você.
# API Messages com temperature=3 -> HTTP 400
"temperature parameter invalid: value must be within [0,1]"

7. Matriz de Suporte × Capacidade da API

Cada célula abaixo foi verificada com chamadas reais através das APIs ao vivo do AIHubMix em 2026-08-14; as células mostram a grafia do parâmetro/campo para cada API.

Capacidade Chat Completions Responses Messages
Geração básica / streaming
Conteúdo de pensamento reasoning_content field reasoning item de saída (summary_text) thinking bloco de conteúdo
Intensidade do pensamento reasoning_effort (low/high/max, padrão max) ✅ igual ao da esquerda ✅ aceito com 200
Desativar pensamento ❗ Não é possível: disabled retorna 200 e o pensamento continua (semântica convertida para baixo) ➖ sem parâmetro de alternância ❗ igual ao Chat
Chamada de função
Chamadas de ferramentas paralelas ✅ 2 itens function_call em uma interação
Desativar chamadas de ferramentas tool_choice: "none" funciona ✅ 200 (nenhuma chamada observada) ❗ chamadas ainda produzidas após {"type": "none"}
Saída estruturada (modo JSON) response_format: json_object text.format: json_object ✅ via convenção de prompt
json_schema modo estrito ❗ não listado upstream — insira o esquema no prompt ❗ igual ao da esquerda ❗ igual ao da esquerda
Contabilidade automática de cache usage.prompt_tokens_details.cached_tokens usage.input_tokens_details.cached_tokens ✅ campo presente (nenhum acerto reproduzido nesta rodada)
Validação de saída máxima ✅ 400 com faixa [1,131072]
Validação de amostragem fora da faixa ❗ silencioso 200 ❗ silencioso 200 ✅ 400 com faixa [0,1]

FAQ

Qual é o ID do modelo GLM-5.3 no AIHubMix? Preciso do sufixo [1m]?
O ID do modelo é coding-glm-5.3 — use-o como está. glm-5.3[1m] é a sintaxe do nome do modelo da Z.ai para o cliente Claude Code e não tem nada a ver com chamadas do AIHubMix; nenhuma das três APIs precisa de sufixo.

Posso desativar o pensamento?
Não. O pensamento do GLM-5.3 está sempre ativo e thinking.type só suporta enabled; em nossos testes, enviar disabled retorna 200 com o pensamento ainda acontecendo (convertido para o nível low conforme a semântica oficial). Para economizar tokens de pensamento, envie reasoning_effort: "low".

Como o GLM-5.3 se relaciona com o GLM-5.2?
Mesmo modelo base — todos os ganhos vêm do pós-treinamento (redação oficial: "Ele usa o mesmo modelo base que o GLM-5.2 — todos os ganhos vêm do pós-treinamento"). Duas mudanças difíceis na API: o pensamento não pode mais ser desativado e reasoning_effort se restringe a três níveis low/high/max (padrão max).

E se eu precisar de saída estruturada estrita json_schema?
O upstream não lista um modo response_format: json_schema. Em nossos testes, o modo JSON json_object produziu JSON válido em todas as três APIs; para esquemas estritos, insira o JSON Schema no prompt e valide do lado do cliente.

O coding-glm-5.3 é o lançamento de produção?
Atualmente é uma rota de pré-visualização por tempo limitado (a documentação da API do modelo da Z.ai marca a API oficial como "em breve"); o AIHubMix seguirá assim que a API comercial for lançada. Veja a página do modelo para preços e status atuais.


Para preços e status em tempo real, veja a página do modelo GLM-5.3; para mais modelos, visite a galeria de modelos.