Zhipu AIは国際的にはZ.aiとして展開する中国の研究機関で、2026年8月14日にGLM-5.3をリリースしました。Zhipuの社内評価では、GLM-5.2と比べてコーディング能力が50%向上し、Terminal-Bench 3.0は4.6から28.3へ上昇しています。BigGoの発表レポートによると、Zhipuはコーディングおよびエージェント能力を「Claude Fable 5に匹敵する」と評価しています。オープンウェイトは約2週間後に公開予定です。全機能とベンチマークはGLM-5.3とは何かを参照してください。本記事では、APIキーの取得、cURLによる初回リクエスト、OpenAI SDKを使ったPython/Node.js実装、ストリーミング、主要パラメーター、そしてApidogでのリクエスト検証を解説します。Z.ai APIはOpenAI互換のため、既存のOpenAI形式の実装をほぼそのまま移植できます。なお、GLM-5.3はリリース直後であり、ドキュメントは更新される可能性があります。以下では公式ドキュメントで確認できた内容と、GLM-5ファミリーの慣例に基づく注意点を分けて扱います。
TL;DR(要するに)
- GLM-5.3は2026年8月14日にリリースされました。Zhipuの社内評価では、GLM-5.2比でコーディング能力が50%向上し、Terminal-Bench 3.0は4.6から28.3へ上昇しています。
- 国際版のチャット補完エンドポイントは
POST https://api.z.ai/api/paas/v4/chat/completions、中国本土版はPOST https://open.bigmodel.cn/api/paas/v4/chat/completionsです。 - 認証は
Authorization: Bearer $GLM_API_KEYを使用します。 - APIはOpenAI互換です。OpenAI SDKの
base_urlまたはbaseURLを変更すれば、PythonとNode.jsの既存実装を流用できます。 - 執筆時点のGLM-5ドキュメントにはモデルIDとして
glm-5が記載されています。一方、料金ページにはglm-5.2、glm-5.1が個別モデルとして掲載されています。本番利用前にglm-5.3が利用可能か確認してください。 - 5.3固有のAPI料金はリリース時点で未公開です。公式料金ページを確認してください。
- 実装前にApidogでリクエストを固定し、地域・モデルID・
thinkingの有無を環境変数と保存済みリクエストで管理すると効率的です。
GLM-5.3が重要な理由
GLM-5.3ではベースモデルは変更されておらず、GLM-5に対する大規模な後学習による改善とされています。Zhipuの評価では、Terminal-Bench 3.0は4.6から28.3へ、SWE-MarathonはGLM-5.2に対してほぼ2倍に上昇しました。
ただし、コーディング能力50%向上や各種ベンチマークの一部はベンダー自身による評価です。第三者による再現結果が出るまでは、実装判断の根拠ではなく検証対象として扱うのが安全です。
Z.aiのドキュメントによると、GLM-5ファミリーは合計7440億パラメータのMixture of Experts(MoE)設計で、フォワードパスごとに約400億パラメータがアクティブになります。コンテキストウィンドウは20万トークンです。これらはGLM-5ファミリーの仕様であり、GLM-5.3固有の主張ではありません。
API利用者にとって重要なのは、将来的なセルフホスティングとの比較基準を今から作れる点です。Pandailyのローンチ報道によると、Zhipuは2026年8月28日頃にオープンウェイトを公開すると述べています。まずホスト型APIで実プロンプトの応答、レイテンシ、トークン使用量を保存しておけば、後でセルフホスト環境を比較する際の回帰テストに使えます。詳細はGLM-5.3セルフホスティング準備ガイドを参照してください。
APIキーの取得
Zhipuのプラットフォームは地域ごとに分かれています。利用する地域に合わせて選択してください。
Z.ai(国際版)
z.aiでサインアップし、APIコンソールからキーを作成します。ドキュメントはdocs.z.aiにあります。
国際版のベースURL:
https://api.z.ai/api/paas/v4
Bigmodel.cn(中国本土版)
中国本土向けのプラットフォームはopen.bigmodel.cnです。認証方式とリクエスト形式は同じですが、ホストと課金体系は異なります。
中国本土版のベースURL:
https://open.bigmodel.cn/api/paas/v4
APIキーはコードに直接書かず、環境変数として設定します。
export GLM_API_KEY="your-key-from-the-console"
.env を使う場合も、キーをリポジトリへコミットしないでください。
# .env
GLM_API_KEY=your-key-from-the-console
エンドポイントと認証
執筆時点でGLM-5ドキュメントと照合したチャット補完エンドポイントは次のとおりです。
国際版
POST https://api.z.ai/api/paas/v4/chat/completions
中国本土版
POST https://open.bigmodel.cn/api/paas/v4/chat/completions
認証にはBearerトークンを使います。
Authorization: Bearer $GLM_API_KEY
Content-Type: application/json
リクエストはOpenAI形式です。
{
"model": "glm-5.3",
"messages": [
{
"role": "user",
"content": "こんにちは"
}
]
}
レスポンスも choices、message、finish_reason、usage を含むOpenAI互換形式です。既存のOpenAI SDK実装を使う場合は、モデル名とベースURLを差し替えるだけで試せます。この移植パターンはDeepSeek V4 ProのAPIと同様です。
モデルIDは設定で管理する
リリース時点では、GLM-5のドキュメントページに glm-5 がモデル文字列として記載されていました。料金ページでは glm-5.2 と glm-5.1 が別モデルとして掲載されているため、GLM-5.3のIDは glm-5.3 と予想できます。
ただし、モデルIDをコードへハードコードしないでください。
export GLM_MODEL="glm-5.3"
glm-5.3 が利用できない場合は、公式ドキュメントを確認し、必要に応じて glm-5 をフォールバック候補として検証してください。
cURLで最初のリクエストを送る
まずはcURLで認証、モデルID、リクエスト形式を確認します。
curl "https://api.z.ai/api/paas/v4/chat/completions" \
-H "Authorization: Bearer $GLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3",
"messages": [
{
"role": "system",
"content": "You are a code reviewer. Flag issues as blocking or non-blocking."
},
{
"role": "user",
"content": "Review this shell script for safety:\n\nrm -rf $BUILD_DIR/*\ncp dist/* $DEPLOY_TARGET"
}
],
"temperature": 0.3,
"max_tokens": 1024
}'
成功時は、choices[0].message.content に生成結果が返ります。usage.prompt_tokens と usage.completion_tokens も記録してください。
{
"choices": [
{
"message": {
"content": "..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0
}
}
推論モードを有効にする
ドキュメントには thinking パラメーターも記載されています。
{
"thinking": {
"type": "enabled"
}
}
多段階のコーディングタスクやエージェント処理では有効化を検討できます。一方、短い抽出や分類では、余分な推論トークンと初回出力までの待ち時間を避けるため、無効状態との比較を推奨します。
Pythonクイックスタート
OpenAI Python SDKをインストールします。
pip install --upgrade openai
base_url をZ.aiのAPIに設定します。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["GLM_API_KEY"],
base_url="https://api.z.ai/api/paas/v4",
)
response = client.chat.completions.create(
model=os.getenv("GLM_MODEL", "glm-5.3"),
messages=[
{
"role": "system",
"content": "You are a code reviewer. Flag issues as blocking or non-blocking.",
},
{
"role": "user",
"content": (
"Review this Flask route for security issues:\n\n"
"@app.route('/user/<id>')\n"
"def get_user(id):\n"
" return db.execute(f'SELECT * FROM users WHERE id = {id}')"
),
},
],
temperature=0.3,
max_tokens=2048,
)
print(response.choices[0].message.content)
print("input tokens:", response.usage.prompt_tokens)
print("output tokens:", response.usage.completion_tokens)
リリース時点ではGLM-5.3固有の料金が公開されていないため、usage の記録は必須です。少なくとも以下をログに残してください。
- モデルID
- 入力トークン数
- 出力トークン数
- レスポンス時間
finish_reason-
thinkingの有効・無効
Node.jsクイックスタート
openai パッケージを使う場合も、ベースURLを変更するだけです。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.GLM_API_KEY,
baseURL: "https://api.z.ai/api/paas/v4",
});
const response = await client.chat.completions.create({
model: process.env.GLM_MODEL || "glm-5.3",
messages: [
{
role: "system",
content:
"You are a terminal automation agent. Return each step as a shell command with a one-line rationale.",
},
{
role: "user",
content:
"A Node service on port 3000 stopped responding after a deploy. Give me a diagnosis sequence.",
},
],
temperature: 0.3,
max_tokens: 2048,
});
console.log(response.choices[0].message.content);
console.log(response.usage);
既存アプリケーションがすでにOpenAI APIを利用している場合、全面的に書き換える必要はありません。GLM用に2つ目のクライアントを作成し、タスク単位でルーティングしてください。
const glmClient = new OpenAI({
apiKey: process.env.GLM_API_KEY,
baseURL: "https://api.z.ai/api/paas/v4",
});
// 例: コードレビューだけGLMにルーティングする
const client = task === "code-review" ? glmClient : existingClient;
これにより、既存モデルとGLM-5.3のA/Bテストをルーティング設定として実施できます。
ストリーミング
ストリーミングは標準の stream フラグで有効にできます。
stream = client.chat.completions.create(
model=os.getenv("GLM_MODEL", "glm-5.3"),
messages=[
{
"role": "user",
"content": "Explain the N+1 query problem with a concrete ORM example.",
}
],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
生HTTPで利用する場合は、リクエストボディに "stream": true を指定し、Server-Sent Events(SSE)を処理します。
{
"model": "glm-5.3",
"messages": [
{
"role": "user",
"content": "Explain streaming APIs."
}
],
"stream": true
}
実装時の注意点は次の2つです。
- トークン使用量は最後のチャンク、またはストリーム終端後に届く場合があります。コスト計算はストリーム完了後に行ってください。
-
thinkingを有効にした難しいプロンプトでは、最初のトークンまでの時間が長くなる可能性があります。UIでストリーミングを使う場合は、待機状態を明示してください。
重要なパラメーター
| パラメーター | タイプ | 実装上の使いどころ |
|---|---|---|
max_tokens |
integer | 出力長の上限。コストとレスポンス長を制御する主要レバー。 |
temperature |
number | コードレビューや抽出では 0.2〜0.4、自由記述では 0.7 以上を検討。 |
thinking |
object |
{"type": "enabled"} で多段階タスク向けの推論モードを有効化。 |
stream |
boolean | 単一レスポンスではなくSSEで段階的に出力を受信。 |
messages |
array |
system、user、assistant を使うOpenAI形式の会話履歴。 |
コスト管理では、まず max_tokens を適切に制限してください。必要以上に大きい値を指定すると、出力が長くなった際のコストとレイテンシが増えます。
公式料金ページによると、執筆時点でGLM-5.2は100万入力トークンあたり1.40ドル、100万出力トークンあたり4.40ドル、GLM-5は1.00ドルと3.20ドルです。GLM-5.3の価格は公式発表を確認してください。
繰り返し使用するシステムプロンプトは固定化し、キャッシュを利用しやすい構造にしてください。有料GLMモデルではキャッシュされた入力に80%から85%の割引があるとされています。コスト最適化の考え方はDeepSeekの料金値上げ事後分析も参考になります。
アプリコードを書く前にApidogでGLM-5.3をテストする
コード内でプロンプトを直接編集して実行すると、変更履歴、レスポンス比較、地域切り替え、トークン使用量の追跡が難しくなります。OpenAI互換APIであるGLM-5.3は、まずApidogでリクエストを検証してからアプリケーションへ移植すると効率的です。
1. チャット補完リクエストを作成する
新規プロジェクトで POST /chat/completions を追加します。
POST {{base_url}}/chat/completions
ヘッダー:
Authorization: Bearer {{GLM_API_KEY}}
Content-Type: application/json
ボディ:
{
"model": "{{GLM_MODEL}}",
"messages": [
{
"role": "system",
"content": "You are a code reviewer. Flag issues as blocking or non-blocking."
},
{
"role": "user",
"content": "Review this shell script for safety:\n\nrm -rf $BUILD_DIR/*\ncp dist/* $DEPLOY_TARGET"
}
],
"temperature": 0.3,
"max_tokens": 1024
}
2. 地域ごとの環境を分ける
次の2つの環境を作成します。
| 環境名 | base_url |
|---|---|
zai-international |
https://api.z.ai/api/paas/v4 |
bigmodel-mainland |
https://open.bigmodel.cn/api/paas/v4 |
各環境に以下の変数を設定します。
GLM_API_KEY=your-key
GLM_MODEL=glm-5.3
これにより、キーをリクエストへ直接埋め込まずに、ドロップダウン操作だけで地域を切り替えられます。
3. モデルIDを変数化する
モデルIDを {{GLM_MODEL}} にしておくと、ドキュメント更新や比較テストに対応しやすくなります。
GLM_MODEL=glm-5.3
フォールバック検証時は、環境変数だけを変更します。
GLM_MODEL=glm-5
保存済みリクエストを個別に編集する必要はありません。
4. thinking の有効・無効を比較する
同じリクエストを複製し、一方だけで thinking を有効にします。
{
"thinking": {
"type": "enabled"
}
}
比較する項目は以下です。
- 応答の正確性
- 最初のトークンまでの時間
- 総レスポンス時間
-
usageのトークン数 - 出力の一貫性
実プロンプトごとに比較し、推論モードが必要なワークロードだけ有効化してください。
5. ストリーミングを確認する
stream を有効にしたリクエストも保存します。
{
"model": "{{GLM_MODEL}}",
"messages": [
{
"role": "user",
"content": "Explain the N+1 query problem with a concrete ORM example."
}
],
"stream": true
}
SSEチャンクをライブで確認し、実際のUIで許容できる初回出力時間かを判断します。
6. 良い応答をフィクスチャとして保存する
期待どおりのレスポンスが得られたら、保存してテストデータとして使います。開発中に毎回ライブAPIを呼び出さずに済むため、トークン消費を抑えられます。
さらに、保存済みリクエストをテストシナリオへつなげ、次の項目をアサーション対象にします。
- HTTPステータス
finish_reason- レスポンススキーマ
- 必須フィールド
- トークン数の上限
このワークフローはGLM-5.3に限りません。APIテストを体系化する方法はQAエンジニア向けのAPIテストガイドでも解説されています。
エラー処理とレート制限
OpenAI形式のエラーオブジェクトを想定してください。
{
"error": {
"message": "...",
"type": "...",
"code": "..."
}
}
代表的なステータスコードは次のとおりです。
| ステータス | 主な原因 | 対応 |
|---|---|---|
400 |
不正なリクエストボディ、未対応のモデルID |
model、JSON形式、必須フィールドを確認する |
401 |
APIキーの欠落・失効 | 環境変数とBearerヘッダーを確認する |
429 |
レート制限 | 指数バックオフで再試行する |
5xx |
一時的なサーバー障害 | 再試行し、失敗をログへ記録する |
429と5xxには、ジッター付き指数バックオフを実装してください。
import random
import time
def retry_with_backoff(operation, max_retries=4):
for attempt in range(max_retries):
try:
return operation()
except Exception:
if attempt == max_retries - 1:
raise
delay = min(2 ** attempt, 16) + random.uniform(0, 0.5)
time.sleep(delay)
運用上は次の3点を守ると安全です。
- 429と5xxは再試行対象にする
- 400と401は即時に設定・リクエストを修正する
- レート制限の具体的な値は推測せず、公式ドキュメントで確認する
また、モデルIDは必ず設定として管理してください。GLM-5.3の動作変更で問題が発生したとき、glm-5.2 へのロールバックをデプロイではなく設定変更で実施できます。OpenAI互換APIのデバッグ手順はGrokのAPIデバッグワークフローも参考になります。
よくある質問
GLM-5.3 APIのモデルIDは何ですか?
GLM-5.1、GLM-5.2という命名規則からは glm-5.3 が予想されます。ただし、執筆時点のモデルページには glm-5 が掲載されていました。本番で固定する前にdocs.z.aiを確認し、モデルIDは設定ファイルまたは環境変数で管理してください。
GLM-5.3 APIはOpenAI SDKで動作しますか?
はい。APIはOpenAI互換です。Pythonでは base_url、Node.jsでは baseURL に以下を指定します。
https://api.z.ai/api/paas/v4
中国本土版を使う場合は次を指定します。
https://open.bigmodel.cn/api/paas/v4
認証にはZ.aiまたはBigmodel.cnで作成したAPIキーを使います。
GLM-5.3 APIの費用はいくらですか?
Zhipuは2026年8月14日のリリース時点で、GLM-5.3固有の料金を公開していませんでした。公式料金ページには、GLM-5.2が100万入力トークンあたり1.40ドル、100万出力トークンあたり4.40ドルと記載されています。価格は必ず公式情報で確認してください。
GLM-5.3はClaudeやGPTと比較してどうですか?
Zhipu自身の評価では、コーディングおよびエージェント能力は「Claude Fable 5に匹敵する」とされています。CyberGymは84.5%でClaude Mythos 5およびGPT-5.6 Solをわずかに上回る一方、ExploitBenchは54.4%でフロンティアモデルには及ばないとされています。
これらはベンダー評価であるため、実際の採用判断では自分のリポジトリ、プロンプト、失敗条件で比較してください。フロンティアモデルの比較はGrok 4.6 vs GPT-5.6 vs Claude Fable 5の比較を参照してください。
GLM-5.3をAPIではなくローカルで実行できますか?
リリース時点ではまだできません。Zhipuは、2026年8月28日頃にHugging Faceの組織でオープンウェイトを公開すると述べています。
GLM-5ファミリーは7440億パラメータのMoE設計であるため、セルフホスティングはラップトップ向けではなくサーバークラスの運用を前提に検討してください。まずホスト型APIでベースラインを取得するのが実践的です。
GLM-5.3をスタックへ組み込む手順
GLM-5.3を評価する最短ルートは、アプリケーションコードを書く前にAPIリクエストを固定することです。
- Z.aiまたはBigmodel.cnでAPIキーを作成する
- cURLで認証とモデルIDを確認する
- OpenAI SDKのベースURLをZ.aiのURLへ変更する
-
GLM_MODELを環境変数で管理する - 実プロンプトで
thinkingの有効・無効を比較する -
usage、レイテンシ、出力品質を記録する - Apidogをダウンロードし、国際版・中国本土版の環境を分けて保存する
- 成功したリクエストをフィクスチャと回帰テストへ変換する
OpenAI互換であるため、難しい部分はSDK移植ではありません。モデルID、地域別エンドポイント、トークン消費、推論モードによる品質とレイテンシのトレードオフを、実プロンプトで早期に確認することが重要です。

Top comments (0)