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:
thinking.typenão suporta maisdisabled— 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 definirreasoning_effortpara"low".reasoning_effortse 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 recomendamaxpara tarefas de codificação.
Verificado: enviarthinking: {"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 parareasoning_effort: "low".
Verificado: valores fora do enum parareasoning_efforttambém retornam 200 sem erro (voltando ao padrãomaxconforme a documentação oficial);lowvsmaxmostra 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_tokensrelata o uso do pensamento — 27 comreasoning_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âmetroreasoningde forma alguma) já inclui o itemreasoningcomsummary_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óstool_choice: {"type": "none"}— para desativar ferramentas, remova completamente o parâmetrotools, ou usetool_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 umtemperature: 3fora 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.




