"LLM 추론 모드 (5/6) — OpenAI·Codex의 reasoning_effort: minimal부터 xhigh까지"
3·4편이 Claude의
effort하나가 사고·텍스트·도구 호출을 한꺼번에 조절한다는 점을 봤다면, 5편은 OpenAI가 같은 트레이드오프를 어떤 손잡이로 다루는지를 본다. 핵심은 OpenAI가 손잡이를 둘로 쪼갰다는 것이다 — 사고 깊이는reasoning_effort, 출력 길이는verbosity.
OpenAI도 모델을 바꾸지 않고 호출마다 품질·지연·비용을 조정하는 손잡이를 노출한다. 이름은 reasoning_effort다. 다만 Claude와 결정적으로 다른 점이 둘 있다. 손잡이가 둘로 나뉘어 있다는 것, 그리고 값의 집합과 기본값이 모델 세대마다 다르다는 것이다. 5편은 이 둘을 정면으로 본다.
한 문단 요약
OpenAI는 사고 깊이를
reasoning_effort로 조절한다(API의 Responses/Chat, Codex CLI 설정에서는model_reasoning_effort). 값은 모델 세대마다 다르다 — GPT-5는minimal·low·medium·high, GPT-5.5는none·low·medium·high·xhigh, gpt-5-codex 계열은low·medium·high·xhigh(minimal미지원, 설정하면low로 정규화). 기본값은medium으로 균형 잡힌 출발점이다. 그리고 OpenAI는 출력 길이를 별개 파라미터verbosity로 분리했다 — Claude의 단일effort가 사고 깊이와 출력 장황함을 동시에 건드리는 것과 대비된다. 추론 토큰은 원문이 반환되지 않고(요약만) 출력 토큰으로 과금된다.
1. 손잡이의 이름 — reasoning_effort와 model_reasoning_effort
OpenAI에서 사고 깊이를 조절하는 파라미터는 reasoning_effort다. 노출되는 표면이 둘이다.
- API(Responses / Chat):
reasoning_effort. - Codex CLI 설정:
model_reasoning_effort.
같은 개념의 손잡이지만, 코드에서 API를 직접 부를 때와 Codex CLI 설정 파일에서 쓸 때 키 이름이 다르다는 점만 기억하면 된다. 의미는 동일하다 — 모델이 보이는 답을 내기 전에 추론(사고) 토큰을 얼마나 쓸지의 기조를 정한다.
값이 클수록 추론 토큰이 늘고, 추론 시간이 길어지며, 어려운 과제에서의 정확도가 올라간다. 값이 작을수록 그 반대다. Claude의 effort와 같은 트레이드오프 손잡이지만, 다음 절에서 보듯 값의 집합이 모델 세대마다 다르다.
2. 모델 세대별 값 — 같은 손잡이, 다른 눈금
가장 먼저 부딪히는 함정은 이것이다 — reasoning_effort가 받는 값이 모델마다 다르다. 어떤 모델엔 있는 값이 다른 모델엔 없다.
| 모델 세대 | 받는 값 | 기본값 | 비고 |
|---|---|---|---|
| GPT-5 | minimal, low, medium, high |
medium |
minimal 지원 |
| GPT-5.5 | none, low, medium, high, xhigh |
medium |
최하단이 none, 상단에 xhigh 추가 |
| GPT-5.2-Codex / gpt-5-codex | low, medium, high, xhigh |
medium |
minimal 미지원 — 설정 시 low로 정규화 |
읽는 법:
- GPT-5은 최하단에
minimal을 둔다. - GPT-5.5는 최하단이
none으로 바뀌고 상단에xhigh가 더해진다. - gpt-5-codex 계열(GPT-5.2-Codex 포함)은 코딩·에이전트 작업에 맞춰진 모델로,
minimal을 지원하지 않는다.minimal을 설정하면low로 정규화된다. 즉 Codex 모델에서 "추론을 거의 끄는" 가장 가벼운 단계는low다.
세대별로 눈금이 다르므로, 코드나 설정을 다른 모델로 옮길 때는 그 모델이 받는 값 안에서만 지정해야 한다.
3. minimal — 지연을 깎는 단계
minimal은 추론 토큰을 거의 또는 전혀 쓰지 않고 동작해 지연(특히 첫 토큰까지의 시간, time-to-first-token)을 최소화한다.
언제 쓰나:
- 출력 공간이 좁은 결정적·경량 과제 — 추출(extraction), 포맷팅, 짧은 리라이트, 단순 분류.
- 깊은 사고가 정확도를 거의 못 올리고 지연만 늘리는 작업.
언제 피하나:
- 다단계 계획이나 도구를 많이 쓰는 워크플로우. 이런 작업은 추론을 깎으면 품질이 떨어진다.
minimal은 GPT-5에 있고, gpt-5-codex 계열에는 없다(설정하면 low로 정규화). GPT-5.5에서는 최하단이 none이다.
4. 기본값은 medium — 그리고 더 높일 때
기본값은 위 표대로 medium이다. 품질·신뢰성·지연·비용의 균형을 잡는, 권장되는 출발점이다. 특별한 이유가 없으면 여기서 시작해서 필요한 쪽으로 움직이는 게 맞다.
- 어려운 과제에서 답이 얕게 나오면 effort를 올린다(
high, 그리고 지원 모델이면xhigh). 추론 토큰이 늘고, 추론 시간이 길어지며, 어려운 과제의 정확도가 올라간다. - 가벼운 결정적 과제라면 낮춘다(
low, GPT-5의minimal, GPT-5.5의none). 지연과 비용이 준다.
Claude의 기본값이 high인 것과 달리 OpenAI의 기본값은 medium이라는 점은 두 플랫폼을 오갈 때 자주 헷갈리는 지점이다 — 같은 "기본값으로 두기"가 서로 다른 사고량을 의미한다.
5. reasoning_effort vs verbosity — 손잡이를 둘로 쪼갰다
OpenAI 설계의 핵심 차이가 여기 있다. OpenAI에는 reasoning_effort와 별개로 verbosity라는 파라미터가 있다.
reasoning_effort= 사고의 깊이. 보이는 답 이전에 추론 토큰을 얼마나 쓸지.verbosity(low/medium/high) = 출력의 길이/장황함. 답을 얼마나 길게 펼칠지.
이 둘은 직교한다. verbosity는 프롬프트를 다시 쓰지 않고 답변 길이만 조절하게 해준다 — 예컨대 깊게 생각하되(높은 reasoning_effort) 짧게 답하게(낮은 verbosity) 하거나, 그 반대도 가능하다.
Claude와의 대비를 분명히 해두자.
| 사고 깊이 | 출력 길이/장황함 | |
|---|---|---|
| Claude | effort 하나가 둘 다 조절 |
(effort가 함께 조절) |
| OpenAI | reasoning_effort |
verbosity (별개) |
즉 Claude는 단일 effort 손잡이가 사고 깊이와 출력·도구 장황함을 동시에 움직인다. OpenAI는 이를 두 손잡이로 쪼개 사고 깊이(reasoning_effort)와 출력 길이(verbosity)를 따로 돌린다. 같은 트레이드오프를 다루는 두 가지 설계 철학이다.
6. 추론 토큰은 어떻게 반환되고 과금되나
OpenAI의 추론 토큰은 원문 그대로 반환되지 않는다 — 가려진 채로, 선택적 요약만 제공된다. 그리고 추론 토큰은 출력 토큰으로 과금된다(OpenAI 플랫폼의 일반 동작이자 과금 방식). 즉 reasoning_effort를 올리면 보이지 않는 추론 토큰이 늘고, 그만큼 출력 토큰 비용이 늘어난다.
이 지점은 Claude와 같은 큰 틀을 공유한다 — 양쪽 모두 사고/추론 토큰은 비싼 출력 토큰 등급으로 과금되고, 원문 사고는 반환되지 않는다(요약이 최대치). 그래서 effort 손잡이는 품질뿐 아니라 직접적인 비용 손잡이이기도 하다.
7. Codex CLI — config.toml와 -c 오버라이드
Codex CLI에서는 같은 손잡이가 설정 파일과 명령행 양쪽에 노출된다.
~/.codex/config.toml에 모델과 추론 effort를 적는다.
model = "gpt-5.2-codex"
model_reasoning_effort = "high" # low | medium | high | xhigh
한 번의 실행에만 다른 effort를 쓰고 싶으면 -c로 설정을 오버라이드한다.
codex -m gpt-5.2-codex -c model_reasoning_effort="xhigh" "your prompt"
설정이 받는 전체 enum은 다음과 같다 — none | minimal | low | medium | high | xhigh. 단, 실제 적용 가능 여부는 모델별 지원에 따른다. 예를 들어 gpt-5-codex 계열은 minimal이 없으므로(설정하면 low로 정규화), Codex 기본 모델에서 가장 가벼운 단계는 low다.
8. 어떤 값을 고를까 — 요약
- 기본은
medium— 품질·신뢰성·지연·비용의 균형. 여기서 시작한다. - 가볍고 결정적인 과제(추출·포맷팅·짧은 리라이트·단순 분류) →
minimal(GPT-5) /none(GPT-5.5) /low(Codex 계열). 지연을 깎는다. - 어려운 다단계·도구 중심 과제 →
high, 그리고 지원 모델이면xhigh. 추론 토큰과 시간을 더 쓰고 정확도를 얻는다. - 답 길이가 문제라면 effort가 아니라
verbosity를 움직인다. 사고 깊이와 출력 길이는 별개 손잡이다.
이어지는 글
여기까지 Claude의 effort(3·4편)와 OpenAI의 reasoning_effort·verbosity(5편)를 각각 해부했다. 마지막 6편은 둘을 나란히 놓고 비교한다 — 비용·지연·품질의 트레이드오프를 벤치마크 수치와 함께 보고, 과제 난이도에 손잡이를 어떻게 맞출지를 정리한다. "더 생각하게 하면 늘 좋아지는가"라는 물음에 대한 답이 거기 있다.
파라미터 이름·모델별 값·기본값·Codex 설정은 OpenAI의 GPT-5 신규 파라미터 문서, GPT-5.5·GPT-5.2-Codex 모델 문서, Codex CLI 설정 자료를 1차 자료로 정리했다. 추론 토큰의 과금(출력 토큰 등급)은 OpenAI 플랫폼의 일반 동작으로 표기했다.
시리즈 전체 안내: 시리즈 목차
댓글
댓글 쓰기