추론하기
추론하기 (Reasoning)
Grok의 추론 모델은 답을 내기 전에 문제를 단계별로 곱씹는 특징이 있어요. 복잡한 수학·논리·분석 작업에서 특히 강점을 보이고, 모델이 얼마나 깊이 생각할지 reasoning_effort 파라미터로 조절할 수 있죠. 이 페이지에서는 추론 모델을 다룰 때 알아 두면 좋은 파라미터와 동작을 정리해요.
추론 모델의 주요 특징
- 답하기 전에 생각하기: 추론 모델은 답변 전에 문제를 단계별로 생각해요.
- 수학·정량적 강점: 수치 문제, 논리 퍼즐, 복잡한 분석 작업에 탁월해요.
- 추론 트레이스: 사용량 메트릭에서
reasoning_tokens를 노출하고, 일부 모델은include: ["reasoning.encrypted_content"]로 암호화된 추론 내용을 돌려줄 수 있어요.
reasoning_effort 파라미터
grok-4.6과 grok-4.5는 reasoning_effort 파라미터를 지원해서, 모델이 답변 전에 생각에 쏟는 노력을 조절할 수 있어요. 값을 지정하지 않으면 기본값은 "high"이고, 추론을 아예 끌 수는 없습니다.
주의할 점이 하나 있어요. presencePenalty, frequencyPenalty, stop은 추론 모델과 함께 쓸 수 없어요. 여기에 포함된 요청은 오류를 돌려줍니다.
노력 단계 비교
| 설정 | 설명 | 가장 적합한 용도 |
|---|---|---|
"low" |
추론 토큰을 적게 쓰지만 여전히 빠름 | 지연에 민감한 에이전트 작업, 간단한 도구 호출 |
"medium" |
덜 지연에 민감한 앱을 위해 더 생각함 | 복잡한 데이터 분석, 긴 문맥 추론 |
"high" (기본) |
더 깊은 사고를 위해 추론 토큰을 더 사용 | 매우 어려운 문제, 복잡한 수학, 다단계 논리 |
"xhigh" |
최대 추론 깊이, 그만큼 지연도 높음 | 정답 품질이 응답 시간보다 중요한 최난해 문제 |
"xhigh"는 grok-4.6 이후에서만 쓸 수 있어요. grok-4.5처럼 지원하지 않는 모델에서는 "xhigh" 요청이 "high"로 처리됩니다.
파라미터 설정 예시
import os
from xai_sdk import Client
from xai_sdk.chat import system, user
client = Client(
api_key=os.getenv("XAI_API_KEY"),
timeout=3600,
)
chat = client.chat.create(
model="grok-4.6",
reasoning_effort="high",
messages=[system("You are a highly intelligent AI assistant.")],
)
chat.append(user("Find all prime numbers p such that p^2 + 2 is also prime. Prove your answer."))
response = chat.sample()
print("Final Response:")
print(response.content)
멀티 에이전트 모델에서의 의미
grok-4.20-multi-agent에서는 reasoning.effort가 추론 깊이가 아니라 요청에 협력하는 에이전트 수를 제어해요. 자세한 내용은 멀티 에이전트 문서에서 확인할 수 있어요.
모델별 동작 요약
| 모델 | reasoning 파라미터 |
동작 |
|---|---|---|
grok-4.6 |
reasoning.effort: "low" / "medium" / "high" (기본) / "xhigh" |
추론 깊이 제어 (끌 수 없음) |
grok-4.5 |
reasoning.effort: "low" / "medium" / "high" (기본) |
추론 깊이 제어 (끌 수 없음) |
grok-4.20-multi-agent |
reasoning.effort: "low" / "medium" / "high" / "xhigh" |
에이전트 수 제어 (4 또는 16) |
요약된 추론 내용 스트리밍
grok-4.6에서는 모델의 내부 추론 요약을 노출해요. 최종 응답과 함께 추론 요약 델타를 스트리밍해 보는 예시예요. 추론 모델은 답이 길어질 수 있으니 타임아웃을 길게 잡아 두는 게 좋습니다.
import os
from xai_sdk import Client
from xai_sdk.chat import system, user
client = Client(
api_key=os.getenv("XAI_API_KEY"),
timeout=3600, # 추론 모델용으로 타임아웃을 길게
)
chat = client.chat.create(
model="grok-4.6",
messages=[system("You are a highly intelligent AI assistant.")],
)
chat.append(user("A projectile is launched at 30 m/s at 37° above horizontal from a 45 m cliff. Find its speed on impact. (g=10 m/s²)"))
for response, chunk in chat.stream():
if chunk.reasoning_content:
print(chunk.reasoning_content, end="", flush=True)
추론 모델을 쓰면 추론 토큰도 총 사용량의 일부로 과금된다는 점을 기억해 두세요.
더 알아보기
- 텍스트 생성 (Generate Text) — 암호화된 사고 내용 다루기
- 스트리밍 (Streaming) — 추론 요약 실시간 출력
- 멀티 에이전트 (Multi Agent)