Titre : Guide Pratique de GLM-5.3 : Pensée Toujours Active, Trois Niveaux d'Effort & Matrice de Support API
Description : Guide GLM-5.3 d'août 2026 : pensée toujours active avec trois niveaux d'effort de raisonnement, résumés de raisonnement, appels d'outils parallèles, sortie structurée et mise en cache automatique — avec des exemples vérifiés pour AIHubMix Chat / Réponses / Messages.
Cet article couvre les principaux changements d'API et notes d'utilisation pour GLM-5.3. GLM-5.3 est le modèle phare de Z.ai publié le 2026-08-14 — il utilise le même modèle de base que GLM-5.2, avec tous les gains provenant de l'après-formation. Sur AIHubMix, l'ID du modèle estcoding-glm-5.3(actuellement une route de prévisualisation limitée), disponible via les API Chat Completions, Réponses et Messages compatibles avec Claude. Voir aussi : le blog de publication officiel de Z.ai.
Les conclusions et réponses d'exemples vérifiées dans chaque section proviennent d'appels réels effectués le 2026-08-14 via les API AIHubMix (Chat Completions / Réponses / Messages).
1. Spécifications du Modèle en Un Coup d'Œil
| Élément | Valeur |
|---|---|
| Fenêtre de contexte | 1M tokens (valeur exacte officielle : 1,048,576) |
| Sortie max | 128K (max_tokens plafond vérifié : 131,072 — le dépasser renvoie 400) |
| Modalités d'entrée | Texte |
| Pensée | Toujours activée, ne peut pas être désactivée ; reasoning_effort a trois niveaux — low / high / max, par défaut max |
| Relation avec GLM-5.2 | Même modèle de base, amélioré via l'après-formation : performances de codage et de tâches à long terme beaucoup plus fortes, plus des capacités cybernétiques émergentes |
| ID du modèle AIHubMix | coding-glm-5.3 (route de prévisualisation limitée ; nous donnerons suite dès que l'API commerciale officielle sera lancée) |
Vérifié : max_tokens: 999999 renvoie 400 avec la plage valide précisée dans le corps de l'erreur — le plafond est réellement validé, pas silencieusement tronqué.# max_tokens=999999 -> HTTP 400
"paramètre max_tokens invalide : la valeur doit être comprise entre [1,131072]"
2. GLM-5.3 vs GLM-5.2 : Pensée Toujours Active, Intensité via reasoning_effort
| Élément | GLM-5.2 | GLM-5.3 |
|---|---|---|
| Modèle de base | — | Identique à 5.2 (tous les gains proviennent de l'après-formation) |
thinking.type |
enabled / disabled — peut être désactivé |
enabled uniquement — ne peut pas être désactivé |
reasoning_effort |
mappage de compatibilité à 7 valeurs (niveaux effectifs : max/high) | Trois niveaux low / high / max, par défaut max |
| Positionnement | Modèle phare à usage général | Renforcé pour le codage et les tâches agentiques à long terme, avec des capacités cybernétiques émergentes |
Voici les deux changements d'API les plus importants dans GLM-5.3 par rapport à GLM-5.2 :
thinking.typene prend plus en chargedisabled— la pensée ne peut pas être désactivée. Conseils de migration officiels : les applications qui envoyaient auparavant{"type": "disabled"}devraient passer à{"type": "enabled"}et définirreasoning_effortsur"low".reasoning_effortse limite à trois niveaux :low(léger) /high(amélioré) /max(profond, par défaut). Le mappage de compatibilité à 7 valeurs de l'ère GLM-5.2 ne s'applique plus ; Z.ai recommandemaxpour les tâches de codage.
Vérifié : envoyerthinking: {"type": "disabled"}via AIHubMix renvoie 200 et la pensée se produit toujours (reasoning_contentest renvoyé comme d'habitude) — la valeur est convertie automatiquement selon les sémantiques officielles du canal plutôt que rejetée. Si votre client comptait sur "désactiver la pensée pour économiser des tokens", passez àreasoning_effort: "low".
Vérifié : les valeurs hors énumération pourreasoning_effortrenvoient également 200 sans erreur (retombant sur le défautmaxselon la documentation officielle) ;lowvsmaxmontre la tendance attendue de pensée plus légère (27 vs 39 tokens de raisonnement sur la même question arithmétique).
Chat Completions
Le contenu de la pensée est renvoyé dans le champ reasoning_content ; en streaming, il arrive sous la forme 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, par défaut max
extra_body={"thinking": {"type": "enabled"}},
messages=[
{"role": "user", "content": "Calculez la racine carrée de (17*23-19*11), arrondie à l'entier inférieur. Chiffres uniquement."}
],
)
print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content) # Observé : "13"
Vérifié :usage.completion_tokens_details.reasoning_tokensrapporte l'utilisation de la pensée — 27 avecreasoning_effort="low", 39 avec"max"sur la même question.
Réponses
Le contenu de la pensée revient sous la forme d'un élément de sortie reasoning, avec le texte à l'intérieur du tableau summary comme 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="Quelle est la capitale de la France ? Nom de la ville uniquement.",
)
# Types d'éléments de réponse.output observés : ["reasoning", "message"]
# élément de raisonnement : {"type": "reasoning", "summary": [{"type": "summary_text", "text": "L'utilisateur demande..."}]}
# usage.output_tokens_details.reasoning_tokens : 80
Vérifié : la demande par défaut (sans paramètrereasoningdu tout) inclut déjà l'élémentreasoningavecsummary_text— aucune option explicite nécessaire.
Messages
Le contenu de la pensée est renvoyé sous forme de blocs de contenu thinking natifs.
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": "Quelle est la capitale de la France ? Nom de la ville uniquement."}
],
)
# Types de blocs de réponse.content observés : ["thinking", "text"]
Vérifié : les blocs de pensée sont renvoyés par défaut ; thinking: {"type": "disabled"} sur cette API renvoie également 200 avec la pensée toujours active (conforme aux sémantiques officielles "désactivé se convertit en faible, la demande continue").3. Appels d'Outils et Outils Parallèles
Les appels de fonction ont été vérifiés comme fonctionnant sur les trois API ; sur l'API Réponses, nous avons également observé des appels d'outils parallèles dans un seul tour (Z.ai déclare explicitement supports_parallel_tool_calls: true pour GLM-5.3). Limites en amont : jusqu'à 128 fonctions dans tools ; tool_choice prend en charge nativement auto uniquement.
Chat Completions
completion = client.chat.completions.create(
model="coding-glm-5.3",
messages=[{"role": "user", "content": "Quel temps fait-il à Pékin aujourd'hui ?"}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Obtenir la météo pour une ville",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
},
}],
)
# Observé : finish_reason "tool_calls", avec un appel get_weather dans tool_calls
Vérifié : tool_choice: "none" fonctionne — la même question sur la météo renvoie du texte brut sans appel d'outil.Réponses
response = client.responses.create(
model="coding-glm-5.3",
input="Vérifiez la météo d'aujourd'hui à Shanghai et Pékin",
parallel_tool_calls=True,
tools=[{
"type": "function",
"name": "get_weather",
"description": "Obtenir la météo pour une ville",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
)
# Observé : un seul tour renvoie 2 éléments de sortie function_call parallèles (un pour chaque ville)
Vérifié : 2 appels d'outils parallèles dans un tour, correspondant à la déclaration officielle supports_parallel_tool_calls: true.Messages
response = client.messages.create(
model="coding-glm-5.3",
max_tokens=4096,
tools=[{
"name": "get_weather",
"description": "Obtenir la météo pour une ville",
"input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
messages=[{"role": "user", "content": "Quel temps fait-il à Pékin aujourd'hui ?"}],
)
# Observé : stop_reason "tool_use" ; le contenu contient un bloc tool_use
❗ Vérifié : sur cette API, le modèle produit toujours des appels d'outils aprèstool_choice: {"type": "none"}— pour désactiver les outils, retirez complètement le paramètretools, ou utiliseztool_choice: "none"sur l'API Chat Completions à la place.
4. Sortie Structurée
response_format prend en charge text et json_object ; l'amont ne liste pas de mode json_schema. Lorsque vous avez besoin d'une conformité stricte au schéma, intégrez le schéma JSON dans l'invite et validez côté client.
Chat Completions
completion = client.chat.completions.create(
model="coding-glm-5.3",
messages=[
{"role": "user", "content": "Quelle est la capitale de la France ? Répondez en JSON avec la clé \"answer\"."}
],
response_format={"type": "json_object"},
)
# Contenu de la réponse observé : {"answer": "Paris"}
Vérifié : la sortie est un JSON valide contenant la clé demandée.
Réponses
response = client.responses.create(
model="coding-glm-5.3",
input="Quelle est la capitale de la France ? Répondez en JSON avec la clé \"answer\".",
text={"format": {"type": "json_object"}},
)
# Texte de sortie observé : {"answer": "Paris"}
Messages
# Spécifiez la structure JSON dans l'invite ; la sortie observée est un JSON valide
response = client.messages.create(
model="coding-glm-5.3",
max_tokens=4096,
messages=[
{"role": "user", "content": "Quelle est la capitale de la France ? Répondez en JSON avec la clé \"answer\"."}
],
)
# Texte de réponse observé : {"answer": "Paris"}
5. La Mise en Cache du Contexte est Automatique
La mise en cache implicite est activée par défaut sans paramètres à passer ; les préfixes longs répétés rapportent des hits de cache dans l'utilisation (le nom du champ varie selon l'API).
Chat Completions
# utilisation du deuxième appel avec un préfixe long identique
"prompt_tokens_details": {"cached_tokens": 960}
Vérifié : le deuxième des deux appels consécutifs a atteint 960 tokens mis en cache.
Réponses
# utilisation du deuxième appel avec un préfixe long identique
"input_tokens_details": {"cached_tokens": 960}
Messages
# les hits sont rapportés via usage.cache_read_input_tokens
"cache_read_input_tokens": 0
Vérifié : nous n'avons pas reproduit de hit de cache sur cette API lors de ce tour (les caches se réchauffent par canal ; un changement de répartiteur peut provoquer un échec). Le champ de comptabilité des hits suit les sémantiques d'Anthropic.
6. Échantillonnage et Validation des Paramètres
L'échantillonnage suit les conventions des points de terminaison de la famille GLM : plage de temperature [0, 1] avec un défaut de 1.0 (note — plus étroite que la plage [0, 2] du protocole OpenAI) ; plage de top_p [0.01, 1] avec un défaut de 0.95. Z.ai recommande de régler uniquement l'un des deux.
Vérifié : la validation des paramètres diffère selon les API — l'API Messages rejette unetemperature: 3hors plage avec un 400 qui précise la plage valide[0,1], tandis que Chat Completions / Réponses acceptent silencieusement la même valeur hors plage avec 200. Lors de la migration entre les API, ne comptez pas sur la passerelle pour attraper les valeurs d'échantillonnage hors plage pour vous.
# API Messages avec temperature=3 -> HTTP 400
"paramètre temperature invalide : la valeur doit être comprise entre [0,1]"
7. Matrice de Support des Capacités × API
Chaque cellule ci-dessous a été vérifiée avec des appels réels via les API en direct d'AIHubMix le 2026-08-14 ; les cellules montrent l'orthographe des paramètres/champs pour chaque API.
| Capacité | Chat Completions | Réponses | Messages |
|---|---|---|---|
| Génération de base / streaming | ✅ | ✅ | ✅ |
| Contenu de pensée | ✅ reasoning_content champ |
✅ élément de sortie reasoning (summary_text) |
✅ bloc de contenu thinking |
| Intensité de la pensée | ✅ reasoning_effort (low/high/max, par défaut max) |
✅ identique à gauche | ✅ accepté avec 200 |
| Désactiver la pensée | ❗ Impossible : disabled renvoie 200 et la pensée continue (sémantique convertie en faible) |
➖ pas de paramètre de basculement | ❗ identique à Chat |
| Appel de fonction | ✅ | ✅ | ✅ |
| Appels d'outils parallèles | — | ✅ 2 éléments function_call dans un tour |
— |
| Désactiver les appels d'outils | ✅ tool_choice: "none" fonctionne |
✅ 200 (aucun appel observé) | ❗ des appels sont toujours produits après {"type": "none"} |
| Sortie structurée (mode JSON) | ✅ response_format: json_object |
✅ text.format: json_object |
✅ via convention d'invite |
json_schema mode strict |
❗ non listé en amont — intégrez le schéma dans l'invite | ❗ identique à gauche | ❗ identique à gauche |
| Comptabilité automatique du cache | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ champ présent (aucun hit reproduit ce tour) |
| Validation de la sortie max | ✅ 400 avec plage [1,131072] | — | — |
| Validation d'échantillonnage hors plage | ❗ silencieux 200 | ❗ silencieux 200 | ✅ 400 avec plage [0,1] |
FAQ
Quel est l'ID du modèle GLM-5.3 sur AIHubMix ? Ai-je besoin du suffixe [1m] ?
L'ID du modèle est coding-glm-5.3 — utilisez-le tel quel. glm-5.3[1m] est la syntaxe de nom de modèle de Z.ai pour le client Claude Code et n'a rien à voir avec les appels AIHubMix ; aucune des trois API n'a besoin de suffixe.
Puis-je désactiver la pensée ?
Non. La pensée de GLM-5.3 est toujours active et thinking.type ne prend en charge que enabled ; dans nos tests, envoyer disabled renvoie 200 avec la pensée toujours active (convertie au niveau low selon les sémantiques officielles). Pour économiser des tokens de pensée, envoyez reasoning_effort: "low".
Comment GLM-5.3 se rapporte-t-il à GLM-5.2 ?
Même modèle de base — tous les gains proviennent de l'après-formation (formulation officielle : "Il utilise le même modèle de base que GLM-5.2 — chaque gain provient de l'après-formation"). Deux changements d'API importants : la pensée ne peut plus être désactivée, et reasoning_effort se limite à trois niveaux low/high/max (max par défaut).
Que faire si j'ai besoin d'une sortie structurée json_schema stricte ?
L'amont ne liste pas de mode response_format: json_schema. Dans nos tests, le mode JSON json_object a produit un JSON valide sur les trois API ; pour des schémas stricts, intégrez le schéma JSON dans l'invite et validez côté client.
Est-ce que coding-glm-5.3 est la version de production ?
C'est actuellement une route de prévisualisation limitée (la documentation de l'API modèle de Z.ai marque l'API officielle comme "bientôt disponible") ; AIHubMix donnera suite dès que l'API commerciale sera lancée. Consultez la page du modèle pour les prix et le statut actuels.
Pour les prix et le statut en temps réel, consultez la page du modèle GLM-5.3 ; pour plus de modèles, visitez la galerie de modèles.




