Tiêu đề: Hướng dẫn thực hành GLM-5.3: Luôn bật suy luận, ba mức nỗ lực & ma trận hỗ trợ API
Mô tả: Hướng dẫn GLM-5.3 tháng 8 năm 2026: suy luận luôn bật với ba mức reasoning_effort, tóm tắt suy luận, gọi công cụ song song, đầu ra có cấu trúc và caching tự động, kèm ví dụ đã xác minh cho Chat / Responses / Messages của AIHubMix.
Bài viết này trình bày các thay đổi chính về API và lưu ý khi sử dụng GLM-5.3. GLM-5.3 là mô hình chủ lực của Z.ai, phát hành ngày 14-08-2026. Nó dùng đúng mô hình nền như GLM-5.2, và mọi cải tiến đều đến từ quá trình hậu huấn luyện. Trên AIHubMix, ID mô hình làcoding-glm-5.3(hiện là tuyến xem trước có thời hạn), khả dụng qua các API Chat Completions, Responses và Messages tương thích Claude. Xem thêm: bài thông báo phát hành chính thức của Z.ai.
Các kết luận "đã xác minh" và phản hồi mẫu trong mỗi phần đến từ các lệnh gọi thực tế được thực hiện vào ngày 14-08-2026 qua API của AIHubMix (Chat Completions / Responses / Messages).
1. Thông số mô hình tổng quan
| Mục | Giá trị |
|---|---|
| Cửa sổ ngữ cảnh | 1M token (giá trị chính xác chính thức: 1,048,576) |
| Đầu ra tối đa | 128K (giới hạn max_tokens đã xác minh: 131,072 — vượt quá sẽ trả về 400) |
| Phương thức đầu vào | Văn bản |
| Suy luận | Luôn bật, không thể tắt; reasoning_effort có ba mức — low / high / max, mặc định là max |
| Quan hệ với GLM-5.2 | Cùng mô hình nền, được nâng cấp qua hậu huấn luyện: năng lực lập trình và tác vụ dài hạn mạnh hơn nhiều, cùng với khả năng an ninh mạng mới xuất hiện |
| ID mô hình trên AIHubMix | coding-glm-5.3 (tuyến xem trước có thời hạn; chúng tôi sẽ cập nhật ngay khi API thương mại chính thức ra mắt) |
Đã xác minh: max_tokens: 999999 trả về 400 kèm khoảng giá trị hợp lệ trong nội dung lỗi — giới hạn trần thực sự được xác thực, không bị cắt ngầm.# max_tokens=999999 -> HTTP 400
"max_tokens parameter invalid: value must be within [1,131072]"
2. GLM-5.3 so với GLM-5.2: Suy luận luôn bật, cường độ qua reasoning_effort
| Mục | GLM-5.2 | GLM-5.3 |
|---|---|---|
| Mô hình nền | — | Giống hệt 5.2 (mọi cải tiến đến từ hậu huấn luyện) |
thinking.type |
enabled / disabled — có thể tắt |
enabled duy nhất — không thể tắt |
reasoning_effort |
Ánh xạ tương thích 7 giá trị (mức hiệu lực: max/high) | Ba mức low / high / max, mặc định max |
| Định vị | Mô hình chủ lực đa dụng | Được tăng cường cho lập trình và tác vụ tác tử dài hạn, cùng khả năng an ninh mạng mới xuất hiện |
Đây là hai thay đổi API quan trọng nhất của GLM-5.3 so với GLM-5.2:
thinking.typekhông còn hỗ trợdisabled— không thể tắt suy luận. Hướng dẫn di chuyển chính thức: các ứng dụng trước đây gửi{"type": "disabled"}nên chuyển sang{"type": "enabled"}và đặtreasoning_effortthành"low".reasoning_effortthu hẹp còn ba mức:low(nhẹ) /high(nâng cao) /max(sâu, mặc định). Ánh xạ tương thích 7 giá trị thời GLM-5.2 không còn áp dụng; Z.ai khuyến nghị dùngmaxcho tác vụ lập trình.
Đã xác minh: gửithinking: {"type": "disabled"}qua AIHubMix trả về 200 và suy luận vẫn diễn ra (reasoning_contentvẫn được trả về bình thường) — giá trị này được tự động chuyển đổi theo ngữ nghĩa kênh chính thức thay vì bị từ chối. Nếu client của bạn dựa vào việc "tắt suy luận để tiết kiệm token", hãy chuyển sangreasoning_effort: "low".
Đã xác minh: các giá trị ngoài danh sách choreasoning_effortcũng trả về 200 không lỗi (rơi về mặc địnhmaxtheo tài liệu chính thức);lowso vớimaxcho thấy xu hướng suy luận nhẹ hơn như mong đợi (27 so với 39 token suy luận cho cùng một bài toán số học).
Chat Completions
Nội dung suy luận được trả về trong trường reasoning_content; khi streaming, nó đến dưới dạng 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, default max
extra_body={"thinking": {"type": "enabled"}},
messages=[
{"role": "user", "content": "Compute the square root of (17*23-19*11), rounded down. Digits only."}
],
)
print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content) # Observed: "13"
Đã xác minh:usage.completion_tokens_details.reasoning_tokensbáo cáo lượng suy luận đã dùng — 27 vớireasoning_effort="low", 39 với"max"trên cùng một câu hỏi.
Responses
Nội dung suy luận được trả về dưới dạng mục đầu ra reasoning, với văn bản nằm trong mảng summary dưới dạng 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="What is the capital of France? City name only.",
)
# Observed response.output item types: ["reasoning", "message"]
# reasoning item: {"type": "reasoning", "summary": [{"type": "summary_text", "text": "The user is asking..."}]}
# usage.output_tokens_details.reasoning_tokens: 80
Đã xác minh: yêu cầu mặc định (không có tham sốreasoningnào) đã bao gồm mụcreasoningvớisummary_text— không cần bật tường minh.
Messages
Nội dung suy luận được trả về dưới dạng khối nội dung thinking gốc.
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": "What is the capital of France? City name only."}
],
)
# Observed response.content block types: ["thinking", "text"]
Đã xác minh: các khối thinking được trả về mặc định; thinking: {"type": "disabled"} trên API này cũng trả về 200 và suy luận vẫn diễn ra (phù hợp với ngữ nghĩa kênh chính thức "disabled được chuyển thành low, yêu cầu vẫn tiếp tục").3. Gọi công cụ và công cụ song song
Gọi hàm đã hoạt động đúng trên cả ba API; trên API Responses, chúng tôi cũng quan sát được việc gọi công cụ song song trong cùng một lượt (Z.ai khai báo rõ supports_parallel_tool_calls: true cho GLM-5.3). Giới hạn phía upstream: tối đa 128 hàm trong tools; tool_choice chỉ hỗ trợ auto ở mức gốc.
Chat Completions
completion = client.chat.completions.create(
model="coding-glm-5.3",
messages=[{"role": "user", "content": "What's the weather in Beijing today?"}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather for a city",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
},
}],
)
# Observed: finish_reason "tool_calls", with a get_weather call in tool_calls
Đã xác minh: tool_choice: "none" hoạt động — cùng câu hỏi thời tiết trả về văn bản thuần túy, không có lệnh gọi công cụ.Responses
response = client.responses.create(
model="coding-glm-5.3",
input="Check today's weather in Shanghai and Beijing",
parallel_tool_calls=True,
tools=[{
"type": "function",
"name": "get_weather",
"description": "Get weather for a city",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
)
# Observed: a single turn returns 2 parallel function_call output items (one for each city)
Đã xác minh: 2 lệnh gọi công cụ song song trong một lượt, khớp với khai báo chính thức supports_parallel_tool_calls: true.Messages
response = client.messages.create(
model="coding-glm-5.3",
max_tokens=4096,
tools=[{
"name": "get_weather",
"description": "Get weather for a city",
"input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
messages=[{"role": "user", "content": "What's the weather in Beijing today?"}],
)
# Observed: stop_reason "tool_use"; content contains a tool_use block
❗ Đã xác minh: trên API này, mô hình vẫn tạo lệnh gọi công cụ sau khi đặttool_choice: {"type": "none"}— để tắt công cụ, hãy xóa hoàn toàn tham sốtools, hoặc dùngtool_choice: "none"trên API Chat Completions.
4. Đầu ra có cấu trúc
response_format hỗ trợ text và json_object; upstream không liệt kê chế độ json_schema. Khi cần tuân thủ schema nghiêm ngặt, hãy nhúng JSON Schema vào prompt và kiểm tra ở phía client.
Chat Completions
completion = client.chat.completions.create(
model="coding-glm-5.3",
messages=[
{"role": "user", "content": "What is the capital of France? Answer in JSON with the key \"answer\"."}
],
response_format={"type": "json_object"},
)
# Observed response content: {"answer": "Paris"}
Đã xác minh: đầu ra là JSON hợp lệ chứa khóa được yêu cầu.
Responses
response = client.responses.create(
model="coding-glm-5.3",
input="What is the capital of France? Answer in JSON with the key \"answer\".",
text={"format": {"type": "json_object"}},
)
# Observed output text: {"answer": "Paris"}
Messages
# Specify the JSON structure in the prompt; observed output is valid JSON
response = client.messages.create(
model="coding-glm-5.3",
max_tokens=4096,
messages=[
{"role": "user", "content": "What is the capital of France? Answer in JSON with the key \"answer\"."}
],
)
# Observed response text: {"answer": "Paris"}
5. Caching ngữ cảnh là tự động
Caching ngầm được bật mặc định, không cần truyền tham số nào; các tiền tố dài lặp lại sẽ báo cache hit trong usage (tên trường khác nhau tùy API).
Chat Completions
# usage of the second call with an identical long prefix
"prompt_tokens_details": {"cached_tokens": 960}
Đã xác minh: lệnh gọi thứ hai trong hai lệnh gọi liên tiếp đã trúng 960 token được cache.
Responses
# usage of the second call with an identical long prefix
"input_tokens_details": {"cached_tokens": 960}
Messages
# hits are reported via usage.cache_read_input_tokens
"cache_read_input_tokens": 0
Đã xác minh: chúng tôi không tái hiện được cache hit trên API này trong lượt thử này (cache được làm nóng theo từng kênh; việc load balancer chuyển hướng có thể gây miss). Trường ghi nhận cache hit tuân theo ngữ nghĩa của Anthropic.
6. Kiểm tra lấy mẫu và tham số
Việc lấy mẫu tuân theo quy ước endpoint của họ GLM: temperature trong khoảng [0, 1], mặc định 1.0 (lưu ý — hẹp hơn giao thức OpenAI [0, 2]); top_p trong khoảng [0.01, 1], mặc định 0.95. Z.ai khuyến nghị chỉ điều chỉnh một trong hai.
Đã xác minh: việc kiểm tra tham số khác nhau giữa các API — API Messages từ chốitemperature: 3ngoài khoảng bằng lỗi 400 nêu rõ khoảng hợp lệ[0,1], trong khi Chat Completions / Responses lặng lẽ chấp nhận cùng giá trị ngoài khoảng với 200. Khi chuyển đổi giữa các API, đừng trông chờ gateway sẽ tự phát hiện giá trị lấy mẫu ngoài khoảng.
# Messages API with temperature=3 -> HTTP 400
"temperature parameter invalid: value must be within [0,1]"
7. Ma trận hỗ trợ Năng lực × API
Mọi ô dưới đây đã được xác minh bằng lệnh gọi thực qua API trực tiếp của AIHubMix vào ngày 14-08-2026; các ô hiển thị cách viết tham số/trường cho từng API.
| Năng lực | Chat Completions | Responses | Messages |
|---|---|---|---|
| Sinh văn bản cơ bản / streaming | ✅ | ✅ | ✅ |
| Nội dung suy luận | ✅ trường reasoning_content |
✅ mục đầu ra reasoning (summary_text) |
✅ khối nội dung thinking |
| Cường độ suy luận | ✅ reasoning_effort (low/high/max, mặc định max) |
✅ giống bên trái | ✅ được chấp nhận với 200 |
| Tắt suy luận | ❗ Không thể: disabled trả về 200 và suy luận vẫn tiếp diễn (ngữ nghĩa chuyển thành low) |
➖ không có tham số bật/tắt | ❗ giống Chat |
| Gọi hàm | ✅ | ✅ | ✅ |
| Gọi công cụ song song | — | ✅ 2 mục function_call trong một lượt |
— |
| Tắt gọi công cụ | ✅ tool_choice: "none" hoạt động |
✅ 200 (không quan sát thấy lệnh gọi) | ❗ vẫn tạo lệnh gọi sau {"type": "none"} |
| Đầu ra có cấu trúc (chế độ JSON) | ✅ response_format: json_object |
✅ text.format: json_object |
✅ qua quy ước trong prompt |
Chế độ nghiêm ngặt json_schema |
❗ không được liệt kê ở upstream — nhúng schema vào prompt | ❗ giống bên trái | ❗ giống bên trái |
| Ghi nhận cache tự động | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ có trường (lượt thử này chưa tái hiện được cache hit) |
| Kiểm tra giới hạn đầu ra tối đa | ✅ 400 với khoảng [1,131072] | — | — |
| Kiểm tra tham số lấy mẫu ngoài khoảng | ❗ 200 âm thầm | ❗ 200 âm thầm | ✅ 400 với khoảng [0,1] |
Câu hỏi thường gặp
ID mô hình GLM-5.3 trên AIHubMix là gì? Tôi có cần hậu tố [1m] không?
ID mô hình là coding-glm-5.3 — dùng nguyên như vậy. glm-5.3[1m] là cú pháp tên mô hình của Z.ai dành cho client Claude Code và không liên quan đến lệnh gọi AIHubMix; cả ba API đều không cần bất kỳ hậu tố nào.
Tôi có thể tắt suy luận không?
Không. Suy luận của GLM-5.3 luôn bật và thinking.type chỉ hỗ trợ enabled; trong thử nghiệm của chúng tôi, gửi disabled trả về 200 và suy luận vẫn diễn ra (được chuyển thành mức low theo ngữ nghĩa chính thức). Để tiết kiệm token suy luận, hãy gửi reasoning_effort: "low".
GLM-5.3 có liên hệ gì với GLM-5.2?
Cùng mô hình nền — mọi cải tiến đều đến từ hậu huấn luyện (nguyên văn chính thức: "Nó dùng cùng mô hình nền như GLM-5.2 — mọi cải tiến đều đến từ hậu huấn luyện"). Có hai thay đổi API bắt buộc: không còn có thể tắt suy luận, và reasoning_effort thu hẹp còn ba mức low/high/max (mặc định max).
Nếu tôi cần đầu ra có cấu trúc json_schema nghiêm ngặt thì sao?
Upstream không liệt kê chế độ response_format: json_schema. Trong thử nghiệm của chúng tôi, chế độ JSON json_object tạo ra JSON hợp lệ trên cả ba API; với schema nghiêm ngặt, hãy nhúng JSON Schema vào prompt và kiểm tra ở phía client.
Có phải coding-glm-5.3 là bản phát hành chính thức không?
Hiện tại đây là tuyến xem trước có thời hạn (tài liệu API mô hình của Z.ai ghi API chính thức là "sắp ra mắt"); AIHubMix sẽ cập nhật ngay khi API thương mại được phát hành. Xem trang mô hình để biết giá và trạng thái hiện tại.
Để xem giá và trạng thái theo thời gian thực, hãy truy cập trang mô hình GLM-5.3; để xem thêm các mô hình khác, hãy truy cập thư viện mô hình.



