--- id: pattern-reflection title: "Reflection Pattern" category: "Pattern_AI" status: "draft" verification_status: "applied" canonical_id: "" aliases: ["Reflection", "자기성찰 패턴", "self-reflection", "self-critique"] duplicate_of: "" source_trust_level: "A" confidence_score: 0.88 created_at: 2026-06-13 updated_at: 2026-06-13 review_reason: "" merge_history: [] tags: ["pattern", "ai", "reflection", "self-improvement", "platform-independent"] raw_sources: ["일반 소프트웨어 공학 지식", "ConnectAI/src/intelligence/*, src/features/selfReflector/* (적용 예)"] applied_in: ["ConnectAI"] github_commit: "" --- # [[Reflection Pattern]] ## 🎯 한 줄 통찰 (One-line insight) Reflection 은 "모델이 자기 출력을 다시 점검·수정" 하는 패턴으로, 작은 모델의 1-pass 오류를 줄이지만 *호출이 늘어 비용/지연이 증가* 하므로 조건부로 써야 한다. ## 🧠 핵심 개념 (Core concepts) 1. **생성 → 점검 → (필요시) 재생성** 루프. 2. 점검은 *결정론 신호* 또는 *LLM 자기비판*. 3. 자기검토 지시를 시스템 프롬프트에 주입. 4. 무한 루프 방지(최대 라운드). ## 📖 세부 내용 (Details · 패턴 명세) - **Problem (언제 쓰나):** 1-pass 정확도가 부족하고, 오류 비용이 재검토 비용보다 클 때. - **사용 조건:** 점검 신호(규칙/요구사항/근거) 정의 가능; 추가 호출 latency 감당. - **장점:** 정확도·완결성↑, 누락/모순 발견, 불확실성 표면화. - **단점:** 지연·비용↑, 과도하면 헤지 남발, 무한 루프 위험. - **대안:** 결정론 검증만(무LLM), 외부 검증기, 더 큰 모델 1-pass. - **실패 사례:** 매 턴 무조건 reflect 로 latency 폭증; 자기비판이 오히려 정답을 망침; 종료 조건 없어 루프. ## 💻 코드 패턴 (Code patterns) ```text draft = LLM(task) signals = deterministicChecks(draft) # 커버리지/근거/확신도 — 항상(저비용) if signals.risky: # 조건부로만 LLM 점검 issues = LLM_critique(task, draft) if issues: draft = revise(draft, issues) # 최대 N라운드 emit(draft + confidence_footer) ``` 적용 예: [[Intelligence 검증 레이어]] (사전 자기검토 블록 + 조건부 critic), 결정 [[ADR-0009 결정론 항상 LLM검증 조건부]]. ## ⚖️ 모순 및 업데이트 (Contradictions & updates) "항상 성찰하면 좋다" 는 비용을 무시한 통념 — *위험 신호가 있을 때만* 깊은 성찰이 비용 대비 효과적. ## 🛠️ 적용 사례 (Applied in summary) ConnectAI selfReflector + 조건부 Critic. ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[패턴 카탈로그 인덱스]] - **관련 개념:** [[Critic Pattern]], [[Agent Orchestration Pattern]], [[프롬프트 엔지니어링 패턴]] - **참조 맥락:** 작은 모델의 자기개선 루프 설계 시 참조. ## 📚 출처 (Sources) - [S1] 일반 reflection/self-critique 지식 - [S2] ConnectAI/src/intelligence/*, features/selfReflector/* — 적용 예 ## 📝 변경 이력 (Change history) - 2026-06-13: 프로젝트 독립 패턴 카드 작성.