Anthropicは、Claudeを使って構築するための2つの方法を提供しており、それぞれ異なるユースケースに適しています。
| Messages API | Claude Managed Agents | |
|---|---|---|
| 概要 | モデルへの直接的なプロンプトアクセス | マネージドインフラストラクチャ上で動作する、事前構築済みで設定可能なエージェントハーネス |
| 最適な用途 | カスタムエージェントループときめ細かな制御 | 長時間実行タスクと非同期処理 |
| 詳細情報 | Messages APIドキュメント | Claude Managed Agentsドキュメント |
このガイドでは、基本的なリクエスト、マルチターン会話、プリフィル技術、ビジョン機能など、Messages APIを使用するための一般的なパターンについて説明します。完全なAPI仕様については、Messages APIリファレンスを参照してください。
この機能はZero Data Retention(ZDR)の対象です。組織がZDR契約を締結している場合、この機能を通じて送信されたデータは、APIレスポンスが返された後に保存されることはありません。
message = anthropic.Anthropic().messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(message){
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello!"
}
],
"model": "claude-opus-4-7",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 6
}
}Messages APIはステートレスです。つまり、常にAPIに完全な会話履歴を送信します。このパターンを使用して、時間をかけて会話を構築できます。以前の会話ターンは必ずしもClaudeから実際に発信される必要はありません。合成されたassistantメッセージを使用できます。
message = anthropic.Anthropic().messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello, Claude"},
{"role": "assistant", "content": "Hello!"},
{"role": "user", "content": "Can you describe LLMs to me?"},
],
)
print(message){
"id": "msg_018gCsTGsXkYJVqYPxTgDHBU",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Sure, I'd be happy to provide..."
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 30,
"output_tokens": 309
}
}入力メッセージリストの最後の位置にClaudeのレスポンスの一部をプリフィルできます。これはClaudeのレスポンスを形作るために使用できます。以下の例では、"max_tokens": 1を使用してClaudeから単一の多肢選択回答を取得します。
message = anthropic.Anthropic().messages.create(
model="claude-sonnet-4-5",
max_tokens=1,
messages=[
{
"role": "user",
"content": "What is latin for Ant? (A) Apoidea, (B) Rhopalocera, (C) Formicidae",
},
{"role": "assistant", "content": "The answer is ("},
],
)
print(message){
"id": "msg_01Q8Faay6S7QPTvEUUQARt7h",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "C"
}
],
"model": "claude-sonnet-4-5",
"stop_reason": "max_tokens",
"stop_sequence": null,
"usage": {
"input_tokens": 42,
"output_tokens": 1
}
}プリフィルはClaude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6、およびClaude Sonnet 4.6ではサポートされていません。これらのモデルでプリフィルを使用するリクエストは400エラーを返します。代わりに構造化出力またはシステムプロンプト指示を使用してください。移行パターンについては移行ガイドを参照してください。
Claude はリクエスト内のテキストと画像の両方を読むことができます。画像は base64、url、または file ソースタイプを使用して提供できます。file ソースタイプは Files API を通じてアップロードされた画像を参照します。サポートされているメディアタイプは image/jpeg、image/png、image/gif、および image/webp です。詳細については ビジョンガイド を参照してください。
import base64
import httpx
# Option 1: Base64-encoded image
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx.get(image_url).content).decode("utf-8")
message = anthropic.Anthropic().messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": image_media_type,
"data": image_data,
},
},
{"type": "text", "text": "What is in the above image?"},
],
}
],
)
print(message)
# Option 2: URL-referenced image
message_from_url = anthropic.Anthropic().messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg",
},
},
{"type": "text", "text": "What is in the above image?"},
],
}
],
)
print(message_from_url){
"id": "msg_01EcyWo6m4hyW8KHs2y2pei5",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "This image shows an ant, specifically a close-up view of an ant. The ant is shown in detail, with its distinct head, antennae, and legs clearly visible. The image is focused on capturing the intricate details and features of the ant, likely taken with a macro lens to get an extreme close-up perspective."
}
],
"model": "claude-opus-4-7",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 1551,
"output_tokens": 71
}
}Messages API でツールを使用する方法の例については、ツール使用ガイド を参照してください。 Messages API でデスクトップコンピュータ環境を制御する方法の例については、コンピュータ使用ガイド を参照してください。 保証された JSON 出力については、構造化出力 を参照してください。
Was this page helpful?