> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crazyrouter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude 채팅 객체

> 2026-03-23 프로덕션 재검증을 기반으로, Anthropic Message 객체와 네이티브 SSE 이벤트를 이해합니다

> 업데이트: 2026-06-06

# Claude 채팅 객체

Crazyrouter는 Anthropic 네이티브 Messages API를 지원합니다.

이 문서 페이지에는 `2026-03-23`에 프로덕션 환경에서 재검증된 Message 객체와 스트리밍 이벤트 타입만 작성되어 있습니다.

## Message 객체

현재 프로덕션의 최소 요청은 다음을 사용합니다.

* `model: "claude-opus-4-8"`
* `POST /v1/messages`

현재 프로덕션이 반환하는 대표적인 골격:

```json theme={null}
{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "..."
    }
  ],
  "model": "claude-opus-4-8",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 15,
    "output_tokens": 20
  }
}
```

### 주요 확인 필드

| 필드            | 타입     | 설명                                             |
| ------------- | ------ | ---------------------------------------------- |
| `id`          | string | 메시지 고유 식별자                                     |
| `type`        | string | 고정값 `message`                                  |
| `role`        | string | 고정값 `assistant`                                |
| `content`     | array  | 콘텐츠 블록 목록                                      |
| `model`       | string | 실제 사용된 모델                                      |
| `stop_reason` | string | 정지 이유, 예: `end_turn`, `tool_use`, `max_tokens` |
| `usage`       | object | 토큰 사용량                                         |

### content의 일반적인 블록 타입

텍스트 블록:

```json theme={null}
{
  "type": "text",
  "text": "..."
}
```

도구 호출 블록:

```json theme={null}
{
  "type": "tool_use",
  "id": "toolu_xxx",
  "name": "get_time",
  "input": {
    "timezone": "Asia/Shanghai"
  }
}
```

사고 블록:

```json theme={null}
{
  "type": "thinking",
  "thinking": "..."
}
```

***

## 스트리밍 이벤트 타입

`2026-03-23`의 프로덕션 재검증에서, `claude-opus-4-8`의 네이티브 스트리밍은 다음 SSE 이벤트를 반환했습니다.

* `message_start`
* `content_block_start`
* `content_block_delta`
* `content_block_stop`
* `message_delta`
* `message_stop`

### 이벤트 예시

`message_start`

```text theme={null}
event: message_start
data: {"type":"message_start","message":{...}}
```

`content_block_start`

```text theme={null}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
```

`content_block_delta`

```text theme={null}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello"}}
```

`content_block_stop`

```text theme={null}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
```

`message_delta`

```text theme={null}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":20}}
```

`message_stop`

```text theme={null}
event: message_stop
data: {"type":"message_stop"}
```

***

## 실용적인 판단 방법

* `content`에 `text`만 있다면 일반 답변입니다
* `stop_reason = "tool_use"`이고 `content`에 `tool_use`가 나타나면 도구 호출입니다
* `content`에 `thinking`이 나타나면, 현재 모델과 요청 형태가 확장 사고를 트리거했음을 의미합니다

<Note>
  `thinking` block은 모든 Claude 모델이 기본적으로 반환하는 것이 아닙니다. 현재 명확히 재검증에 성공한 모델은 `claude-opus-4-8`입니다.
</Note>

관련 페이지:

* [Claude 네이티브 형식](/ko/chat/anthropic/messages)
* [핵심 기능: Tool Calling](/ko/features/tool-calling)
* [핵심 기능: Reasoning](/ko/features/reasoning)
