컨텍스트 윈도우와 최대 출력 토큰 차이: GPT-6, Claude, DeepSeek, Kimi 모델별 한도
컨텍스트 윈도우와 최대 출력 토큰의 뜻, GPT-6, Claude, DeepSeek V4.1 Flash, Kimi K3의 한도, 답변이 중간에 끊길 때 해결하는 방법을 정리했습니다.
Markdown으로 읽기컨텍스트 윈도우는 모델이 한 번의 요청에서 담을 수 있는 전체 토큰 수입니다. 여기에는 프롬프트, 대화 기록, 이미지, 그리고 모델이 작성하는 답변이 모두 포함됩니다. 최대 출력 토큰은 그 답변에서 모델이 작성할 수 있는 최대량이며, 추론 모델에서는 생각하는 데 쓴 토큰도 여기에 포함됩니다. 답변은 컨텍스트 윈도우 안에 들어가야 하므로, 프롬프트가 길수록 출력에 쓸 공간은 줄어듭니다.
컨텍스트 윈도우와 최대 출력 토큰은 무엇이 다른가요?
컨텍스트 윈도우는 공유 공간입니다. 한 번의 요청에서 보내는 모든 것과 모델이 작성하는 모든 것이 이 안에 들어가야 합니다.
최대 출력 토큰은 답변에만 적용되는, 별도의 더 작은 상한입니다. 모델마다 최대치가 있고, API마다 요청별로 더 낮은 한도를 지정할 수 있는 파라미터가 있습니다.
여기서 두 가지 결과가 나옵니다.
- 입력과 출력은 같은 윈도우를 두고 경쟁합니다. DeepSeek의 API 레퍼런스는 이를 분명하게 말합니다. "입력 토큰과 생성된 토큰의 총 길이는 모델의 컨텍스트 길이로 제한됩니다."
- 추론은 출력으로 계산됩니다. GPT-6, Claude, DeepSeek V4.1 Flash, Kimi K3에서는 모델이 생각하는 데 쓴 토큰이 출력 한도에 포함되고 출력으로 과금됩니다. 눈에 보이는 답변이 짧아도 답변이 일찍 멈출 수 있습니다.
모델별 한도는 어떻게 되나요?
| 모델 | 모델 ID | 컨텍스트 윈도우 | 최대 출력 | 출력 파라미터 | 지정하지 않았을 때 기본값 |
|---|---|---|---|---|---|
| GPT-6 Astra, Sol, Luna | gpt-6-astra, gpt-6-sol, gpt-6-luna | 1.05M 토큰(입력 922K) | 128K | max_output_tokens(Responses), max_completion_tokens(Chat Completions) | 모델 최대치 |
| Claude Opus 5.5, Fable 5.1, Fable 5 | claude-opus-5-5, claude-fable-5-1, claude-fable-5 | 1M 토큰 | 128K | max_tokens | 없음: 필수 필드 |
| DeepSeek V4.1 Flash | deepseek-v4.1-flash | 1M 토큰 | 393,216 | max_tokens | 사고 끔 8K, 사고 켬 64K, max 강도에서 128K |
| Kimi K3 | kimi-k3 | 1,048,576 토큰 | 1,048,576 | max_completion_tokens | 131,072 |
답변이 끊기는 경우 대부분은 마지막 열에서 비롯됩니다. DeepSeek V4.1 Flash는 393,216 토큰까지 작성할 수 있지만, max_tokens를 지정하지 않으면 8K에서, 사고 모드를 켜면 64K에서 멈춥니다. Kimi K3는 최대 1,048,576 토큰까지 작성할 수 있지만 기본값은 131,072입니다.
전체 파라미터 목록은 각 모델의 API 레퍼런스에 있습니다: GPT-6 Astra, Claude Opus 5.5, DeepSeek V4.1 Flash, Kimi K3.
max_tokens, max_completion_tokens, max_output_tokens 중 무엇을 써야 하나요?
셋 모두 답변의 상한을 정합니다. 어느 것을 보낼지는 API 형식과 모델에 따라 다릅니다.
| API 형식 | 파라미터 | 참고 |
|---|---|---|
OpenAI Responses (/v1/responses) | max_output_tokens | OpenAI: "응답에서 생성될 수 있는 토큰 수의 상한으로, 눈에 보이는 출력 토큰과 추론 토큰을 포함합니다." |
OpenAI Chat Completions (/v1/chat/completions) | max_completion_tokens | OpenAI는 max_tokens를 "max_completion_tokens로 대체되어 지원 중단됨"이자 "o 시리즈 모델과 호환되지 않음"으로 표시합니다. GPT-6에는 max_completion_tokens를 쓰세요. |
Anthropic Messages (/v1/messages) | max_tokens | 모든 요청에 필수입니다. |
| DeepSeek Chat Completions | max_tokens | 1~393216. |
| Kimi Chat Completions | max_completion_tokens | max_tokens는 같은 한도의 지원 중단된 이름입니다. |
API가 "max_tokens is not supported with this model"이라고 응답하면 이 표에 있는 파라미터로 바꾸세요.
모델 답변이 왜 끝나기 전에 멈췄나요?
출력 한도에 도달했기 때문입니다. 모든 API는 이를 오류가 아니라 응답 안에서 알려 줍니다.
| API | 필드 | 출력 한도에 도달했을 때의 값 |
|---|---|---|
| OpenAI Responses | incomplete_details.reason | "max_output_tokens" |
| OpenAI Chat Completions | choices[].finish_reason | "length" |
| Anthropic Messages | stop_reason | "max_tokens" |
| DeepSeek | choices[].finish_reason | "length" |
Anthropic에는 답변이 컨텍스트 윈도우 전체를 채웠을 때 쓰는 두 번째 중단 사유 model_context_window_exceeded가 있습니다. DeepSeek의 length는 답변이 max_tokens를 넘은 경우와 대화가 컨텍스트 길이를 넘은 경우를 모두 포함합니다.
해결 방법:
- 출력 한도를 올리세요. 위 표에 있는 모델 최대치까지 올릴 수 있습니다.
- 추론 강도를 낮추세요. 생각을 덜 하면 답변에 쓸 예산이 늘어나고 비용도 줄어듭니다.
- 재시도 대신 이어서 작성하게 하세요. 중간까지의 답변을 다시 보내고 모델에게 계속 쓰라고 요청합니다. Anthropic의 중단 사유 가이드가
max_tokens에 대해 이 방법을 설명합니다.
"context window exceeded"는 무슨 뜻인가요?
요청이 모델의 윈도우에 들어가지 않는다는 뜻입니다. 정확히 어디서 실패하는지는 API에 따라 다릅니다.
- Claude. 입력만으로 윈도우보다 크면 API가 400
invalid_request_error("prompt is too long")를 반환합니다. 입력과max_tokens의 합만 윈도우보다 크다면, Anthropic 문서에 따르면 이 가이드에 나오는 모델을 포함한 Claude 4.5 이상 모델은 요청을 받아들이고, 공간이 부족해지면stop_reason: "model_context_window_exceeded"로 멈춥니다. - DeepSeek. 대화가 컨텍스트 길이를 넘으면 답변이
finish_reason: "length"로 끝납니다.
해결 방법 세 가지를 순서대로 적으면 다음과 같습니다.
- 대화의 오래된 턴을 삭제하거나 요약하세요. 입력만으로 너무 긴 경우에는 이것이 유일한 해결책입니다.
- 입력과 출력의 합이 들어가도록 출력 한도를 낮추세요.
- 더 큰 윈도우를 가진 모델로 옮기세요. 위 표의 네 모델 계열은 모두 약 1M 토큰을 읽습니다.
코딩 에이전트는 이 한도를 어떻게 처리하나요?
코딩 에이전트는 출력 한도를 대신 설정하며, 그 기본값이 모델이 허용하는 값보다 낮을 수 있습니다.
Claude Code는 CLAUDE_CODE_MAX_OUTPUT_TOKENS를 사용합니다. 문서에는 이 값이 "게이트웨이 전용 이름처럼 인식하지 못하는 모델 ID에서는 기본값 32000을 쓰고, 모델 상한을 넘는 값은 상한으로 낮춘다"고 적혀 있습니다. Claude Code에서 DeepSeek V4.1 Flash나 Kimi K3를 실행할 때 더 긴 답변이 필요하면 이 변수를 설정하세요. 같은 문서는 값을 높이면 "자동 압축이 실행되기 전까지 쓸 수 있는 실질적인 컨텍스트 윈도우가 줄어든다"고 경고합니다.
Codex는 config.toml에서 model_context_window를 읽으며, 이 값은 "활성 모델이 쓸 수 있는 컨텍스트 윈도우 토큰"으로 설명되어 있습니다. Codex가 모르는 모델이라면 저희의 Kimi K3 설정과 DeepSeek V4.1 Flash 설정처럼 이 값을 지정하세요. 인식하지 못하는 모델 이름에 대해 Codex는 다음 메시지도 출력합니다: "Model metadata for <model> not found. Defaulting to fallback metadata; this can degrade performance and cause issues."(<model>의 모델 메타데이터를 찾을 수 없어 기본 메타데이터를 사용하며, 성능이 떨어지거나 문제가 생길 수 있다는 뜻입니다.) 세션은 그래도 실행됩니다.
자주 묻는 질문
컨텍스트 윈도우에 출력 토큰도 포함되나요?
네. 입력, 대화 기록, 이미지, 답변이 모두 하나의 컨텍스트 윈도우를 공유합니다. 최대 출력 한도는 그 윈도우 안에서 답변에만 적용되는 별도의 상한입니다.
추론 토큰도 최대 출력 토큰에 포함되나요?
네, 여기서 다룬 네 모델 계열 모두 그렇습니다. 사고(thinking) 토큰은 출력 한도에 포함되고 출력 토큰으로 과금됩니다.
가장 긴 답변을 작성하는 모델은 무엇인가요?
Kimi K3는 max_completion_tokens를 최대 1,048,576까지, DeepSeek V4.1 Flash는 max_tokens를 최대 393,216까지 받습니다. GPT-6와 Claude는 요청당 128K에서 멈춥니다.
최대 출력 한도를 크게 잡으면 비용이 더 드나요?
아니요. 설정한 한도가 아니라 모델이 실제로 작성한 토큰만큼 비용을 냅니다. 한도를 높이는 것은 모델에 그만큼의 공간이 필요할 때만 의미가 있습니다.
이 모델들의 실시간 요금은 어디서 볼 수 있나요?
각 모델 페이지에서 볼 수 있습니다: GPT-6 Astra, Claude Opus 5.5, DeepSeek V4.1 Flash, Kimi K3.



