How to Migrate from GLM 5.2 to GLM 5.3: Thinking Parameters & Breaking Changes

How to Migrate from GLM 5.2 to GLM 5.3: Thinking Parameters & Breaking Changes

GLM 5.3 migration guide — the required thinking.enabled change, reasoning_effort (low/high/max), what breaks from GLM 5.2, and a step-by-step cutover checklist for API and Coding Plan users.

How to Migrate from GLM 5.2 to GLM 5.3: Thinking Parameters & Breaking Changes

Quick answer: Migrating to GLM 5.3 requires exactly one breaking change: thinking.type: "disabled" is no longer supported — switch to "enabled" and set reasoning_effort (low/high/max, default max). Everything else — model ID, context, function calling, streaming — carries over. Do the thinking fix before updating the model ID, or requests fail.


TL;DR

ChangeGLM 5.2 → GLM 5.3
ThinkingOptional → always enabled (breaking)
New paramreasoning_effort: low/high/max (default max)
Model IDglm-5.2glm-5.3
Context1M (same)
Max output128K (same)
Function callingSame (now with streaming parameter output)
Migration orderFix thinking first, then change model ID

The One Breaking Change

GLM 5.3 removes the ability to disable thinking. If your application sends:

{ "thinking": { "type": "disabled" } }

…the request fails once you switch to glm-5.3. The fix:

{
  "model": "glm-5.3",
  "thinking": { "type": "enabled" },
  "reasoning_effort": "max"
}

reasoning_effort values:

ValueDescriptionWhen to use
lowLightweight reasoningClassification, extraction, quick Q&A
highEnhanced reasoningOrdinary coding, drafting
maxDeep reasoning (default)Complex multi-file coding, long agents

Z.AI recommends max for coding tasks. low exists for latency/cost-sensitive workloads — but note there is no "no thinking" mode anymore.

Migration Order (To Avoid Failed Calls)

  1. Keep your current model ID (glm-5.2).
  2. Change thinking.type to "enabled".
  3. Set reasoning_effort: "low" as a safe starting point.
  4. Update the model ID to glm-5.3.
  5. Validate on your longest-running workloads, then raise effort to high/max as appropriate.

Z.AI's official migration note is the same: change it to enabled and set reasoning_effort to low before updating the model ID to glm-5.3. Otherwise, the request will fail.

What Else Changes (Minor)

  • Tool calling now supports streaming parameter output — if you parse tool calls, verify your streaming handler tolerates parameter tokens arriving incrementally.
  • Capability jump is the point: ~+50% on Z.AI's code bench, Terminal-Bench 3.0 4.6 → 28.3, AutomationBench 26.2 → 48.2. Your agent code doesn't need changes to benefit — the same prompts get better results.
  • Model ID on OpenRouter: z-ai/glm-5.3 isn't listed yet (as of Aug 14, 2026) — the API itself is "coming soon." Coding Plan and ZCode users get 5.3 immediately.

What Stays the Same

  • 1M-token context window, 128K max output — no prompt-packing changes needed.
  • Function calling — same interface (plus the streaming-output upgrade).
  • Streaming, structured output, temperature — unchanged.
  • Base model behavior — same base as 5.2, so embedding/rag behavior is stable.

Coding Plan Migration (No Code Changes)

GLM Coding Plan subscribers were automatically upgraded to GLM 5.3 on launch day — nothing to configure. Inside ZCode / Claude Code / Cline / Kilo Code, the plan now routes to GLM 5.3. Two plan-side notes:

  • The plan moved to a points-based quota (input/cached/output metered separately).
  • Off-peak hours (outside 14:00–18:00 UTC+8 weekdays) consume 50% of standard points — schedule heavy runs accordingly.

Rollback Plan

If a workload misbehaves after cutover:

  • API: revert the model ID to glm-5.2 — your old request format (including thinking.type: "disabled", if you kept it) works unchanged.
  • Coding Plan: there's no per-request model toggle documented; contact Z.AI support for a rollback window if needed.

Checklist

  • thinking.type set to enabled in all request templates
  • reasoning_effort chosen per workload (max for coding)
  • Streaming tool-call parser handles parameter streaming
  • Staging run on glm-5.3 with low before full cutover
  • Off-peak scheduling set for point-heavy jobs
  • Rollback model ID documented in ops runbook

FAQ

Is GLM 5.3 backward compatible with GLM 5.2? Almost — one breaking change: thinking.type: "disabled" is removed. Fix that one field and the rest of the API carries over.

What does reasoning_effort do? Controls thinking depth: low (light), high (enhanced), max (deep, default). max is recommended for coding.

Can I still disable thinking in GLM 5.3? No — thinking is always enabled. low is the lightest setting.

Does GLM 5.3 change my context window? No — same 1M-token context and 128K max output as GLM 5.2.

Do I need to update my code for tool calling? Only if you parse tool calls from streams — GLM 5.3 adds streaming parameter output.

I'm on the Coding Plan — do I need to migrate? No — Coding Plan users were upgraded to GLM 5.3 automatically.


Sources

Last updated: August 14, 2026

Start Using GLM 5 Today

Try GLM 5 free — reasoning, coding, agents, and image generation in one platform.

How to Migrate from GLM 5.2 to GLM 5.3: Thinking Parameters & Breaking Changes - GLM 5