---
title: "Messages ネイティブ対話インターフェース"
description: "Claude Messages のリクエストヘッダー、system と messages の違い、コンテンツブロック、終了理由。"
headingIds: {"最小リクエスト":"section-1","リクエスト構造":"section-2","コンテンツブロックの読み取り":"section-3","マルチターンとストリーミング":"section-4"}
---

<aside className="docs-publication" data-pagefind-ignore>

ドキュメントは [1ZheAI](https://1zheai.com/en/editorial/#publisher) が管理しています。[出典と訂正](https://1zheai.com/en/editorial/)。

エラーを見つけましたか？ページのアドレスと説明を添えて[サポートに連絡](mailto:support@1zheai.com)してください。API キーやアカウント情報は送信しないでください。

</aside>
Claude Code、Anthropic SDK、および Claude のネイティブコンテンツブロックを保持したいアプリケーションは `POST https://1zheai.com/v1/messages` を使用します。SDK Base URL には `https://1zheai.com` を設定します。

## 最小リクエスト

まずこのサイトの API キーの環境変数 `ONEZHE_API_KEY` を設定し、次を実行します：

```bash
curl --fail-with-body --connect-timeout 10 --max-time 120 \
  https://1zheai.com/v1/messages \
  -H "x-api-key: $ONEZHE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "max_tokens": 256,
    "system": "请用简短的中文回答。",
    "messages": [{"role": "user", "content": "什么是域名解析？"}]
  }'
```

## リクエスト構造

| フィールド | 型 | 使用方法 |
| --- | --- | --- |
| `model` | string | 必須。API キーで利用可能な Claude モデルを選択 |
| `max_tokens` | integer | 必須。出力上限。選択したモデルの制限に合わせて設定 |
| `messages` | array | 必須。時系列順に `user` と `assistant` のメッセージを送信 |
| `system` | string またはコンテンツブロックの配列 | 任意。システム指示はトップレベルに置き、`role: system` メッセージは使用しない |
| `stream` | boolean | 任意。コンテンツブロックの差分をストリーミングで読み取る |
| `tools` | array | 任意。ツール名、用途、入力スキーマを宣言 |

`thinking`、キャッシュ制御、beta パラメータは、具体的なモデルと上流のサポート状況によります。まず通常のテキストで検証し、必要に応じて追加してください。すべてのモデルを同じパラメータ群として扱わないでください。

## コンテンツブロックの読み取り

返される `content` は配列であり、テキスト、ツールリクエスト、その他のコンテンツブロックが同時に含まれる場合があります。無条件に `content[0].text` を読み取らないでください。たとえば Anthropic Python SDK を使用する場合：

```python
for block in message.content:
    if block.type == "text":
        print(block.text)
```

ここでの `message` は [Anthropic SDK チュートリアル](/ja/docs/quickstart-anthropic-sdk/) の `client.messages.create(...)` から取得しています。

| `stop_reason` | アプリケーションでの処理 |
| --- | --- |
| `end_turn` | 今回の回答が終了 |
| `max_tokens` | 出力が上限で打ち切られており、完全な回答として扱えない |
| `tool_use` | ツールリクエストを確認し、許可されたツールを実行して結果を返送 |
| その他の値 | レスポンスを保持し、選択したモデルのプロトコルに従って処理。テキスト完了とは限らないと仮定しない |

ツール呼び出しループでは、まず完全な assistant コンテンツブロックを履歴に追加し、次に user コンテンツ内の `tool_result` で結果を返送します。`tool_use_id` は元のリクエストに対応していなければなりません。ツールリクエストをそのまま通常のテキストに変換しないでください。

## マルチターンとストリーミング

毎回、保持する必要のある履歴を送信してください。インターフェース自体はアプリケーションの代わりに会話を保存しません。ストリーミングでは `message_stop` がメッセージの終了を示します。部分的なテキストを受信しただけではリクエストが完了したことを意味しません。詳細は[ストリーミング出力](/ja/docs/streaming/) を参照してください。

プロトコルの詳細は [Anthropic Messages 使用説明](https://platform.claude.com/docs/en/build-with-claude/working-with-messages) を参照してください。このサイトの拡張パラメータが利用可能かどうかは、モデルカタログと実際のレスポンスによります。
