GPT-5.6 Terra로 가재코드(Codex)를 돌리다가 에이전트가 52번째까지 갔다. 코드를 고치고 테스트 베드를 따로 만들고, 다시 독립 검토를 시키면 또 다른 결함 후보가 나온다. 처음에는 모델이 지나치게 꼼꼼한가 싶었지만, 계속 보다 보니 핵심은 검토를 끝내는 규칙이 없는 작업 설계에 더 가까웠다.
연관 글
- GPT-5.6 Sol·Terra·Luna 사용 후기: GPT-5.5 xhigh 쓰던 사람은 뭘 고르면 좋을까
- GitHub Copilot 과금 변경 이후 Claude Code, Codex, Cursor는 어떻게 봐야 할까
요약
목차
왜 테스트 베드를 만들었다가 지울까
Codex는 기존 테스트만 실행하는 도구라기보다, 재현 가능한 실험 환경을 만들고 가설을 검증하는 에이전트처럼 움직인다. “테스트해 봐”라고 하면 기존 테스트의 빈틈을 추정하고, fixture·mock·임시 스크립트로 베드를 만들고, 실패가 나오면 구현 또는 테스트를 바꾼 뒤 다시 검토한다.
이 흐름은 나쁜 습관이 아니다. 문제는 그 베드가 제품 요구사항인지, 한 번 확인하고 버릴 실험인지 경계가 없을 때다. 에이전트는 새 테스트를 만들 수 있는 만큼 새 실패 가능성도 만든다. “더 이상 개선점이 없어야 한다”는 목표는 체크리스트가 아니라 끝없는 탐색 명령이 된다.
독립 리뷰어를 붙이면 왜 더 심해질까
수정 에이전트와 QA 에이전트를 분리하면 믿음직해 보인다. 그러나 같은 모호한 목표를 공유하면 역할 분리는 해결책이 아니다. 수정자는 테스트를 보강했다고 말하고, 독립 리뷰어는 그 테스트가 요구사항을 충분히 덮지 못했다고 반려한다. 다음 수정자는 반려 사유를 해결하려고 테스트를 더 만들고, QA는 다시 테스트 자체를 리뷰한다.
이때는 코드의 결함을 줄이는 루프가 아니라 검증 범위를 계속 넓히는 루프가 된다. UI, 외부 API, 권한, 시간 의존 로직처럼 완전한 테스트 오라클이 없는 영역에서 특히 그렇다. ‘독립’은 판단의 독립이지, 통과 기준까지 새로 발명해도 된다는 뜻은 아니다.
이번 로그에서 봐야 할 신호
내 52회 반복이 GPT-5.6 Terra의 직접 결함이라고 단정할 수는 없다. 공개 이슈에는 Terra에서 서브에이전트가 반복 생성돼 사용량이 빨리 소진된 보고, /goal이 컨텍스트 정리 전까지 반복된 보고, 자동 리뷰가 codex exec를 외부 서비스로 판단해 승인 거절을 되풀이한 보고가 있다. 하지만 제품 버그, 컨텍스트 누적, 승인 정책 충돌, 지시문의 빈 공간은 서로 다른 문제다.
그래서 다음 작업에서는 같은 반려 사유가 반복되는지, 임시 베드가 같은 파일을 다시 만드는지, 자동 압축 직후 같은 지시가 재실행되는지부터 기록할 생각이다. 이 셋 중 하나가 보이면 “더 돌려 보자”가 아니라 멈추고 종료 조건을 다시 쓰는 쪽이 낫다.
결론
다음에는 “완벽하게 검토해”라고 맡기지 않으려 한다. 기존 테스트와 명시한 시나리오만 검증하고, 임시 베드는 지정 디렉터리에서만 만들고 제거하게 한다. 새 테스트 범위나 리팩터링은 결함 목록으로만 보고하게 하고, High 이상 결함이 없고 지정 명령이 통과하면 종료한다. 수정은 2회, 독립 리뷰는 1회로 제한한다.
핵심은 검증 대상, 생성 가능한 파일 위치, 수정 권한, 반복 횟수를 분리하는 것이다. QA에게 테스트를 만들 권한은 줄 수 있어도, 그 테스트를 새 합격 기준으로 만드는 권한까지 자동으로 주면 안 된다.
52번째 에이전트가 일을 못 한 것은 아니다. 너무 열심히, 그리고 너무 자유롭게 일하고 있었을 가능성이 크다. 에이전트 시대의 QA는 더 오래 돌리는 문제가 아니라, 사람이 언제 멈춰도 되는지를 먼저 정의하는 문제에 가깝다.