Amazon BedrockにおけるGrokの導入
サマリー
xAIのGrok 4.3がAmazon Bedrockで一般提供され、長い入力に対する信頼性のある推論を実現します。設定可能な推論努力やツール呼び出し、画像理解などの機能を持ち、企業向けのワークロードに最適です。Grok 4.3は、OpenAI SDKを介してアクセス可能で、様々なユースケースに対応します。
本文
この投稿は、xAIのEric Jiangと共同執筆されています。
xAIのGrok 4.3がAmazon Bedrockで一般提供され、エージェントやAIワークフローを構築するチームに対して、長い入力に対して信頼性のある推論を行うモデルを提供します。このリリースにより、xAIはモデルプロバイダーとしてAmazon Bedrockに参加します。Grok 4.3は、設定可能な推論努力を持つモデルで、エージェント構築のための強力なツール使用と指示のフォローを提供し、高ボリュームの推論に対してトークン効率を実現します。テキストと画像の入力を受け付け、長文やマルチターンセッションのための100万トークンのコンテキストウィンドウを持っています。このモデルは、Amazon Bedrockの次世代推論エンジンであるMantle上で動作します。
この投稿では、Grok 4.3がエージェントおよび企業のワークロードに適している理由、Amazon Bedrockを通じてのアクセス方法、基本的なチャットリクエスト、設定可能な推論努力、ツール呼び出し、構造化出力、画像入力、状態を持つマルチターン会話など、ほとんどのチームが最初に利用する機能の使い方について説明します。
Grok 4.3は、精度が重要な企業の作業向けに構築されており、xAIはモデルのリリース時に独自のベンチマークで様々な業界基準を上回ると報告しています。Grok 4.3は、最前線のモデルの中で最も低い幻覚率を持つArtificial Analysis Omniscienceベンチマークで1位にランクインし、顧客サポートシナリオでのツール呼び出しに関してはArtificial Analysis Tau2 Telecomベンチマークで1位、文書理解に関してはVals AI Case LawおよびCorporate Financeベンチマークで1位にランクインしています。xAIはまた、このモデルをコスト対知性のパレートフロンティアに位置付けており、他の最前線モデルに対して1ドルあたり2〜10倍の知性を提供すると説明しています。
Grok 4.3を使用すると、各リクエストごとに推論の努力レベルを制御できます。努力レベル(なし、低、中、高)をリクエストごとに設定し、1つのモデルで幅広い作業を処理できます。分類呼び出しは、レイテンシを低く保つために努力なしで実行できます。契約分析やケース法のタスクは、応答時間よりも深さが重要な場合に高い努力で実行できます。Grok 4.3はテキストと画像の入力を受け入れ、テキストを返し、100万トークンのコンテキストウィンドウは長文や拡張されたマルチターンセッションに対応します。このモデルはツール呼び出しと指示のフォローをうまく処理し、アクションを取るために機能呼び出しに依存するエージェントにとって実用的です。これらの特性は、契約レビュー、信用契約分析、金融文書の質問応答などのユースケースに合致しています。これらのケースでは、モデルは長い入力を推論し、その後記録システムに呼び出します。
Grok 4.3はMantle上で動作し、アクセス方法はAmazon Bedrock Runtime APIを使用するモデルとは異なります。MantleはOpenAI互換のAPIを使用します。Grok 4.3を呼び出すには、OpenAI SDKを使用するか、Chat Completions APIまたはResponses APIへの直接HTTPSリクエストを介して行います。
MantleエンドポイントのURLはリージョン固有で、次のパターンに従います:
例えば、us-west-2では基本URLはhttps://bedrock-mantle.us-west-2.api.aws/openai/v1です。Responses APIのURLルートは、Mantleエンドポイント(/openai/v1/)とRuntimeエンドポイント(/v1/responses)でわずかに異なります。
Grok 4.3を使用する際は、コンテキストウィンドウが100万トークンであることに注意し、デフォルトが標準のOpenAI仕様から3つの点で異なることを理解してください:
- temperatureは1ではなく0.7がデフォルトです。
- top_pは1ではなく0.95がデフォルトです。
- max_completion_tokensは131072がデフォルトです。
アプリケーションが異なる動作を必要とする場合は、これらを明示的に設定してください。
Mantleエンドポイントに対して認証し、最初のリクエストを実行する方法は2つあります。どちらも同じOpenAI SDKで機能します。プロダクション環境では、IAM資格情報から生成された短期ベアラートークンを推奨します。これにより、自動的に期限切れになり、アクセスがIAMアイデンティティに結びつきます。迅速な探索と開始のためには、長期のAmazon Bedrock APIキーを使用します。長期キーはプロダクションアプリケーションに埋め込むのではなく、その目的に制限してください。
以下の例は、長期のAmazon Bedrock APIキーを使用してモデルにアクセスする方法を示しています。これは探索専用の資格情報として扱ってください。Amazon Bedrockコンソールから生成し、次にOpenAI SDKをインストールします:
```python
pip install openai
```
クライアントをリージョナルMantleエンドポイントに向け、APIキーで認証します。モデルIDはxai.grok-4.3です:
```python
from openai import OpenAI
client = OpenAI(
api_key="",
base_url="https://bedrock-mantle.us-west-2.api.aws/openai/v1",
)
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[
{"role": "user", "content": "In one sentence, what is Amazon Bedrock?"}
],
)
print(response.choices[0].message.content)
```
Amazon Bedrockをより高いセキュリティ要件を持つアプリケーションに組み込む準備ができたら、短期資格情報を使用することをお勧めします。Amazon Bedrockトークンジェネレーターを使用して、リクエスト時に既存のAWS資格情報から短期ベアラートークンを生成できます。これにより、認証がIAMアイデンティティに結びつき、長期の秘密を避けることができます。始めるには、aws-bedrock-token-generatorパッケージをインストールします:
```python
pip install aws-bedrock-token-generator
```
次に、以下のようにコード内でaws_bedrock_token_generatorライブラリのprovide_token関数を使用します:
```python
from aws_bedrock_token_generator import provide_token
from openai import OpenAI
client = OpenAI(
api_key=provide_token(region="us-west-2"),
base_url="https://bedrock-mantle.us-west-2.api.aws/openai/v1",
)
```
推論出力を設定することで、Responses APIの推論パラメータを通じてモデルがどれだけの推論努力を費やすかを制御できます。努力レベルは、なし(推論を無効にする)、低(デフォルト)、中、高の4つです。高い努力は、迅速な回答が間違っている場合に役立ちますが、出力トークンが増えるコストがあります。
Chat Completions APIは推論トレースを返しません。モデルの推論をターン間で利用可能にしたい場合は、Responses APIを使用してください。デフォルトの状態を持つパターンでは、store=Trueを設定し、前の応答IDで呼び出しを連鎖させることで、サービスは各ターンの推論を保持し、自動的にフィードバックしますので、管理する必要はありません。暗号化された推論は、ステートレスな場合に使用されます。store=Falseを設定した場合(例えば、ワークロードがターンをサーバー側で保持しない必要がある場合)、推論をinclude=["reasoning.encrypted_content"]でリクエストし、次のリクエストの入力に戻してモデルに自身の以前の推論をコンテキストとして提供します。
この例は、高い努力で古典的なトリック質問を実行します:
```python
response = client.responses.create(
model="xai.grok-4.3",
reasoning={"effort": "high"}, # none, low, medium, or high
include=["reasoning.encrypted_content"],
max_output_tokens=4096,
input=(
"A bat and ball cost $1.10. The bat costs $1 more than the ball. "
"How much is the ball? Answer with just the number."
),
)
print(response.output_text)
print(response.usage.output_tokens_details.reasoning_tokens)
```
モデルは代数を解決し、直感的な間違った答えである$0.10に手を伸ばすのではなく、推論トークンを内部で消費したことをusageブロックが報告します。努力をなしにすると、同じフィールドは0の推論トークンを報告し、これはシンプルでレイテンシに敏感な呼び出しに対して目指す設定です:
```python
response = client.responses.create(
model="xai.grok-4.3",
reasoning={"effort": "none"},
max_output_tokens=2048,
input="Say OK.",
)
print(response.output_text) # OK.
```
実用的なパターンは、分類、抽出、短い事実確認をなしまたは低で実行し、計画ステップ、数学、そして単一の早期の間違いが全体のタスクを台無しにする場合には高を予約することです。
Grok 4.3でツールを呼び出す
ツール呼び出しはエージェントワークロードの中心であり、Grok 4.3は同じOpenAI互換のインターフェースを通じてそれをサポートします。利用可能なツールを説明し、モデルがいつ呼び出すかを決定し、コードが実行しフィードバックする構造化されたリクエストを返します。Grok 4.3は標準のOpenAIツール呼び出し形状に従い、各ツールをそのパラメータのJSONスキーマで定義します。
以下の例は、単一のget_weatherツールを提供し、それをトリガーする質問をします:
```python
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}
]
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[{"role": "user", "content": "What's the weather in Sydney? Use the tool."}],
tools=tools,
tool_choice="auto", # let the model decide whether to call a tool
)
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)
# get_weather {"city":"Sydney"}
```
モデルは質問から都市を解析し、スキーマに一致する有効な引数オブジェクトを生成しました。ここから、コード内で関数を実行し、結果を追加したツールロールメッセージを付けてモデルを再度呼び出し、データを自然言語の返信に折り込むことができます。これはGrok 4.3上のマルチステップエージェントの構築ブロックです。
構造化出力
モデルにコードが直接解析できるデータを返す必要がある場合は、JSONスキーマを使用した構造化出力を利用します。Grok 4.3は厳密モードでjson_schema応答形式をサポートしており、応答は提供したスキーマに準拠します。
例えば、以下のコードは国に関する事実を要求し、回答の形を制約します:
```python
import json
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"capital": {"type": "string"},
"population_millions": {"type": "number"},
},
"required": ["name", "capital", "population_millions"],
"additionalProperties": False,
}
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[{"role": "user", "content": "Return facts about the country Australia."}],
response_format={
"type": "json_schema",
"json_schema": {"name": "country_facts", "strict": True, "schema": schema},
},
max_completion_tokens=4096,
)
data = json.loads(response.choices[0].message.content)
print(data)
# {'name': 'Australia', 'capital': 'Canberra', 'population_millions': 26.6}
```
strictをTrueに設定し、additionalPropertiesをFalseにすると、応答は要求したキーに制約されます。これは、ダウンストリームシステムが固定レコード形式を期待する場合にツール呼び出しと組み合わせてうまく機能します。テストからの運用上の注意点として、リクエストが自動コンテンツ安全チェックから400を返すことがあるため、プロダクション呼び出しには短いリトライを組み込むことをお勧めします。
画像入力
Grok 4.3は画像を入力として受け入れ、テキストを返します。これにより、文書理解、チャート読み取り、視覚的質問応答が可能になります。画像は、OpenAI Chat Completions APIと同じパターンで、base64エンコードされたバイトを保持するdata: URLまたは公開画像URLを使用して渡します。テキストと画像の部分は同じコンテンツ配列に入れ、モデルが質問と画像を一緒に見ることができるようにします。
```python
import base64
with open("chart.png", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image in one short sentence."},
{
"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{b64}"},
},
],
}
],
max_completion_tokens=4096,
)
print(response.choices[0].message.content)
```
テストでは、モデルは生成されたテスト画像を読み取り、その支配的な色を正しく名付けました。PNGまたはJPEGなどのサポートされた画像形式を使用し、エンコーディングをクリーンに保ってください。形式が不正または切り捨てられた画像ペイロードは、最良の推測回答ではなくvalidation_errorを返します。
Responses APIによる状態を持つ会話
Responses APIは、サービス側で会話の状態を保持できるため、毎回完全なメッセージ履歴を再送信する必要がありません。ターンを保存するには、store=Trueを渡し、返された応答IDをキャプチャし、次の呼び出しでprevious_response_idを参照します。モデルは以前のやり取りをコンテキストとして扱います。
```python
first = client.responses.create(
model="xai.grok-4.3",
input="Remember the number 42. Just acknowledge.",
store=True,
max_output_tokens=2048,
)
second = client.responses.create(
model="xai.grok-4.3",
previous_response_id=first.id,
input="What number did I ask you to remember?",
max_output_tokens=2048,
)
print(second.output_text) # 42
```
上記のコード例のsecond client.responses.create呼び出しでは、previous_response_id以外にメッセージは送信されていません。サービスは各ターンを保持するため、モデルの以前の推論が自動的に次の呼び出しに引き継がれ、会話とモデルの思考を管理することなく範囲内に保つことができます。この機能を有効にする前に知っておくべきことは、会話の状態を保存すると、サービスがそれらのターンを保持することです。保存されたデータのセキュリティとプライバシーに関する詳細は、Amazon Bedrockのデータ保護ドキュメントを確認してください。
サービスティアとリージョンの可用性
Amazon Bedrockは、各ワークロードにコストとスループットを合わせるために複数のサービスティアを提供しています。標準ティアのオンデマンド推論は、コミットメントなしでトークンごとのアクセスを提供し、プライオリティは、より高いトークン単価で処理キューで優先的に扱われます。フレックスは、時間に敏感でないワークロードに対して低コストのアクセスを提供します。Grok 4.3は、標準、プライオリティ、フレックスティアで使用できます。詳細については、推論のサービスティアを参照してください。
Grok 4.3はリージョン内推論を使用するため、モデルが利用可能なリージョンにクライアントを固定し、Mantle基本URLを一致させる必要があります。地理的およびグローバルなリージョン間推論は、このモデルのリリース時には提供されていません。この投稿の例ではus-west-2を使用しています。サポートされているリージョンの最新リストについては、リージョンの可用性ドキュメントを参照し、ティアごとの価格についてはAmazon Bedrockの価格ページを確認してください。
結論
Grok 4.3は、設定可能な努力、ネイティブツール呼び出し、厳密な構造化出力、画像理解、サーバー側の会話状態を持つ推論ファーストモデルを提供します。OpenAI SDKを介してbedrock-mantleエンドポイントに向けてモデルにアクセスできます。この投稿の例は、リクエストごとのトークン使用を超えて請求可能なAWSリソースを作成しません。ただし、探索のために長期のAmazon Bedrock APIキーを生成した場合は、完了したらAmazon Bedrockコンソールから削除してください。長期キーは常駐資格情報であるため、不要なものを削除することでアカウントの攻撃面を小さく保つことができます。
構築を開始するには、Grok 4.3モデルカードを確認して現在のリージョンリストとパラメータの詳細を確認し、Amazon Bedrockの価格ページでトークンレートを確認してください。そこから、ツール呼び出しループをエンドツーエンドで接続し、返された関数を実行して結果をフィードバックし、Responsesターン間で暗号化された推論コンテンツをスレッド化して長期エージェントに思考の連続性を与え、努力レベルを自社のワークロードに対してベンチマークする方向性を探ることが価値があります。
xAIのGrok 4.3がAmazon Bedrockで一般提供され、エージェントやAIワークフローを構築するチームに対して、長い入力に対して信頼性のある推論を行うモデルを提供します。このリリースにより、xAIはモデルプロバイダーとしてAmazon Bedrockに参加します。Grok 4.3は、設定可能な推論努力を持つモデルで、エージェント構築のための強力なツール使用と指示のフォローを提供し、高ボリュームの推論に対してトークン効率を実現します。テキストと画像の入力を受け付け、長文やマルチターンセッションのための100万トークンのコンテキストウィンドウを持っています。このモデルは、Amazon Bedrockの次世代推論エンジンであるMantle上で動作します。
この投稿では、Grok 4.3がエージェントおよび企業のワークロードに適している理由、Amazon Bedrockを通じてのアクセス方法、基本的なチャットリクエスト、設定可能な推論努力、ツール呼び出し、構造化出力、画像入力、状態を持つマルチターン会話など、ほとんどのチームが最初に利用する機能の使い方について説明します。
Grok 4.3は、精度が重要な企業の作業向けに構築されており、xAIはモデルのリリース時に独自のベンチマークで様々な業界基準を上回ると報告しています。Grok 4.3は、最前線のモデルの中で最も低い幻覚率を持つArtificial Analysis Omniscienceベンチマークで1位にランクインし、顧客サポートシナリオでのツール呼び出しに関してはArtificial Analysis Tau2 Telecomベンチマークで1位、文書理解に関してはVals AI Case LawおよびCorporate Financeベンチマークで1位にランクインしています。xAIはまた、このモデルをコスト対知性のパレートフロンティアに位置付けており、他の最前線モデルに対して1ドルあたり2〜10倍の知性を提供すると説明しています。
Grok 4.3を使用すると、各リクエストごとに推論の努力レベルを制御できます。努力レベル(なし、低、中、高)をリクエストごとに設定し、1つのモデルで幅広い作業を処理できます。分類呼び出しは、レイテンシを低く保つために努力なしで実行できます。契約分析やケース法のタスクは、応答時間よりも深さが重要な場合に高い努力で実行できます。Grok 4.3はテキストと画像の入力を受け入れ、テキストを返し、100万トークンのコンテキストウィンドウは長文や拡張されたマルチターンセッションに対応します。このモデルはツール呼び出しと指示のフォローをうまく処理し、アクションを取るために機能呼び出しに依存するエージェントにとって実用的です。これらの特性は、契約レビュー、信用契約分析、金融文書の質問応答などのユースケースに合致しています。これらのケースでは、モデルは長い入力を推論し、その後記録システムに呼び出します。
Grok 4.3はMantle上で動作し、アクセス方法はAmazon Bedrock Runtime APIを使用するモデルとは異なります。MantleはOpenAI互換のAPIを使用します。Grok 4.3を呼び出すには、OpenAI SDKを使用するか、Chat Completions APIまたはResponses APIへの直接HTTPSリクエストを介して行います。
MantleエンドポイントのURLはリージョン固有で、次のパターンに従います:
例えば、us-west-2では基本URLはhttps://bedrock-mantle.us-west-2.api.aws/openai/v1です。Responses APIのURLルートは、Mantleエンドポイント(/openai/v1/)とRuntimeエンドポイント(/v1/responses)でわずかに異なります。
Grok 4.3を使用する際は、コンテキストウィンドウが100万トークンであることに注意し、デフォルトが標準のOpenAI仕様から3つの点で異なることを理解してください:
- temperatureは1ではなく0.7がデフォルトです。
- top_pは1ではなく0.95がデフォルトです。
- max_completion_tokensは131072がデフォルトです。
アプリケーションが異なる動作を必要とする場合は、これらを明示的に設定してください。
Mantleエンドポイントに対して認証し、最初のリクエストを実行する方法は2つあります。どちらも同じOpenAI SDKで機能します。プロダクション環境では、IAM資格情報から生成された短期ベアラートークンを推奨します。これにより、自動的に期限切れになり、アクセスがIAMアイデンティティに結びつきます。迅速な探索と開始のためには、長期のAmazon Bedrock APIキーを使用します。長期キーはプロダクションアプリケーションに埋め込むのではなく、その目的に制限してください。
以下の例は、長期のAmazon Bedrock APIキーを使用してモデルにアクセスする方法を示しています。これは探索専用の資格情報として扱ってください。Amazon Bedrockコンソールから生成し、次にOpenAI SDKをインストールします:
```python
pip install openai
```
クライアントをリージョナルMantleエンドポイントに向け、APIキーで認証します。モデルIDはxai.grok-4.3です:
```python
from openai import OpenAI
client = OpenAI(
api_key="",
base_url="https://bedrock-mantle.us-west-2.api.aws/openai/v1",
)
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[
{"role": "user", "content": "In one sentence, what is Amazon Bedrock?"}
],
)
print(response.choices[0].message.content)
```
Amazon Bedrockをより高いセキュリティ要件を持つアプリケーションに組み込む準備ができたら、短期資格情報を使用することをお勧めします。Amazon Bedrockトークンジェネレーターを使用して、リクエスト時に既存のAWS資格情報から短期ベアラートークンを生成できます。これにより、認証がIAMアイデンティティに結びつき、長期の秘密を避けることができます。始めるには、aws-bedrock-token-generatorパッケージをインストールします:
```python
pip install aws-bedrock-token-generator
```
次に、以下のようにコード内でaws_bedrock_token_generatorライブラリのprovide_token関数を使用します:
```python
from aws_bedrock_token_generator import provide_token
from openai import OpenAI
client = OpenAI(
api_key=provide_token(region="us-west-2"),
base_url="https://bedrock-mantle.us-west-2.api.aws/openai/v1",
)
```
推論出力を設定することで、Responses APIの推論パラメータを通じてモデルがどれだけの推論努力を費やすかを制御できます。努力レベルは、なし(推論を無効にする)、低(デフォルト)、中、高の4つです。高い努力は、迅速な回答が間違っている場合に役立ちますが、出力トークンが増えるコストがあります。
Chat Completions APIは推論トレースを返しません。モデルの推論をターン間で利用可能にしたい場合は、Responses APIを使用してください。デフォルトの状態を持つパターンでは、store=Trueを設定し、前の応答IDで呼び出しを連鎖させることで、サービスは各ターンの推論を保持し、自動的にフィードバックしますので、管理する必要はありません。暗号化された推論は、ステートレスな場合に使用されます。store=Falseを設定した場合(例えば、ワークロードがターンをサーバー側で保持しない必要がある場合)、推論をinclude=["reasoning.encrypted_content"]でリクエストし、次のリクエストの入力に戻してモデルに自身の以前の推論をコンテキストとして提供します。
この例は、高い努力で古典的なトリック質問を実行します:
```python
response = client.responses.create(
model="xai.grok-4.3",
reasoning={"effort": "high"}, # none, low, medium, or high
include=["reasoning.encrypted_content"],
max_output_tokens=4096,
input=(
"A bat and ball cost $1.10. The bat costs $1 more than the ball. "
"How much is the ball? Answer with just the number."
),
)
print(response.output_text)
print(response.usage.output_tokens_details.reasoning_tokens)
```
モデルは代数を解決し、直感的な間違った答えである$0.10に手を伸ばすのではなく、推論トークンを内部で消費したことをusageブロックが報告します。努力をなしにすると、同じフィールドは0の推論トークンを報告し、これはシンプルでレイテンシに敏感な呼び出しに対して目指す設定です:
```python
response = client.responses.create(
model="xai.grok-4.3",
reasoning={"effort": "none"},
max_output_tokens=2048,
input="Say OK.",
)
print(response.output_text) # OK.
```
実用的なパターンは、分類、抽出、短い事実確認をなしまたは低で実行し、計画ステップ、数学、そして単一の早期の間違いが全体のタスクを台無しにする場合には高を予約することです。
Grok 4.3でツールを呼び出す
ツール呼び出しはエージェントワークロードの中心であり、Grok 4.3は同じOpenAI互換のインターフェースを通じてそれをサポートします。利用可能なツールを説明し、モデルがいつ呼び出すかを決定し、コードが実行しフィードバックする構造化されたリクエストを返します。Grok 4.3は標準のOpenAIツール呼び出し形状に従い、各ツールをそのパラメータのJSONスキーマで定義します。
以下の例は、単一のget_weatherツールを提供し、それをトリガーする質問をします:
```python
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}
]
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[{"role": "user", "content": "What's the weather in Sydney? Use the tool."}],
tools=tools,
tool_choice="auto", # let the model decide whether to call a tool
)
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)
# get_weather {"city":"Sydney"}
```
モデルは質問から都市を解析し、スキーマに一致する有効な引数オブジェクトを生成しました。ここから、コード内で関数を実行し、結果を追加したツールロールメッセージを付けてモデルを再度呼び出し、データを自然言語の返信に折り込むことができます。これはGrok 4.3上のマルチステップエージェントの構築ブロックです。
構造化出力
モデルにコードが直接解析できるデータを返す必要がある場合は、JSONスキーマを使用した構造化出力を利用します。Grok 4.3は厳密モードでjson_schema応答形式をサポートしており、応答は提供したスキーマに準拠します。
例えば、以下のコードは国に関する事実を要求し、回答の形を制約します:
```python
import json
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"capital": {"type": "string"},
"population_millions": {"type": "number"},
},
"required": ["name", "capital", "population_millions"],
"additionalProperties": False,
}
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[{"role": "user", "content": "Return facts about the country Australia."}],
response_format={
"type": "json_schema",
"json_schema": {"name": "country_facts", "strict": True, "schema": schema},
},
max_completion_tokens=4096,
)
data = json.loads(response.choices[0].message.content)
print(data)
# {'name': 'Australia', 'capital': 'Canberra', 'population_millions': 26.6}
```
strictをTrueに設定し、additionalPropertiesをFalseにすると、応答は要求したキーに制約されます。これは、ダウンストリームシステムが固定レコード形式を期待する場合にツール呼び出しと組み合わせてうまく機能します。テストからの運用上の注意点として、リクエストが自動コンテンツ安全チェックから400を返すことがあるため、プロダクション呼び出しには短いリトライを組み込むことをお勧めします。
画像入力
Grok 4.3は画像を入力として受け入れ、テキストを返します。これにより、文書理解、チャート読み取り、視覚的質問応答が可能になります。画像は、OpenAI Chat Completions APIと同じパターンで、base64エンコードされたバイトを保持するdata: URLまたは公開画像URLを使用して渡します。テキストと画像の部分は同じコンテンツ配列に入れ、モデルが質問と画像を一緒に見ることができるようにします。
```python
import base64
with open("chart.png", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="xai.grok-4.3",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image in one short sentence."},
{
"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{b64}"},
},
],
}
],
max_completion_tokens=4096,
)
print(response.choices[0].message.content)
```
テストでは、モデルは生成されたテスト画像を読み取り、その支配的な色を正しく名付けました。PNGまたはJPEGなどのサポートされた画像形式を使用し、エンコーディングをクリーンに保ってください。形式が不正または切り捨てられた画像ペイロードは、最良の推測回答ではなくvalidation_errorを返します。
Responses APIによる状態を持つ会話
Responses APIは、サービス側で会話の状態を保持できるため、毎回完全なメッセージ履歴を再送信する必要がありません。ターンを保存するには、store=Trueを渡し、返された応答IDをキャプチャし、次の呼び出しでprevious_response_idを参照します。モデルは以前のやり取りをコンテキストとして扱います。
```python
first = client.responses.create(
model="xai.grok-4.3",
input="Remember the number 42. Just acknowledge.",
store=True,
max_output_tokens=2048,
)
second = client.responses.create(
model="xai.grok-4.3",
previous_response_id=first.id,
input="What number did I ask you to remember?",
max_output_tokens=2048,
)
print(second.output_text) # 42
```
上記のコード例のsecond client.responses.create呼び出しでは、previous_response_id以外にメッセージは送信されていません。サービスは各ターンを保持するため、モデルの以前の推論が自動的に次の呼び出しに引き継がれ、会話とモデルの思考を管理することなく範囲内に保つことができます。この機能を有効にする前に知っておくべきことは、会話の状態を保存すると、サービスがそれらのターンを保持することです。保存されたデータのセキュリティとプライバシーに関する詳細は、Amazon Bedrockのデータ保護ドキュメントを確認してください。
サービスティアとリージョンの可用性
Amazon Bedrockは、各ワークロードにコストとスループットを合わせるために複数のサービスティアを提供しています。標準ティアのオンデマンド推論は、コミットメントなしでトークンごとのアクセスを提供し、プライオリティは、より高いトークン単価で処理キューで優先的に扱われます。フレックスは、時間に敏感でないワークロードに対して低コストのアクセスを提供します。Grok 4.3は、標準、プライオリティ、フレックスティアで使用できます。詳細については、推論のサービスティアを参照してください。
Grok 4.3はリージョン内推論を使用するため、モデルが利用可能なリージョンにクライアントを固定し、Mantle基本URLを一致させる必要があります。地理的およびグローバルなリージョン間推論は、このモデルのリリース時には提供されていません。この投稿の例ではus-west-2を使用しています。サポートされているリージョンの最新リストについては、リージョンの可用性ドキュメントを参照し、ティアごとの価格についてはAmazon Bedrockの価格ページを確認してください。
結論
Grok 4.3は、設定可能な努力、ネイティブツール呼び出し、厳密な構造化出力、画像理解、サーバー側の会話状態を持つ推論ファーストモデルを提供します。OpenAI SDKを介してbedrock-mantleエンドポイントに向けてモデルにアクセスできます。この投稿の例は、リクエストごとのトークン使用を超えて請求可能なAWSリソースを作成しません。ただし、探索のために長期のAmazon Bedrock APIキーを生成した場合は、完了したらAmazon Bedrockコンソールから削除してください。長期キーは常駐資格情報であるため、不要なものを削除することでアカウントの攻撃面を小さく保つことができます。
構築を開始するには、Grok 4.3モデルカードを確認して現在のリージョンリストとパラメータの詳細を確認し、Amazon Bedrockの価格ページでトークンレートを確認してください。そこから、ツール呼び出しループをエンドツーエンドで接続し、返された関数を実行して結果をフィードバックし、Responsesターン間で暗号化された推論コンテンツをスレッド化して長期エージェントに思考の連続性を与え、努力レベルを自社のワークロードに対してベンチマークする方向性を探ることが価値があります。