콘텐츠로 이동
DOC–00 TECHNICAL WHITEPAPER / PUBLIC RELEASE AUTHORIZED

Feedback Control Plane · 루프 엔지니어링

NERV의 루프 엔지니어링은 에이전트 프롬프트를 한 번 고치는 작업이 아니라, 실행 결과를 관측하고 제한된 후보 변경을 만든 뒤 독립 검증기로 재검증하는 운영 구조다. Claude Code 기반 시스템의 강점을 유지하면서도, 반복적 종합·평가 작업은 Codex와 Python controller로 이동해 Claude 사용량을 줄인다.

현재 상태 · 2026-08-29

세 루프의 controller와 대시보드 계측은 구현됐지만 실사용 코호트는 아직 시작 전이다. 현재 진척은 daily-paper-recommender 0/20, wiki-compounder 0/20, paper-summarizer 0/50이다. 0건은 통과가 아니라 awaiting_observation이며, 아래 승격 기준을 충족하기 전에는 생산 정책이나 파일을 자동 변경하지 않는다.

설계 원칙

루프는 다음 다섯 단계를 분리한다.

  1. Observe — 입력·중간 단계·결과·종료 사유를 실행 단위로 기록한다.
  2. Propose — actor는 제한된 후보만 제안한다. 생산 파일에 대한 직접 쓰기 권한을 갖지 않는다.
  3. Verify — actor와 독립된 Python controller가 해시·스키마·인용·lint·정책 게이트를 검사한다.
  4. Persist — 성공과 실패를 모두 상태 장부에 남긴다. 로그 부재를 성공으로 해석하지 않는다.
  5. Promote — 사전 등록한 코호트와 기준을 채운 뒤 PI가 승격 여부를 판단한다.
실제 실행·산출물
관측 장부 생성
Codex 또는 현행 정책이 shadow 후보 제안
Python controller 독립 검증
통과/실패 모두 기록
코호트 판정
미달·실패
rollback · observe_only
기준 충족
PI 승격 검토

세 개의 bounded shadow loop

대상 수준·actor 현재 분모 생산 쓰기 정책 승격 게이트
daily-paper-recommender L4 shadow · 현행 추천 정책 + identity shadow 0 / 20 exact outcomes 현행 추천 유지, 정책 변경 없음 20개의 정확히 귀속된 결과 전에는 정책 변경 금지
wiki-compounder L3 shadow · Codex gpt-5.6-luna 직접 호출 0 / 20 transactions --apply 경로 없음, 임시 vault만 수정 unsupported source 0 · rollback 재현 100% · lint regression 0
paper-summarizer L2 shadow · Sonnet 5 본체 유지 + 결정론적 span 복구 0 / 50 parsed summaries 인용구·위치도 staging에서만 변경 false positive와 신규 재발을 분리해 50건 후 판단

daily-paper-recommender · 결과학습 루프

추천기는 매 실행의 수집·중복제거·점수화·상위 후보·선택·종료 사유와 정책 버전을 기록한다. 사용자 피드백은 정확한 추천 사건과 연결된 경우에만 정책 평가 분모로 인정한다. 첫 20개 exact outcome 동안 identity shadow가 현행 선택을 재현하는지 관측하며, 이 기간에는 점수 가중치나 생산 선택을 바꾸지 않는다.

이 구조의 핵심은 “피드백 행 수”와 “정책 학습에 쓸 수 있는 귀속 결과 수”를 구분하는 것이다. 중복 사건이나 추천 ID가 불명확한 평가는 코호트 진척에 포함하지 않는다.

wiki-compounder · 트랜잭션 루프

표준 Zotero post-sync 경로는 Claude 서브에이전트를 거치지 않고 Codex gpt-5.6-luna를 read-only actor로 직접 호출한다. actor는 완전한 replacement proposal과 preimage hash, source manifest, claim-to-source span을 JSON으로 반환할 뿐이다. Python controller는 다음을 검사한 뒤 임시 vault에서만 proposal을 적용한다.

  • trigger와 대상 파일의 preimage hash
  • 대상 경로 allowlist와 20파일 상한
  • Library·summary source 실재와 source_count == unique source_ids
  • parsed 원문에 실제로 존재하는 인용 span
  • 기존 대비 wiki lint·numeric provenance·citation guard 회귀 여부

모든 게이트를 통과해도 판정은 shadow_accept이며 생산 반영은 0건이다. actor 오류나 게이트 실패는 전체 rollback으로 끝나고 부분 적용과 Sonnet fallback은 허용하지 않는다.

paper-summarizer · parsed 인용 복구 루프

요약 생성 본체는 검증된 Sonnet 5 경로를 유지한다. 새 요약 전건에 v3 verifier를 실행해 코호트 분모를 기록하되, 복구 시도는 source_kind=parsed이면서 false_verified가 있는 경우로 제한한다. 유일하게 매칭되는 원문 span이 있을 때만 staged source_quote, source_location, verified_by_grep를 고치고 v3를 다시 실행한다. 주장 본문·수치·서술은 건드리지 않는다.

한 번의 복구 뒤에도 실패하면 두 번째이자 마지막 전이로 verified_by_grep:false와 수동 검토 사유만 제안한다. parsed 원문이 없는 note/excerpt 경로는 observe_only이며, 생산 요약 파일은 shadow 기간 동안 바뀌지 않는다.

관측과 승격

NERV 대시보드의 MAGI → ARCHITECTURE → Feedback Control Plane은 각 루프의 실시간 분모, 상태, invalid artifact 수와 승격 게이트를 표시한다. 실행 디렉터리가 없거나 유효한 관측이 0건이면 녹색 성공 대신 AWAITING OBSERVATION으로 표시한다.

코호트 목표에 도달해도 자동 승격하지 않는다. 장부를 감사해 귀속 정확성·회귀·비용·품질을 함께 확인한 뒤 PI가 one-change canary 또는 계속 shadow를 선택한다. 이 정책은 모델 교체 자체보다 가역성, 증거 분모, 실패 재현성을 우선한다.