확장 사고는 모델이 답하기 전에 연습장에 먼저 풀어 보듯 별도의 사고 블록에서 문제를 단계별로 따져 보게 하는 기능으로, 수학·코딩·큰 계획처럼 바로 답하면 틀리기 쉬운 작업에 켠다. 다른 모델로 바뀌는 게 아니라 같은 모델이 시간과 토큰을 더 들여 고민하는 것이다.
| 상황 | 고를 것 |
|---|---|
| 도구 없이 깊게 따져야 하는 코딩·수학 | 확장 사고 |
| 규칙을 지키며 도구를 차례로 부르는 작업 | think 도구 |
| 바로 답해도 되는 쉬운 질문 | 끄기 |
확장 사고는 답을 시작하기 전에 생각하고, think 도구는 답하는 도중 도구 결과를 받은 뒤 잠깐 생각한다.
켜면 응답이 추론 과정이 담긴 thinking 블록과 최종 답이 담긴 text 블록으로 나뉜다.
요청에 thinking: {type: "enabled", budget_tokens: N}을 넣으면 켜진다. budget_tokens는 모델이 생각에 쓸 토큰의 목표치로, 클수록 복잡한 문제를 더 꼼꼼히 본다. 모델이 생각할 양을 알아서 정하는 adaptive 방식도 있지만, 응답 시간이나 비용을 딱 묶어 둬야 하면 예산을 직접 거는 편이 낫다.
도구를 쓰는 에이전트라면 인터리브드 사고(interleaved thinking)도 같이 켤 수 있다. 도구 호출 사이사이에 생각을 끼워 넣어, 결과를 볼 때마다 다음에 할 일을 따져 보게 한다.
Tab 키로 켜거나, 프롬프트에 think hard, ultrathink 같은 말을 넣으면 된다. 계획을 건너뛰면 모델이 곧장 코딩부터 하기 쉬우니, 큰 변경일수록 앞부분에 사고를 몰아 쓴다.
| 순서 | 시키는 일 |
|---|---|
| 1. 탐색 | 관련 파일을 읽게만 한다 |
| 2. 계획 | "ultrathink. 분석하고 계획을 제안해, 아직 코드는 쓰지 마" |
| 3. 구현 | 확인한 계획대로 코드를 쓰게 한다 |
| 4. 마무리 | 커밋과 PR을 맡긴다 |
처음 늘린 예산은 정확도를 크게 올리지만, 계속 늘리면 같은 토큰으로 얻는 개선 폭이 점점 작아진다. 쉬운 작업에서는 과하게 고민하다 오히려 성능이 떨어지기도 한다. 무조건 켜 두기보다 어려운 작업에만 쓰는 게 맞다.
비용도 따져야 한다. 화면에는 사고 내용이 요약되어 보여도 요금은 실제로 생각한 전체 토큰 기준으로 나간다. 사고 설정을 바꾸면 프롬프트 캐시가 무효화되므로, 대화 중에 자주 바꾸지 말고 작업 유형별로 고정해 두는 편이 낫다.
사고 과정은 평소 답변보다 딱딱하게 느껴질 수 있고, 사람의 생각처럼 틀리거나 덜 끝난 내용이 섞일 수 있다. 모델이 어떻게 판단했는지 점검하는 단서로 쓰되, 그 자체를 검증된 설명으로 믿지는 않는다.
사람들은 확장 사고를 늘 켜 두기보다 작업에서 가장 어려운 단계에만 켠다. 계획이나 어려운 풀이에는 생각을 몰아 쓰고, 단순한 실행이나 짧은 질문에는 꺼서 속도와 비용을 아낀다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 코딩 에이전트 | 큰 변경 전 계획 단계에서 ultrathink로 깊게 생각하게 하고, 구현은 확인한 계획대로 진행 |
| API 에이전트 | 작업 유형별로 사고 예산을 고정하고, 도구를 여러 번 부르는 흐름엔 인터리브드 사고를 함께 켬 |
| 채팅 앱 | 수학 풀이, 복잡한 분석처럼 바로 답하면 틀리기 쉬운 질문에서만 확장 사고를 켜고 물어봄 |