Proof-or-Stop: 에이전트 말 대신 증거로 done을 통제하는 Loop Engineering
Proof-or-Stop: Don't Trust the Agent, Trust the Evidence -- Loop Engineering for Verifiable Evidence-Gated Lifecycle Control
TL;DR Highlight
리뷰 신호를 게이트로 강제했더니 테스트 통과·오답 출고가 31/1800에서 2/1800으로 줄었다
Who Should Read
코딩 에이전트가 'tests passed', 'done'이라고만 보고해서 믿어도 되는지 불안한 에이전트 파이프라인 개발자
Core Mechanics
- 에이전트의 done은 주장일 뿐이다
- 에이전트 출력은 라이프사이클 상태가 아니라 claim(주장)으로만 취급한다.
- 최신 코드 상태에 묶인 기계 검증 가능한 증거가 게이트를 통과해야 단계가 넘어간다.
- 증거는 코드 해시에 묶는다
- 증거에 materialHash, headHash, storyFilesHash와 policy·command-set 해시, 명령·종료코드·출력 digest를 넣는다.
- 코드가 바뀌면 이전 증거는 즉시 무효가 된다.
- 리뷰를 조언이 아닌 게이트로 강제
- A3(리뷰는 조언)은 14/1800, A4(리뷰를 게이트로 강제)는 2/1800이 오답을 출고했다.
- 토큰은 거의 같았고(A3/A4 비율 0.98) 차이는 강제 여부였다.
- 쉬운 작업에선 순수 오버헤드다
- 깨끗한 3개 과제 파일럿에서 모든 arm이 9/9 완료했다.
- A4는 A1 대비 비용 2.07×, 시간 2.51×였다.
- 스스로 만든 코퍼스에서 독립 리뷰가 잡아냈다
- 28개 deep-set 리뷰 지적 중 26개(93%)는 작성자 테스트가 통과 중일 때 제기됐다.
- 다른 벤더(Codex) 리뷰어가 high/critical 68건을 잡았고 전부 해결됐다.
Evidence
- 파워드 ablation 9,240셀
- A2′(연산 예산 맞춘 naive 루프) 31/1800 vs A4 2/1800 오답 출고이며 not-amplified +1.6pp, 95% CI [0.8, 2.5]다.
- A4는 A2′ 대비 토큰 약 1.2× 썼다(204,553 vs 170,545, 시간 81.2s vs 54.8s).
- A3 대 A4 비교
- 같은 리뷰 신호를 쓴 A3는 14/1800, A4는 2/1800이었다.
- du-duration 제외 시 A3 9/1725, A4 0/1725였다.
- 엔진·영수증 검증
- 무한루프 엔진 계약 시나리오 10/10 통과, false-done 0이다.
- 로컬 키 영수증 번들은 변조 18종을 모두 거부했고 false accept/reject는 0이다.
- 복구 파일럿과 비용
- 테스트 통과·오답 주입 15회에서 A2′는 15/15 오답 출고, A4-C는 15/15 safe-stop, A4b-B는 15/15 복구했다.
- 별도 매칭 1,152셀 비교에서 게이트 실행은 리뷰 없는 대조 대비 입출력 토큰 3.80×였다.
How to Apply
- 에이전트 done 보고에 해시 붙이기
- 오늘 CI 스크립트에서 완료 보고 때 git tree 해시와 테스트 명령·종료코드·출력 digest를 JSON으로 저장하라.
- 병합 직전 현재 트리 해시와 비교해 다르면 done을 거부하라.
- 리뷰 결과를 차단 조건으로 바꾸기
- 리뷰 에이전트가 high/critical 지적을 남기면 다음 단계로 못 넘어가게 파이프라인에 연결하라.
- 지적은 reviewer, round, 해시가 있는 구조화된 JSON으로 받아라.
- 고위험 변경에만 게이트 적용
- 단계 이동·테스트 통과·done·merge 주장에만 엄격 게이트를 걸어라.
- 문서·메모는 참고용으로 두어 오버헤드를 줄여라.
- 재시도 횟수와 비용 상한 두기
- 증거가 부족하면 최대 재시도 횟수와 토큰·시간 예산 안에서만 수정 루프를 돌려라.
- 예산을 넘으면 거짓 done 대신 safe-stop하고 사람에게 넘겨라.
Try It
# Claude 또는 ChatGPT에 붙여넣기 (논문 방법의 간이 버전: 증거 게이트 리뷰)
당신은 독립 리뷰어입니다. 작성자의 말과 테스트 로그를 신뢰하지 말고 아래 코드와 증거만 보고 판단하세요.
[코드]
{{코드}}
[작성자가 제출한 증거: 명령, 종료코드, 출력]
{{테스트 증거}}
다음 JSON으로만 답하세요:
{"verdict":"ship|block","findings":[{"severity":"critical|high|medium|low","description":"","evidence":""}],"missingEvidence":[]}
규칙: 증거가 없거나 코드와 대응하지 않으면 block. 보이는 테스트가 통과해도 숨은 결함을 찾으세요.
이어서 해 볼 것: block이 나오면 지적 내용을 넣어 수정 후 같은 리뷰를 2회까지만 반복하고, 그래도 block이면 중단하세요.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
Original Abstract (Expand)
Autonomous coding agents increasingly execute multi-step software work, but lifecycle states such as reviewed, tested, DONE, and ready-to-merge remain claims unless supported by current evidence. We present Proof-or-Stop Lifecycle Control, a method that permits lifecycle transitions only when fresh, tracked-source-state-bound, mechanically verifiable evidence satisfies the relevant gate. The method treats agent outputs as claims rather than lifecycle state, and uses proof operationally to mean gate-admissible evidence under a stated trust model, not semantic program correctness. We evaluate an open-source implementation through mechanism tests, a powered control-policy ablation, and operated self-application evidence. The unattended-loop engine passed 10 of 10 scenarios with zero false-DONE, and local-key receipt bundles rejected 18 tamper classes with zero false accepts. In a 9,240-cell ablation, the pre-registered A4 versus A2-prime comparison reduced visible-pass/hidden-fail amplification from 31 of 1,800 injected cells under a compute-budgeted naive loop to 2 of 1,800 under the gated loop, a 1.6 percentage-point improvement in not-amplified rate with a 95 percent confidence interval of [0.8, 2.5]. A near-compute A3 versus A4 comparison, 14 of 1,800 versus 2 of 1,800, indicates that the gain is associated with enforcing review as a lifecycle gate rather than merely adding a reviewer. The self-application corpus contains 565 stories and 1,007 review findings, with 94.8 percent resolved, plus a 68-row high/critical cross-vendor exhibit. These results support Proof-or-Stop as a model-agnostic, host-neutral control layer for deciding which autonomous-agent claims a lifecycle may act on. The evaluation is limited to one model family, 24 ablation tasks, and a self-hosted corpus.