Repair Loop는 언제 멈춰야 할까
Editor agent는 수정 → compile → 새 feedback → 재수정을 반복할 수 있습니다. 반복하면 success 가능성은 올라가지만 compiler call과 model token, wall-clock이 계속 늘어납니다. 같은 오류를 되풀이하거나 이미 맞던 부분을 바꾸는 regression도 생길 수 있습니다.
1
2
3
4
5
| 후보 patch 생성
→ 격리된 Lean environment에서 compile
→ 성공하면 theorem statement, diff 검토
→ 실패하면 새 feedback과 attempt history 저장
→ budget 또는 반복 오류에 도달하면 중단
|
운영 로그에는 attempt당 compile time, 수정 line 수, error category 변화와 최종 Pass@1, pass@k를 남깁니다. 이전 attempt와 동일한 patch, error message가 반복되면 즉시 중단하고 사람에게 넘깁니다. 큰 proof 전체를 매번 다시 쓰기보다 최소 diff를 만들게 하면 review와 regression 탐지가 쉬워집니다.
Compiler 실행도 신뢰 경계 안에 둬야 합니다. Model이 import, option이나 environment를 바꿔 검증을 우회하지 못하도록 허용 file과 command를 제한하고 격리된 workspace에서 실행합니다. Theorem statement, trusted axioms와 dependency lock이 바뀌면 “수선 성공”으로 인정하지 않습니다.