Grok 4.7 APIの使い方:複数ターンの推論情報を保持する
Grok 4.7の正確なモデルIDでResponses APIを呼び出し、会話を続ける際に暗号化された推論情報を保持する手順を解説します。
自分のアプリからGrok 4.7を呼び出す場合は、xAI APIでgrok-4.7を指定します。連携時の重要な変更点はモデル名だけではありません。Responsesが返す暗号化された推論項目を、会話履歴を送り直す際にもそのまま保持する必要があります。
この記事は2026年9月22日に確認した公式API資料に基づきます。例はリクエストの組み立て方を示すもので、有料の本番環境での実測や性能ベンチマークの報告ではありません。
最小限のResponsesリクエストから始める
公式クイックスタートに従って開発者用キーを作り、アカウントに必要な残高があることを確認して、ローカルの環境変数XAI_API_KEYに設定します。キーをブラウザー側のコードやGitにコミットする設定ファイルへ入れないでください。
curl https://api.x.ai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4.7",
"input": "Explain why Python list.sort() returns None."
}'
このエンドポイントとモデルIDは公式モデルガイドに記載されています。まず小さなリクエストを送ると、ツール、大きなファイル、エージェントフレームワークを追加する前に、アカウントやプロトコルの問題を切り分けられます。
HTTPの成功応答は確認項目の1つにすぎません。期待した回答と使用量の情報が含まれているかを確認し、回答の内容も検証してください。有効なAPI応答が、推論の正しさまで保証するわけではありません。
Pythonで応答項目を完全に保持する
Responsesに対応するバージョンのOpenAI SDKをインストールし、そのバージョンをテストログに記録します。たとえばpython -m pip show openaiでパッケージのバージョンを確認できます。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["XAI_API_KEY"],
base_url="https://api.x.ai/v1",
)
history = [{
"role": "user",
"content": "Explain why Python list.sort() returns None.",
}]
first = client.responses.create(model="grok-4.7", input=history)
print(first.output_text)
# Preserve all items, including encrypted reasoning.
history.extend(item.model_dump(exclude_none=True) for item in first.output)
history.append({
"role": "user",
"content": "Show a version that sorts without mutating the input.",
})
second = client.responses.create(model="grok-4.7", input=history)
print(second.output_text)
次のターンの履歴を保存するとき、first.outputを表示用の回答テキストだけに置き換えないでください。プロバイダーによると、Grok 4.7は明示的なinclude指定がなくてもreasoning.encrypted_contentを自動的に含めます。推論項目はそのまま保持し、暗号化フィールドの復号や書き換えは行わないでください。
この例では、クライアントが履歴を明示的に送信しています。フレームワークへ組み込む場合は、何を保持して転送しているか確認します。互換ラッパーがプロバイダー固有のフィールドをすべて保持すると決めつけないでください。
Chat Completionsは別の形式として扱う
Responsesの暗号化推論への対応として、Responsesの出力オブジェクトをChat Completionsのmessages配列に入れるべきではありません。呼び出すエンドポイントのスキーマを使ってください。既存アプリがChat Completionsを使っている場合は、まず新モデルでその経路を試し、プロトコルの移行が必要かを判断します。
可能なら、エンドポイントの移行とモデルの評価を別々に行ってください。同時に変更すると、失敗の原因がアダプター、会話履歴、モデルのどこにあるか判断しにくくなります。
推論とキャッシュの設定を記録する
推論設定はlow、medium、high、xhighに対応し、既定値はhighです。評価時には設定を記録してください。高い設定を選んでも、タスク完了までの費用が下がるとは限りません。
キャッシュについては、公式ガイドが会話のルーティングを改善するために、Responsesのprompt_cache_keyまたはChat Completionsのx-grok-conv-idヘッダーを推奨しています。ただし、キャッシュ使用量は実際に確認する必要があります。ルーティングを設定しただけでは、キャッシュ入力単価が適用された証拠にはなりません。
失敗した箇所を切り分ける
| 症状 | 最初に確認する情報 |
|---|---|
| 認証に失敗する | 有効なプロバイダー、キーの取得元、機密情報を除いたHTTPエラー |
| モデルが拒否される | 正確なgrok-4.7のIDとプロバイダーのモデル一覧 |
| 最初のターンは成功するが、続きで失敗する | 保持した出力項目とエンドポイントのスキーマ |
| エージェントの費用が予想以上に増える | 全リクエストの流れ、推論、再試行、キャッシュ使用量 |
| エディターにはFastがあるのにAPI呼び出しが失敗する | 製品の違い。Fastは公開APIの別モデルではない |
これは原因を調べるための分類であり、再現したエラーメッセージの一覧ではありません。複数の設定を一度に変える前に、実際のリクエストIDとエラーを記録してください。
長いタスクを動かす前に、Grok 4.7の費用を確認してください。連携コードを書く代わりに既存クライアントを使いたい場合は、利用先ガイドでCursor、Grok Build、APIアカウントの違いを説明しています。
よくある質問
- Grok 4.7のAPIモデルIDは何ですか?
- xAIの公開APIではgrok-4.7を使います。ゲートウェイではIDが異なる場合があります。
- Responsesの呼び出し間で暗号化された推論情報を捨ててもよいですか?
- いいえ。プロバイダーは、以降の入力に推論項目を変更せず返すよう指示しています。


