⚡ 중급2026-05-157분
AI가 왜 틀렸는지 스스로 말하게 만드는 CoT 디버깅 기법
Chain-of-Thought 프롬프트로 Claude의 추론 과정을 외부로 꺼내면, 오답의 원인을 즉시 파악하고 수정할 수 있다. 단순히 '답을 내놔'가 아니라 '과정을 보여줘'로 바꾸는 것만으로 정확도가 크게 달라진다.
chain-of-thoughtprompt-engineeringdebugging
CoT가 필요한 순간
기초 단계에서는 Claude에게 질문을 던지고 답만 받는다. 그런데 복잡한 로직(수학 계산, 다단계 조건 분기, 법률·의료 판단 등)에서는 틀린 답이 나와도 왜 틀렸는지 알 수 없다. CoT(Chain-of-Thought)는 모델이 중간 추론 단계를 텍스트로 출력하도록 유도해, 사람이 오류 지점을 정확히 짚을 수 있게 한다.
핵심 원리: 토큰을 '생각하는 공간'으로 사용하게 하면 모델은 더 정확한 답에 도달한다.
프롬프트 설계 패턴 3가지
| 패턴 | 프롬프트 예시 | 효과 |
|------|-------------|------|
| 단순 CoT | "단계별로 생각한 뒤 답하라" | 기본 정확도 향상 |
| 구조적 CoT | "① 가정 ② 추론 ③ 결론 순서로" | 출력 파싱 용이 |
| 자기검증 CoT | "답을 낸 뒤 반례를 하나 찾아라" | 오류 자가수정 |
아래 코드는 구조적 CoT를 Anthropic SDK로 구현하고, 추론 섹션만 파싱해 로그로 남기는 예제다.
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const COT_SYSTEM = `
당신은 단계별 추론을 반드시 출력해야 합니다.
모든 답변을 다음 XML 태그로 감싸세요:
<reasoning>여기에 단계별 추론</reasoning>
<answer>여기에 최종 답변</answer>
`.trim();
async function askWithCoT(userQuestion: string) {
const response = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 1024,
system: COT_SYSTEM,
messages: [{ role: "user", content: userQuestion }],
});
const raw = response.content[0].type === "text"
? response.content[0].text
: "";
// 추론 과정과 최종 답 분리
const reasoning = raw.match(/<reasoning>([\s\S]*?)<\/reasoning>/)?.[1]?.trim();
const answer = raw.match(/<answer>(([\s\S]*?))<\/answer>/)?.[1]?.trim();
if (!reasoning || !answer) {
throw new Error("CoT 형식 파싱 실패 — 시스템 프롬프트를 확인하세요");
}
console.log("[추론 과정]\n", reasoning);
console.log("\n[최종 답변]\n", answer);
return { reasoning, answer };
}
// 사용 예
awkWithCoT(
"월급 320만원, 소득세율 15%, 4대보험 9%일 때 실수령액은?"
).catch(console.error);
실전 활용 및 주의사항
언제 CoT를 켜야 하나?
- 수치 계산·비교가 포함된 경우
- 여러 조건이 중첩된 비즈니스 로직
- 답에 대한 근거를 사용자에게 보여줘야 하는 경우
언제 꺼야 하나?
- 단순 분류·번역·요약 → 토큰 낭비
- 응답 속도가 UX에 직결되는 실시간 채팅
claude-haiku-4-5는 속도 우선,claude-sonnet-4-6은 복잡한 추론 우선으로 모델을 선택하라.
체크리스트
- [ ] 시스템 프롬프트에
<reasoning>태그 형식을 명시했다 - [ ] 파싱 실패 시 예외 처리를 추가했다
- [ ] CoT가 필요 없는 단순 엔드포인트에서는 제거해 토큰을 아꼈다
- [ ] 추론 로그를 DB에 저장해 반복 오류 패턴을 분석하고 있다
- [ ] 자기검증 패턴(
반례를 찾아라)을 고위험 판단에 적용했다