--- id: pattern-critic title: "Critic Pattern" category: "Pattern_AI" status: "draft" verification_status: "applied" canonical_id: "" aliases: ["Critic", "LLM judge", "검수자 패턴", "verifier"] 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", "critic", "verification", "platform-independent"] raw_sources: ["일반 소프트웨어 공학 지식", "ConnectAI/src/intelligence/criticAgent.ts (적용 예)"] applied_in: ["ConnectAI"] github_commit: "" --- # [[Critic Pattern]] ## 🎯 한 줄 통찰 (One-line insight) Critic 패턴은 "별도의 검수자(보통 LLM)가 산출물을 비판적으로 평가" 하는 것으로, 생성자와 검수자를 분리하면 환각·누락을 잡지만 *검수 출력도 결국 LLM 이라 강건 파싱·근거 강제가 필수* 다. ## 🧠 핵심 개념 (Core concepts) 1. 생성자와 검수자 역할 분리. 2. 검수 기준 명시(요구 충족·근거·미결 구분·지어냄 금지). 3. 구조화 출력(JSON) + 강건 파싱. 4. 검수 결과를 보완 카드/재작성 입력으로. ## 📖 세부 내용 (Details · 패턴 명세) - **Problem (언제 쓰나):** 산출물의 사실성/완결성이 중요하고, 생성자 자체 점검만으론 부족할 때. - **사용 조건:** 검수 기준을 명문화 가능; 검수 호출 비용 감당; 출력 파싱 방어. - **장점:** 독립 시각으로 오류 포착, 근거 없는 단정 차단, 보완 제안. - **단점:** 추가 LLM 비용, 검수자도 환각 가능, JSON 형식 위반. - **대안:** 결정론 규칙 검증, 다수결(여러 검수자), 사람 검수. - **실패 사례:** 검수자가 원문에 없는 내용을 "보완" 으로 지어냄; JSON.parse 직접 호출로 파싱 실패; 무조건 검수로 비용 폭증. ## 💻 코드 패턴 (Code patterns) ```text critique = LLM_critic(system="검수자. 근거 없는 단정/지어냄은 major. JSON만 출력", user=task+draft) result = parseBalancedJson(critique) or heuristicFallback() # 잡설 내성 if not result.pass: attach(footer(result.issues, result.supplement)) # 규칙: supplement 도 원문 근거 한정, 없으면 "(확인 필요)" ``` 적용 예: [[Intelligence 검증 레이어]] 의 criticAgent(조건부 1-pass + 균형 괄호 파서), 결정 [[ADR-0009 결정론 항상 LLM검증 조건부]]. ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 검수자가 생성자보다 똑똑하지 않으면 효과가 제한적 — 작은 모델끼리는 *결정론 신호 + 근거 강제* 가 LLM-judge 보다 안정적일 수 있다. ## 🛠️ 적용 사례 (Applied in summary) ConnectAI Critic(조건부), regression LLM-judge. ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[패턴 카탈로그 인덱스]] - **관련 개념:** [[Reflection Pattern]], [[프롬프트 엔지니어링 패턴]], [[소프트웨어 실패 라이브러리]] - **참조 맥락:** 작은 모델이 산출물 품질 게이트를 둘 때 참조. ## 📚 출처 (Sources) - [S1] 일반 LLM critic/judge 지식 - [S2] ConnectAI/src/intelligence/criticAgent.ts — 적용 예 ## 📝 변경 이력 (Change history) - 2026-06-13: 프로젝트 독립 패턴 카드 작성.