はじめに
GLM 5.3 は Z.ai のフルサイズの長文脈モデルで、ここでは /v1/chat/completions の OpenAI 互換エンドポイント 1 本として提供しています。最大 256 メッセージ、合計 1,048,576 トークンまでを読み、最大 131,072 トークンで答えるので、資料一式とそこから導く論証が同じ呼び出しに収まります。
推論の強さは low・high・max で、既定はすでに max です。temperature(0〜1)と top_p を受け付け、response_format で JSON を返し、最大 128 個のツールを宣言できます。メッセージの内容はテキストのみで、返答は Server-Sent Events でストリーミングされます。
主な機能とハイライト
資料と推論を 1 回の呼び出しで
長い枠は話の半分にすぎません。残りの半分は、その長さで推論の連鎖が崩れずにいられるかどうかです。基本契約と変更契約、あるいは仕様とそれを実装したコードを読み込ませ、何百ページも離れた箇所を根拠にした結論を求めてください。
トークンに見合う最上段
low・high・max の差が出るのは、複数のことが同時に正しくなければならない答えです。一緒に現れることのない 3 つの段落に基づく推論や、別の場所で決められた不変条件を守らなければならない変更などです。max はそうした場面に取っておき、機械的なパスには low を使います。
結論だけでなく論証の余地も
1 回の返答は最大 131,072 トークンで、結論、退けた代替案、決め手となる引用まで収まります。誰かが後で確認する必要があるなら、論証を明示的に求めてください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 順序付きのターンを最大 256 件、内容はテキストのみです。資料は 1 つの user メッセージに、問いと出力形式は system メッセージに置いてください。 1 件以上 · 256 件以内 |
reasoning_effort | いいえ | low / high / max。Z.ai 自身の API と同じく既定は max で、複数の事実を同時に正しく組み合わせる必要がある答えのための段です。 |
stop | いいえ | 停止シーケンスは 1 件だけで、文字列か要素 1 つの配列で指定します(Z.ai が読むのは 1 件のみです)。モデルがそれを書いた時点で応答が終わり、一致した文字列は返されません。 1 文字以上 · 1 件以上 · 1 件以内 |
max_tokens | いいえ | 返答を 131,072 で抑えます。既定は 32,768 です。 |
seed | いいえ | 任意の整数です。ほかが同じリクエストで同じ seed を使うと応答がほぼ再現されるため、1 か所ずつ変えて公平に比べられます。 |
temperature | いいえ | 0〜1、既定 1。返答をコードが解析する場合は 0 に保ってください。 |
top_p | いいえ | 0.01〜1、既定 0.95。同じ比較の中で、これと temperature を同時に動かさないでください。 |
tools | いいえ | 1 リクエストにつき最大 128 個の関数定義。 128 件以内 |
parallel_tool_calls | いいえ | true か false で、既定値は true です。true ではモデルが 1 ターンで複数のツール呼び出しを要求できます。 デフォルト値: |
tool_choice | いいえ | auto / none / required、または呼ぶ関数を名指しするオブジェクト。 |
response_format | いいえ | JSON オブジェクトを要求し、キーはすべて system メッセージで名指ししてください。 |
料金
入力 $1.05 / 出力 $3.30 100 万トークンあたり
ユースケース
4 つの文書と 1 つの問い
基本契約と 3 本の変更契約を 1 リクエストに入れ、いまどの条項が互いに矛盾しているかを尋ねます。答えは遠く離れた 2 つの箇所にかかっていて、検索の層がまさに失敗する場面です。検索は問いに関係ありそうなものを拾っても、食い違う組み合わせは拾いません。
あらゆる記録を突き合わせる障害レビュー
アラートの時系列、デプロイログ、設定の差分、当番の記録を同じ呼び出しに入れ、因果の連鎖を求めます。各つながりの根拠と、退けた仮説も添えさせます。
呼び出しが実際の処理になるエージェントのバックエンド
返金、権限変更、チケットのエスカレーションなど最大 128 個の関数を宣言し、判断は tool_choice に任せます。呼び出しが実際の処理を起こす場面では、何も呼ばない判断も呼び出しそのものと同じくらい重要です。
プロンプトガイドと実践のヒント
要約ではなく記録をまるごと入れる
資料は 1 つの user メッセージに古い順で入れ、system メッセージは問い、出力形式、求める根拠の水準のために空けておきます。
結論だけでなく、論証を求める
POST https://api.spicyapi.ai/v1/chat/completions に {"model": "zai/glm-5.3", "messages": [{"role": "system", "content": "For every conflict, name both passages, quote one sentence from each, and say which one governs."}, {"role": "user", "content": "<the master agreement and its amendments>"}], "reasoning_effort": "max", "max_tokens": 32000, "temperature": 0} を送ります。temperature を 0 にすると、同じ文書での再実行をそのまま比較できます。
タイムアウトと予算を見込む
呼び出しは同期で、枠いっぱいを max で処理すると返答まで数分かかることがあります。このリクエストに合わせてクライアントのタイムアウトを設定するか、ストリーミングで受け取ってください。max_tokens の既定値は 32,768、上限は 131,072 です。画像とファイルのパートは受け付けず、JSON の response_format を使っても解析はアプリ側で必要です。
API クイックスタート
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "zai/glm-5.3/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。







