Anthropic APIの呼び出し:messages
Anthropic messages APIの使い方を学びます。OpenAIとの違い、system promptの配置、Claude固有のベストプラクティスを扱います。
「Anthropic APIの呼び出し:messages」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
なぜAnthropicなのか?
Claudeモデルは、同等のOpenAIモデルと比べて、指示への追従、ツールの利用、コンテキストウィンドウの長さに優れていることが多く、低コストの場合もあります。
本番環境のエージェントの多くは、フォールバックとして両方のプロバイダーに対応しています。
Install the SDK
# pip install anthropic
import anthropic
client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY from env最初の呼び出し
エンドポイントはmessages.createです。
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=512,
system='You are a concise assistant.',
messages=[
{'role': 'user', 'content': 'Capital of France?'},
],
)
print(response.content[0].text)
# 'Paris.'OpenAIとの主な違い
systemはメッセージではなく、トップレベルのパラメーターですmax_tokensは必須ですcontentはブロック(text、tool_useなど)のリストですnパラメーターはありません。複数回呼び出してください
コンテンツブロック
テキストのレスポンスであっても、ブロックのリストとして返されます。
response.content # list of blocks
response.content[0].type # 'text' or 'tool_use'
response.content[0].text # the text content
response.stop_reason # 'end_turn' / 'max_tokens' / 'tool_use'
response.usage.input_tokens
response.usage.output_tokens複数ブロックのコンテンツ
userメッセージでコンテンツブロックのリスト(画像やツールの結果など)を送信することもできます。
messages = [{
'role': 'user',
'content': [
{'type': 'text', 'text': 'What is in this image?'},
{'type': 'image', 'source': {
'type': 'base64',
'media_type': 'image/png',
'data': image_base64
}}
]
}]assistantの事前入力
レスポンスの開始形式を指定できます。
messages = [
{'role': 'user', 'content': 'Return a JSON object.'},
{'role': 'assistant', 'content': '{'}
]
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=512,
messages=messages,
)
# Output starts after '{', guaranteed to be JSON.ツールの使用
Anthropicのツール形式はOpenAIと似ていますが、input_schemaを使用します。
tools = [{
'name': 'get_weather',
'description': 'Get current weather',
'input_schema': {
'type': 'object',
'properties': {'city': {'type': 'string'}},
'required': ['city']
}
}]
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=1024,
tools=tools,
messages=messages,
)
if response.stop_reason == 'tool_use':
for block in response.content:
if block.type == 'tool_use':
print(block.name, block.input)ツール結果の返却
ツールの結果は、tool_resultブロックを含むユーザーメッセージに入れます。
messages.append({
'role': 'user',
'content': [{
'type': 'tool_result',
'tool_use_id': 'toolu_abc',
'content': json.dumps(weather_data)
}]
})プロンプトキャッシュ
Anthropicはプロンプトキャッシュに対応しています。長い静的なプレフィックスにcache_controlを付けると、キャッシュヒット時の料金は10%になります。
system = [
{'type': 'text', 'text': '...long system prompt...',
'cache_control': {'type': 'ephemeral'}}
]
for block in system:
print(f"type={block['type']} cache_control={block['cache_control']}")
print("text preview:", block['text'][:30])
拡張思考
Claudeには「extended thinking」モードがあり、回答する前に内部で推論します。
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=4096,
thinking={'type': 'enabled', 'budget_tokens': 2048},
messages=messages,
)システムプロンプトの場所
Anthropic APIでは、システムプロンプトをどこに指定するのでしょうか。
まとめ
これで、2つの主要プロバイダーを呼び出せるようになりました。違いは小さいものの実在するため、多くのチームでは両者を切り替えられる薄いアダプターを構築します。
よくある質問
「Anthropic APIの呼び出し:messages」レッスンは無料ですか?
はい。「Anthropic APIの呼び出し:messages」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「Anthropic APIの呼び出し:messages」で何を学びますか?
Anthropic messages APIの使い方を学びます。OpenAIとの違い、system promptの配置、Claude固有のベストプラクティスを扱います。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Anthropic APIの呼び出し:messages」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- OpenAI APIの呼び出し:chat.completions
- Anthropic APIの呼び出し:messages
- レスポンスのストリーミング(SSE)
- コストを意識する:トークン数のカウントと予算