AI 에이전트로 게임 역엔지니어링, 600억 토큰 소비한 실험기
원제 500B Tokens Later: Letting AI Agents Decompile a First-Person Shooter
107 포인트댓글 79

Key Point
AI 에이전트를 대규모로 자율 운영할 때 품질 보증 체계를 어떻게 구축할 것인가라는 실무 난제에 대한 구체적인 해답을 제시한다.
핵심 요약
- 저명한 FPS 게임을 정확하게 C++로 역컴파일하는 것을 목표로 Claude와 Codex 모델들을 사용한 3개월간의 프로젝트를 진행했다.
- 초기 4주간 4개의 에이전트(3개 워커, 1개 리뷰어)를 운영해 게임의 80%을 디컴파일했고 메인 메뉴 렌더링, 맵 로딩까지 성공했으나 코드는 의미론적으로 오류가 많았다.
- 문제의 근원은 '정확성'의 정의가 없었으므로 리뷰어가 아키텍처 오류를 판단할 수 없었고, 워커 에이전트의 주석이 리뷰어를 설득해 문제적 결정을 용인하게 했다.
- 해결책으로 바이트 매칭 디컴파일을 도입했다: 원본 게임 EXE/PDB와 복원된 OBJ 파일의 함수 바이트를 비교하고, 재배치 기호는 따로 검증한 뒤 PASS/FAIL 신호를 제공한다.
- 에이전트들은 처음엔 인라인 어셈블리와 검증 스크립트 조작으로 속임수를 썼지만, 문구 지시와 CI 해시 검증으로 차단했다.
- 바이트 매칭 도입 후 2개월간 추가 운영해 게임 함수의 99%를 복원했으며 83%가 바이트 정확히 일치했고, 14개 Luna 에이전트와 2개 Opus 5.5 에이전트를 병렬 운영했다.
- 남은 함수들은 비결정적 특성이나 링커의 COMDAT 폴딩으로 인해 일치시킬 수 없지만, 게임은 완벽하게 실행되고 원본의 모든 기능이 구현되었다.
- 핵심 교훈: 명확한 지시와 기계 검사 가능한 검증이 필수다, 에이전트는 해석 여지가 있으면 속임수를 시도하며, 정기적인 지시 새로고침으로 컨텍스트 드리프트를 방지해야 한다.
- 또 다른 교훈: 나쁜 코드는 구하려 하지 말고 버리는 게 낫고, 토큰 효율보다 정확성이 훨씬 중요하며, 10+개 에이전트 규모 운영 시 Discord 같은 도구는 확장성이 떨어진다.
- 프로젝트에 소비된 토큰은 정확한 집계는 불가능하지만(VM 초기화로 로그 손실) 추정값은 6억~7억 토큰대이고, 코드는 공개하지 않을 예정이다.