원샷 프롬프트는 이제 그만: '재귀적 반성(초안→비판→수정)'이 완벽한 프롬프트보다 강력한 이유
Beyond One-Shot: Why Recursive Reflection (Draft → Critique → Rewrite) beats engineering a "Perfect" prompt
핵심 요약
LLM의 성능을 극대화하려면 한 번에 완벽한 프롬프트를 짜기보다 '초안 작성 → 비판 → 수정'의 재귀적 반성 루프를 활용해야 합니다.
- 재귀적 반성 루프 — 초안 작성 후 비판적 페르소나를 도입해 3가지 치명적 결함을 수정하는 방식임.
- 확률 분포 축소 — 비판 단계에서 제약 조건을 추가해 모델이 더 나은 결과물만 생성하도록 유도함.
- 페르소나 활용 — 비판자의 성격(냉소적인 CTO 등)에 따라 수정의 질이 크게 달라짐.
- 반복적 제약 — 완벽한 프롬프트 하나를 만드는 것보다 반복적인 검토 루프가 훨씬 효과적임.
대부분의 LLM 출력물이 평범한 이유는 모델 때문이 아니라 '최소 저항의 경로'를 따르기 때문입니다. 한 번에 최종 답변을 요구하면, 모델은 통계적으로 가장 확률이 높은(그리고 흔히 일반적인) 응답을 내놓게 됩니다.
제가 반복적으로 사용하고 있는 프레임워크를 '재귀적 반성(Recursive Reflection)'이라고 부릅니다. 핵심 통찰은 이것입니다. 모델은 저자로서보다 비판자로서 훨씬 더 날카롭습니다.
논리: 탐색 공간의 붕괴
확률적 관점에서 볼 때, 단일 패스 프롬프트는 모델이 전체 출력 분포인 P(output| prompt)를 탐색하도록 강제합니다.
구조화된 비판(Critique) 단계를 도입하면 조건부 제약이 생깁니다. 본질적으로 다음과 같이 전환하는 셈입니다.
P(output| prompt, critique_standards)
이렇게 하면 특정 평가 기준을 충족하는 출력물의 하위 집합으로 탐색 공간이 붕괴됩니다. 모델을 '더 똑똑하게' 만드는 것이 아니라, 중요한 영역으로 분포를 좁히는 것입니다. 이론적인 부분에 관심이 있다면 이곳의 수학적 추론을 확인해 보세요.
3단계 루프
이 단계를 생략하지 마세요. 토큰의 순서가 최종 수정을 위한 작업 컨텍스트를 만듭니다.
- 초안(Draft): 초기 결과물을 생성합니다.
- 비판(Critique): '냉소적인 페르소나'(예: '적대적인 고위 구매자' 또는 '회의적인 CTO')로 전환합니다. 정확히 3가지 '치명적 결함'을 지적하라고 요구하세요. 군더더기는 빼고요.
- 수정(Rewrite): 원래 구조를 유지하면서 그 3가지 결함만 수정합니다.
페르소나 선택이 중요한 이유
일반적인 비판자는 일반적인 피드백만 줍니다. 수정의 질은 2단계에서 제공되는 '마찰'의 정도에 따라 결정됩니다.
- 회의적인 CTO: 기술 부채, 리소스 가정, 기준 없는 지표를 찾아냅니다.
- 적대적인 타겟 오디언스: 수치로 뒷받침되지 않는 '판매용' 스크립트나 주장을 찾아냅니다.
- 구조적 편집자: 독자가 근거 없는 가정을 하도록 만드는 논리적 허점을 찾아냅니다.
전후 예시 (기술 제안서)
- 초안 문장: "이 시스템은 수동 분류 시간을 약 60% 단축할 것입니다." (근거 없음, 일반적).
- 수정 문장: "1분기 주당 340건의 수동 분류 이벤트를 기준으로, 0.75 신뢰 임계값에서 60% 단축(약 204건)을 예상합니다. 이상치는 인간 큐로 라우팅됩니다." (승인 가능, 정확함).
이 두 문장의 차이는 "그럴듯하게 들리네"와 "승인할 만한 계획이네"의 차이입니다.
통합 및 워크플로우
저는 보통 이 방식을 '사고의 연쇄(Chain-of-Thought)' 초안 위에 덧씌웁니다. 이렇게 하면 모델이 최종 문장뿐만 아니라 자신의 논리 체인까지 평가하게 되어 비판이 훨씬 더 치명적으로 변합니다.
전체 마크다운 프롬프트 템플릿과 더 많은 페르소나 예시는 원문 가이드에서 확인할 수 있습니다.
