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

# 추론 토큰

> DeepSeek R1, Claude 확장 사고, o4-mini 등의 모델에서 추론(사고) 토큰을 이해하고 활용합니다.

일부 모델은 최종 응답을 생성하기 전에 내부 연쇄 추론을 수행합니다. 이러한 추론 단계에서 소비되는 토큰을 **추론 토큰**이라고 합니다. 이는 비용과 지연 시간에 영향을 미치지만 기본적으로 사용자에게는 보이지 않습니다.

## 지원 모델

| 모델                            | 추론 지원     |
| ----------------------------- | --------- |
| `openai/o4-mini`              | 항상 켜짐 추론  |
| `openai/o3`                   | 항상 켜짐 추론  |
| `anthropic/claude-sonnet-4-6` | 선택적 확장 사고 |
| `anthropic/claude-opus-4-6`   | 선택적 확장 사고 |
| `deepseek/deepseek-r1`        | 항상 켜짐 추론  |
| `google/gemini-2.5-pro`       | 선택적 사고 모드 |
| `google/gemini-2.5-flash`     | 선택적 사고 모드 |

## 사용량에서 추론 토큰 표시

추론 토큰은 `completion_tokens_details`의 일부로 `usage` 객체에 보고됩니다:

```json theme={null}
{
  "usage": {
    "prompt_tokens": 150,
    "completion_tokens": 520,
    "total_tokens": 670,
    "completion_tokens_details": {
      "reasoning_tokens": 400
    }
  }
}
```

이 예시에서 520개의 완성 토큰 중 400개가 내부 추론에 사용되었습니다. 나머지 120개 토큰만 보이는 응답에 표시됩니다.

## 추론 토큰 청구

추론 토큰은 해당 모델의 **완성 토큰 요금**으로 청구됩니다. 청구 목적상 `completion_tokens`에 포함됩니다 — 세부 내역은 정보 제공 목적입니다.

ARouter는 업스트림 제공업체의 추론 토큰 수를 수정 없이 그대로 전달합니다.

## 추론 동작 제어

### OpenAI o 시리즈 (o4-mini, o3)

o 시리즈 모델에서 추론은 항상 켜져 있습니다. 모델이 얼마나 추론하는지 제어하려면 `reasoning_effort`를 사용하세요:

```json theme={null}
{
  "model": "openai/o4-mini",
  "reasoning_effort": "high",
  "messages": [...]
}
```

유효한 값: `"low"`, `"medium"`, `"high"`. 노력도가 높을수록 = 추론 토큰이 많음 = 품질과 비용이 높음.

### Anthropic 확장 사고

요청에 `thinking`을 전달하여 확장 사고를 활성화합니다:

```python theme={null}
import anthropic

client = anthropic.Anthropic(
    api_key="your-arouter-key",
    base_url="https://api.arouter.ai/anthropic",
)

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000,
    },
    messages=[{"role": "user", "content": "단계별로 해결해주세요: ..."}],
)
```

`budget_tokens`는 사고에 사용할 수 있는 최대 토큰 수를 제한합니다. 사고 내용은 응답에서 별도의 블록으로 반환됩니다.

### DeepSeek R1

DeepSeek R1에서 추론은 항상 켜져 있습니다. 이 모델은 일반 `content` 옆에 `reasoning_content` 필드를 반환합니다:

```python theme={null}
from openai import OpenAI

client = OpenAI(
    api_key="your-arouter-key",
    base_url="https://api.arouter.ai/v1",
)

response = client.chat.completions.create(
    model="deepseek/deepseek-r1",
    messages=[{"role": "user", "content": "√2가 무리수임을 증명하세요."}],
)

# 추론 내용 (제공업체가 공개하는 경우)
print(response.choices[0].message.reasoning_content)
# 최종 답변
print(response.choices[0].message.content)
```

### Google Gemini 사고

`thinking` 매개변수를 통해 Gemini 2.5 모델의 사고를 활성화합니다:

```python theme={null}
response = client.chat.completions.create(
    model="google/gemini-2.5-flash",
    messages=[...],
    extra_body={
        "thinking": {
            "type": "enabled",
            "budget_tokens": 5000
        }
    }
)
```

## 활동 내보내기와 추론 토큰

[활동 내보내기](/ko/guides/administration/activity-export)에는 추론 토큰의 세부 내역이 포함되어 있어 총 비용에 대한 기여를 정확하게 추적할 수 있습니다. 내보내기 요약에서 추론 토큰은 완성 토큰에 포함됩니다.

## 모범 사례

* **최고의 추론 품질이 필요하지 않다면 o 시리즈 모델에서 `"low"` 또는 `"medium"` 노력도로 시작하세요**. 이렇게 하면 비용과 지연 시간이 크게 줄어듭니다.
* **Anthropic 및 Gemini 사고 모델에 `budget_tokens` 상한을 설정하세요**. 복잡한 쿼리에서 예상치 못한 대규모 청구를 방지하기 위해서입니다.
* **활동 피드에서 추론 토큰 비율을 모니터링하세요**. 추론 대 출력 토큰의 높은 비율은 복잡한 작업에서 정상이지만 모델이 단순한 쿼리에 과도하게 생각하고 있음을 나타낼 수 있습니다.
* **비용 절약을 위해 추론을 비활성화하지 마세요**. 진정으로 다단계 추론이 필요한 작업에서는 — 출력 품질이 크게 저하됩니다.
