콘텐츠로 이동

03-실전

03 — 실전: 자기 검증 해체 절차

섹션 제목: “03 — 실전: 자기 검증 해체 절차”

진단: 우리 파이프라인은 자기 검증인가

섹션 제목: “진단: 우리 파이프라인은 자기 검증인가”

다음 5문항으로 자가 진단.

  1. writer와 verifier가 다른 sub-agent type인가?
  2. verifier가 writer의 사고과정(scratchpad)을 입력으로 받지 않는가?
  3. verifier가 외부 도구 (테스트 러너, 링크 체커, 빌드)로 사실을 검증하는가, 아니면 텍스트만 읽는가?
  4. verifier 출력이 “Looks good”이 아니라 구조화된 게이트(pass/fail + 항목별 evidence)인가?
  5. published 상태로 마킹하는 권한이 verifier 또는 사람에게만 있는가? (writer에게 없다는 것을 보장하는가?)

5개 모두 YES가 아니면 자기 검증이다.

역할별 sub-agent를 따로 만든다. OMC라면 team N:writer와 별도로 team N:verifier를 호출. 단일 LLM 호출 안에서 “스스로 검증해 봐”는 금지.

verifier 프롬프트에 writer의 reasoning을 포함하지 않는다. 출력 결과물만 전달.

verifier에게는 다음을 의무화.

  • 코드 챕터 → pytest / npm test 실제 실행
  • 링크 → link-checker 스크립트 실제 호출
  • 인용 → sources/ 파일 실제 grep

LLM이 말로 “테스트 통과”라고 보고하면 신뢰하지 않는다. 도구의 raw exit code만 신뢰한다.

verifier 출력 형식:

gate: pass | fail
checks:
- name: link-check
result: pass
evidence: "0 broken links / 47 checked"
- name: source-citation
result: fail
evidence: "3 quotes without source: line 14, 22, 88"

“Looks good”은 게이트가 아니다.

status: published로 바꿀 수 있는 주체를 verifier 또는 사람으로 한정. writer는 status: writer-pass까지만.

자기 검증이 정당화되는 유일한 케이스는 형식적·기계적 검사다 — 들여쓰기, 마크다운 문법, 형용사 필터. 이 경우에도 가급적 정규식/린터에 맡긴다. LLM 호출로 처리하지 않는다.