3行でいうと
- 最初の1回は、通常のAPI(
glm-5.3を指定)を curl か Python で呼ぶ形が、公式の Quick Start にあります。Coding Plan のキーでは、この通常の接続先は使いません。 - コーディングの依頼は、公式の Coding Plan Quick Start に3つの例文があります。公式の「Best Practice」は、目的・文脈・制約・完了条件の4点で依頼を組む、と書いています。
- 画像を読ませるには、Vision MCP を使います。公式の Vision MCP のページは、画像を入力欄に直接貼ると、このサーバーを通らずクライアントがモデルに直接送ることがある、と書いています(Claude Code だけは例外、という書き方に読めます。原文で確かめてください)。画像はファイルに保存して、名前かパスで指定する形です。
- 使用量は、公式が課金のページ(Charge Type)を案内しています。5時間の枠と週の枠があります(数字は04)。
- チャット(chat.z.ai)の操作は、公式の資料では確認できていないため、この記事では手順を書きません。
この記事は、公式の資料を2026年10月25日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。運営者は GLM を入れていますが、使い心地はこの記事には書いていません。「返ってくるもの」は、公式が書いている範囲です。実際の文面や速さは、この記事では確かめていません。公式の例は要約を経由して読んでいるので、実行前に公式ページの原文と見比べてください。画面の表記は変わるので、手元の画面と照らして読んでください。
先に結論
- 通常のAPIの接続先と Coding Plan の接続先は別。 手順1〜3は通常のAPIとStandard API Key の前提、手順4〜8は Coding Plan のツールの前提です。混ぜると、枠が使えなかったり、残高から引かれたりします(05)。
- 公式の例文は短い。 Coding Plan の例は「React のログインフォームの部品を作って」のような一文です。公式の Best Practice は、これを「目的、文脈、制約、完了条件」の4点に組む形を示しています。
- MCP は、頼み方も公式に例がある。 Web Search、Web Reader、Zread、Vision それぞれに、公式の使用例があります。
- 何が返るかは、公式が細かく書いていない。 応答の項目は、公式の HTTP のページでは
choices[0].message.contentしか示されていません。ほかは API リファレンスで確かめてください。
前提:用語をそろえる
- プロンプト(指示文):AIに渡す依頼の文。
- システムメッセージ/ユーザーメッセージ:API で渡す2種類の役割。システムは前提、ユーザーは頼みごと。
- ストリーミング:答えを少しずつ受け取る形。
"stream": trueで指定します。 - 推論(thinking):答える前に考える機能。出力に
reasoning_contentとして分かれて出る、と公式の OpenAI SDK のページにあります。 - 関数呼び出し(function calling):AIが、あなたのプログラムの関数を呼ぶよう頼む仕組み。
- セッション:コーディング用ツールでの、ひと続きの作業の単位。
たとえ話:口頭の依頼とチケット
短い依頼(「ログインフォームを作って」)は口頭の頼みごと、4点そろえた依頼は、目的・材料・条件・完成の基準を書いたチケットです。公式の Best Practice は、依頼を4つの部分で組む形を示しています。これは僕らのたとえで、公式の表現ではありません。
場面1:APIを1回呼ぶ(curl)
前提: 05の手順2で Standard API Key を作ってあること。ターミナルを開く。
- キーを
YOUR_API_KEYの場所に入れて、次を実行する。これは公式の Quick Start の例の写しです(要約を経由しているため、原文と見比べてください)。
curl -X POST "https://api.z.ai/api/paas/v4/chat/completions" \
-H "Content-Type: application/json" \
-H "Accept-Language: en-US,en" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "glm-5.3",
"messages": [
{
"role": "system",
"content": "You are a helpful AI assistant."
},
{
"role": "user",
"content": "Hello, please introduce yourself."
}
]
}'
-
返ってくるもの。 JSON が返ります。公式の HTTP のページは、応答の項目を説明しておらず、プログラムが読む場所として
choices[0].message.contentだけを示しています。答えの文章は、ここに入ります。 -
よくある止まり方。
- 認証のエラー:キーの種類と接続先が合っているか(Coding Plan のキーを通常の接続先に使っていないか)。
- 公式の HTTP のページは、エラーコードの一覧を載せていません。非200の応答は失敗として扱い、指数的に間隔を空けて再試行する、という方針だけが書かれています。
ストリーミング(答えを少しずつ)。 上の本文に "stream": true を足す形が、公式の HTTP のページにあります。
curl --location 'https://api.z.ai/api/paas/v4/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Accept-Language: en-US,en' \
--header 'Content-Type: application/json' \
--data '{
"model": "glm-5.3",
"messages": [
{"role": "user", "content": "Write a poem about spring"}
],
"stream": true
}'
温度などの数値。 公式の HTTP のページの例には "temperature": 1.0 と "max_tokens": 1024 があります。一方、OpenAI SDK のページは、temperature の範囲を (0, 1)、初期値を 0.6 と書いています(02でも触れた食い違い)。どちらが GLM-5.3 に当たるかは、公式が整理していません。
場面2:Python から呼ぶ(公式のSDKとOpenAI SDK)
公式のSDK(zai-sdk)
- インストール(公式の表記):
pip install zai-sdk
- 確かめる:
import zai
print(zai.__version__)
- 呼ぶ(公式の例の写し):
from zai import ZaiClient
client = ZaiClient(api_key="YOUR_API_KEY")
response = client.chat.completions.create(
model="glm-5.3",
messages=[
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Hello, please introduce yourself."}
]
)
print(response.choices[0].message.content)
返ってくるもの。 答えの文章が表示されます。バージョンは、公式の例で pip install zai-sdk==0.2.3 のように版を指定する形も出ます。同じページの Java SDK の例は 0.3.5 で、版の数字はそろっていません。入れる前に、公式のリリースで最新の版を確かめてください。
OpenAI の SDK で呼ぶ
公式の「OpenAI Python SDK」のページの内容です。
pip install --upgrade 'openai>=1.0'- キーを環境変数(公式は
ZAI_API_KEYという名前を例にしている)に入れる。 base_urlを Z.AI のものに差し替える。
下は、この記事で組んだ例です(公式の記載に合わせたもの。動作は確かめていません)。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("ZAI_API_KEY"),
base_url="https://api.z.ai/api/paas/v4/",
)
completion = client.chat.completions.create(
model="glm-5.3",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Write a short fairy tale."},
],
)
print(completion.choices[0].message.content)
- 公式は、キーを環境変数に入れる形を例にしています(変数名の例は
ZAI_API_KEY)。上のコードのように、api_keyには値を明示的に渡しています。 - 公式のページは、OpenAI との違いとして、
base_urlを差し替える必要があること、temperature が 0 は使えないこと、thinkingはextra_bodyで渡すこと、を挙げています。そのほかの違いも「ある」と書いていますが、一覧はありません。
推論の出力を見る。 公式のページに、extra_body={"thinking": {"type": "enabled"}} を渡し、ストリームの delta.reasoning_content(考えの経過)と delta.content(答え)を分けて読む例があります。このページの推論の節は GLM-4.6 の話として書かれているため、GLM-5.3 でそのまま当てはまるかは確認できていません。02で触れたとおり、GLM-5.3 のページは「考える機能は常にオンで、オフにできない」と書いています。
場面3:関数を呼ばせる(関数呼び出し)
公式の流れは4段階です(02)。ツール(関数名、説明、引数の形)を送る、モデルが呼び出しを返す、あなたのプログラムが実行して結果を返す、最終の答えを得る。次は、この記事で組んだ最小の例です(公式の記載に合わせたもの。動作は確かめていません)。
import json
def get_weather(location: str) -> str:
return f"Weather in {location}: Sunny, 25C" # ここは本物の取得に置き換える
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather information for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "e.g. Beijing, Shanghai"}
},
"required": ["location"],
},
},
}]
response = client.chat.completions.create(
model="glm-5.3",
messages=[{"role": "user", "content": "How's the weather in Beijing today?"}],
tools=tools,
tool_choice="auto",
)
message = response.choices[0].message
for tool_call in message.tool_calls or []:
if tool_call.function.name == "get_weather":
args = json.loads(tool_call.function.arguments)
print(get_weather(args["location"]))
tool_choiceは、公式のこのページの例がautoだけで、ほかの値の説明は見つかりませんでした(02も参照)。- この例は「呼び出しの依頼を受け取る」ところまでです。結果をモデルに戻して最終の答えを作らせる手順は、公式の Function Calling のページで確かめてください(このページは、02のときに読んだ内容にとどまり、今回は読み直していません)。
場面4:Claude Code で最初の依頼をする(Coding Plan)
前提: 05の手順5〜8が終わり、claude が起動して、GLM のモデルが応答する状態。
- ターミナルで、作業するフォルダに移って
claudeを起動する。 - 入力欄に依頼を書いて送る。公式の Coding Plan Quick Start が示す例文は次の3つです(公式の例)。
Please create a React component containing a user login form
My API request returns a 404 error. Please help me check the code.
This function performs poorly. Please optimize it for me.
- 何が起きるか(公式の記載の範囲)。 公式は、自然言語でのプログラミング、デバッグと修正、最適化に使える、と書いています。ツールがファイルを読み書きするときの許可の画面は、Claude Code 側の動きで、Z.ai のページには書かれていません。05の手順8に、起動時に「Do you want to use this API key」と聞かれたら Yes を選ぶ、という公式の記載があります。
- 考える強さは、セッションの中で
/effortで選びます。公式は、初期値がmaxで、これをコーディングの作業に recommended と書いています(「How to Switch Models」ページ)。強さを下げると、考える量を減らせる、と読めますが、使用量との関係は、公式が数字で書いていません。
場面5:頼み方を整える(公式の Best Practice)
公式の「Practical Usage Advice for Coding Agents」(devpack の resources)の内容を、順に並べます。ツール固有のコマンドは、このページにはありません。
- 依頼を4点で組む。 目的(何を作る・直す)、文脈(関係するファイル、エラー)、制約(規約、依存の制限)、完了条件(テストが通る、など)。
- この記事で組んだ例。 公式の例を写さず、この記事で作った文です(動作は確かめていません)。
billing/service.py の二重請求のバグを直してください。再試行のときに IntegrityError が出ます。公開APIは変えず、依存も増やさないでください。tests/test_billing.py が通り、再試行のテストが1つ増えたら完了です。
- 先に計画を出させる。 複雑な作業では、実装の前に、変更するファイルの一覧と手順を出させ、確認してから進める(公式の説明)。
- 一回限りの指示と、長く使うルールを分ける。 一時的な指示はプロンプトに、繰り返す規則(ディレクトリ構成、ビルドとテストのコマンド、コーディング規約)は、プロジェクトの設定ファイルに書く(公式の趣旨)。
- 最後まで回す。 実装、テストの追加、テストの実行、lint などの確認、差分の見直し(公式の5段階)。
- セッションを分ける。 作業ごとに別のセッション、脇道の調査は新しいセッション、長いセッションは要約や圧縮で文脈を空ける(公式の説明)。
- 繰り返す手順は Skills にする。 公式は PR レビュー、ログ解析、リリースノートなどを例に挙げ、安定したものは定期実行やイベントでの起動に回せる、と書いています。Skills の作り方は、このページには書かれていません。
場面6:画像を読ませる(Vision MCP)
前提: 08の手順で Vision MCP を設定済みであること(Node.js 22 以上、Coding Plan のキー)。
- 読ませたい画像(スクリーンショットなど)を、作業フォルダに保存する。例:
demo.png。 - Claude Code で、ファイル名を入れて頼む。公式の使用例は次のとおりです。
What does demo.png describe?
- 何が起きるか。 公式は、Vision MCP が8つのツール(
ui_to_artifact、extract_text_from_screenshot、diagnose_error_screenshot、understand_technical_diagram、analyze_data_visualization、ui_diff_check、image_analysis、video_analysis)を持つ、と書いています。どのツールを呼ぶかは、依頼の内容でツール側が選ぶ形と読めますが、公式がその選ばれ方を説明しているかは、確認できていません。 - やってはいけない形。 画像を入力欄に直接貼ると、Vision MCP を通らず、クライアントがモデルに直接送ることがある、と公式のページは書いています。Claude Code は例外、という書き方に読めますが、原文で確かめてください。
- 動画は、8MB 以下の MP4、MOV、M4V を、ローカルかURLで渡せる、と書かれています。
この記事の例(動作は確かめていません):
error.png のエラーの原因を説明して、直し方の案を3つ出してください。
場面7:最新の情報を調べる(Web Search/Web Reader/Zread)
前提: 08の手順で、各MCPを設定済みであること(Coding Plan のキー)。
| 目的 | 公式の使用例(短い抜き出し) | ツール名 |
|---|---|---|
| ウェブで探す | 「Help me search for the latest AI technology developments」 | webSearchPrime |
| ページを読む | 「Read this docs page and summarize the parameters…」の趣旨 | webReader |
| GitHub の公開リポジトリを読む | 公式は、使う場面(ライブラリの学習、問題の調査、ソースの読解、依存の評価)を挙げる | search_doc、get_repo_structure、read_file |
- Web Search は、ページの題名、URL、要約、サイト名、アイコンを返す、と書かれています。
- Web Reader は、指定した URL の題名、本文、メタデータ、リンクの一覧を返す、と書かれています。
- Zread は、公開(オープンソース)のリポジトリが対象で、zread.ai が対応しているものに限る、と読める記載があります。
- どの MCP も、パラメータの一覧は、公式のページに書かれていません。クライアントに表示されるツールの説明で確かめてください。
- 使える回数は、各ページに数字がありません。消費の数え方は、04(1回あたり 1.2 credits)。
場面8:使用量を見る
- 課金のページ(
https://z.ai/manage-apikey/billing)の「Charge Type」を開く。公式の概要ページは、ここに、価格の種類ごとのトークン数と、ツールの呼び出し回数が出る、と書いています。 - 枠の進み具合は、公式のFAQが「subscription page(購読のページ)」で見る、と書いています。
- 5時間の枠は、使ってから5時間後に戻り、週の枠は、購入から7日ごとにリセットされます(04と同じ記載)。
- 枠が尽きたら、次の周期を待ちます。プラン外の API 呼び出しはできない、と FAQ にあります。
「Charge Type」と「subscription page」の画面の見た目と、メニューの階層は、公式で確認できていません。手元の画面と照らしてください。
場面9:チャット(chat.z.ai)で使う
公式の資料では、チャットの画面の操作手順、ログイン画面、無料の回数が確認できていません(05の手順10)。確認できたのは、入口ページの説明文に、ウェブサイトの作成、コードを書くこと、長い作業、すぐに答えを得ることが挙がっていることだけです。この記事は、ここに手順を作りません。
場面10:Coding Plan でのモデルの切り替え
公式の「How to Switch Models」は、Claude Code では settings.json の env を書き換える形、Cline では設定画面でモデルを選び直す形を示しています。05の手順6を参照してください。公式は、切り替えは「カスタムモデルの設定を許すツール」でだけ効く、と書いています。切り替えの前に、いまのモデルで基本の呼び出しが通ることを確かめるよう、案内されています。
最初の1時間でやる順番(この記事の案)
ここは公式の説明ではなく、この記事の案です。
| 分 | やること | 根拠となる節 |
|---|---|---|
| 0〜10 | 05の手順1〜3で、アカウントと、使う入口のキーを作る。キーの種類を表で確かめる | 05 |
| 10〜20 | 通常のAPIなら場面1。Coding Plan なら05の手順5〜8 | 場面1、05 |
| 20〜30 | 公式の短い例文(場面4)を1つ送り、返事が来るか確かめる | 場面4 |
| 30〜45 | 4点で組んだ依頼(場面5)を、小さな修正に使う。先に計画を出させる | 場面5 |
| 45〜55 | MCP を1つだけ足す(08)。画像か、検索か | 場面6、7 |
| 55〜60 | 課金のページで、使用量の表示を見る | 場面8 |
つまずき
| 症状 | 公式が書く確認点 |
|---|---|
| 呼べるのに答えが空に近い、または形式が違う | 公式の HTTP のページは応答の項目を説明していない。API リファレンスで確かめる |
| 画像の依頼で Vision MCP が動かない | 画像を貼らずに、ファイルのパスや名前を書く。Node.js は 22 以上、Vision MCP は 0.1.2 以上(@z_ai/mcp-server@latest の利用も案内されている) |
| MCP のエラー「Invalid API key」 | キーの写し、キーが有効か、残高、Z_AI_MODE がキーの出どころに合っているか(Vision MCP のページ) |
| 「Connection closed」(Vision MCP) | Node.js 22 以上か、node -v、npx -v、Z_AI_API_KEY が正しいか |
| 検索が空 | キーワードを変える、具体性を下げる、接続を確かめる(Web Search のページ) |
| ページが取れない(Web Reader) | URL が届くか。サイトによっては取得を拒む、と書かれている |
| リポジトリが読めない(Zread) | リポジトリがあるか、公開か、owner/repo の綴り、zread.ai の対応(Zread のページ) |
気をつけること
- この記事は、実際に使って確かめた記録ではありません。運営者は GLM を入れていますが、使い心地はこの記事には書いていません。性能、速さ、答えの質は、この記事では確かめていません。
- 例のコードのうち「この記事で組んだ例」は、公式の記載に合わせて書いたもので、動作は確かめていません。「公式の例の写し」も、要約を経由して読んだものなので、原文と見比べてください。
- 例文に、実在の人の名前や、秘密の情報を入れないでください。入力の扱い(個人向けとAPIの違い)は04にあります。
- 画像のファイルや動画は、作業フォルダに置いたものが読まれ、MCP の種類によっては Z.ai のサーバーを経由します(08)。
- 公式の HTTP のページと OpenAI SDK のページで、temperature の初期値などが違います。公式の API リファレンスで確かめてください。
- レート制限のページは、取得できた内容に説明が含まれていませんでした。同時接続の数などは、書けません。
出典
- Quick Start(Z.AI Developer Document、Z.ai、2026-10-25確認)
- HTTP API(Z.AI Developer Document、Z.ai、2026-10-25確認)
- OpenAI Python SDK(Z.AI Developer Document、Z.ai、2026-10-25確認)
- GLM Coding Plan Quick Start(Z.AI Developer Document、Z.ai、2026-10-25確認)
- Practical Usage Advice for Coding Agents(GLM Coding Plan、Z.ai、2026-10-25確認)
- How to Switch Models(GLM Coding Plan、Z.ai、2026-10-25確認)
- GLM Coding Plan Overview(Z.ai、2026-10-25確認)
- FAQ(GLM Coding Plan、Z.ai、2026-10-25確認)
- Vision MCP Server(GLM Coding Plan、Z.ai、2026-10-25確認)
- Web Search MCP Server(GLM Coding Plan、Z.ai、2026-10-25確認)
- Web Reader MCP Server(GLM Coding Plan、Z.ai、2026-10-25確認)
- Zread MCP Server(GLM Coding Plan、Z.ai、2026-10-25確認)
- Claude Code の設定(GLM Coding Plan、Z.ai、2026-10-25確認)