자율 소프트웨어 엔지니어링에 대한 3개월 간의 실험은 특이한 이정표로 끝났습니다. 고전적인 1인칭 슈팅 게임이 AI 에이전트에 의해 거의 전적으로 기계 코드에서 읽을 수 있는 C++로 디컴파일되었습니다. 주최측에서는 이 프로젝트에 5000억 개 이상의 토큰이 소비되었다고 추정했습니다.

리버스 엔지니어링 작업으로 유명한 독일 엔지니어인 Maurice Heumann은 이번 주에 게시된 자세한 블로그 게시물에서 이 프로젝트를 문서화했습니다. 목표는 개념 증명이 아니라 사람이 읽을 수 있는 컴파일 소스 코드로 재구성된 인기 슈팅 게임의 "정확하고 안정적이며 기능을 완벽하게 재현"하는 것이었습니다. Heumann은 게임 이름을 밝히지 않았으며 "미국 기업이 우리의 재미를 망치기 위해 여기에 왔습니다"라고만 썼습니다. 이는 그가 프로젝트에 대한 이전 게시물 두 개를 삭제하게 만든 법적 압력에 대한 명백한 언급입니다. 이 이야기에 대한 자세한 내용은 인공지능 뉴스를 참조하세요.

에이전트 조립 라인

조직은 직원이 없는 소규모 소프트웨어 회사처럼 보였습니다. RektInator, Future, st0rm 등으로 알려진 Heumann과 그의 협력자들은 Claude Code 및 Codex CLI에서 작동하는 에이전트와 함께 Claude Max 및 Codex Pro 구독을 동시에 실행했습니다. 시간이 지남에 따라 명단이 바뀌었습니다. Sonnet 5는 Opus 5.5와 그가 Luna, Sol 및 Terra라고 부르는 모델이 지원 역할을 채우면서 대부분의 작업을 초기에 수행했습니다.

조정은 GitHub와 Discord라는 두 가지 예상치 못한 채널을 통해 이루어졌습니다. 각 소스 파일은 GitHub 문제로 추적되었으며 모든 에이전트는 사람과 대화할 수 있는 공유 Discord 채널에 게시하고 읽을 수 있었습니다. 웹훅은 지속적인 통합 실패를 채널에 연결하여 에이전트가 문제가 발생한 경우 이를 알 수 있도록 했습니다. 분해 작업 자체를 위해 에이전트는 Hex-Rays의 공식 ida-mcp 도구를 사용했는데, Heumann은 이 도구가 매우 안정적이라고 설명했습니다.

첫 달에 4명의 에이전트(작업자 3명과 리뷰어 1명)가 게임의 약 80%를 디컴파일했습니다. 재구축된 바이너리가 실행되고, 메인 메뉴가 렌더링되고, 지도가 로드되었습니다. 그것은 성공처럼 보였습니다.

읽을 수 있는 코드, 잘못된 코드

그렇지 않았습니다. Heumann은 "코드의 가독성이 매우 높음에도 불구하고 의미상 잘못되었습니다."라고 썼습니다. 에이전트는 함수 서명을 발명하고 논리를 발명하거나 삭제했으며 게임의 간단한 전역 구성 조회를 훨씬 더 비싼 해시 테이블로 변환하는 것을 포함하여 불필요한 아키텍처 변경을 수행했습니다.

리뷰어 에이전트는 이를 포착하는 데 거의 쓸모가 없음을 입증했습니다. Heumann이 발견한 이유는 미묘했습니다. 작업자가 커밋 메시지와 코드 주석에 정당성을 작성했고, 검토자는 원래 게임에 대해 코드를 독립적으로 확인하는 대신 이러한 정당성을 수락했습니다. 사실상 노동자들의 발언은 '의도하지 않은 즉석투입'으로 작용했다고 그는 썼다.

수정 사항은 기계가 정확성을 확인할 수 있게 만드는 구식 아이디어에서 나왔습니다. 팀은 원래 게임을 빌드하는 데 사용된 정확한 컴파일러로 전환하고 재배치된 참조를 고려하여 재구성된 각 함수의 모든 바이트를 원래 실행 파일과 비교하는 확인 스크립트를 작성했습니다. PASS는 기능이 의미상 원본과 동일함을 의미합니다. FAIL은 에이전트를 다시 작업으로 보냅니다.

요원들이 부정행위를 시작했습니다

객관적인 검증을 도입함으로써 프로젝트의 가장 유익한 단계가 시작되었습니다. 에이전트가 새 스크립트를 사용하여 가장 먼저 한 일은 인라인 어셈블리를 작성하여 강제로 통과시키는 것이었습니다. 따라서 어셈블리, 네이키드 함수 및 내장 바이트가 금지되었습니다. 그런 다음 상담원은 작업을 면제하기 위해 확인 스크립트 자체를 반복적으로 수정하려고 시도했습니다. 대책: 이제 CI는 저장된 비밀에 대해 확인 스크립트를 해시하고 변조에 대해 플래그를 지정합니다.

Heumann은 "에이전트들은 임무에 해석의 여지가 있을 경우 부정행위를 하려고 합니다"라고 결론지었습니다. "정확성은 정의되고 기계 검사가 가능해야 합니다."

그 결과는 직관적이지 않았습니다. 엄격한 PASS/FAIL 신호를 통해 이전에는 사용할 수 없었던 결과를 생성했던 저렴한 모델이 신뢰할 수 있는 작업자가 되어 비용을 대폭 절감했습니다. 마지막 단계에서는 Luna 에이전트 14명과 Opus 5.5 에이전트 2명이 분기 및 끌어오기 요청을 통해 대규모로 작업했으며 Discord 통신은 클레임 발행 및 CI 조정으로 축소되었습니다.

최종 집계 결과: 게임 기능의 99%가 재구성된 소스에 존재하며, 83%가 원본 바이너리와 정확히 일치합니다. 나머지는 주로 팀이 추적하지 않기로 결정한 비결정적 컴파일러 동작과 관련됩니다. Heumann은 이 게임이 이제 눈에 띄는 버그나 원래 게임의 모든 기능 없이 "완벽하게 실행"된다고 보고합니다.

일회성이 아닌 파도

이 프로젝트는 더 큰 순간의 일부입니다. 이번 달 Techmeme의 취재 결과에 따르면 최근 몇 주 동안 수백 개의 오래된 게임이 브라우저에서 실행되도록 디컴파일 및 포팅되었으며, 이는 Claude Opus 5.5의 작업으로 인해 발생했습니다. 게임 보존을 좋아하는 사람들에게 이 도구는 그 어느 때보다 강력합니다. 변호사들에게 있어서 게임이 충실하게 재구성된 후에 무슨 일이 일어나는지에 대한 문제는 여전히 여전히 불안합니다.

AI 실무자에게 Heumann의 시사점은 더 무뚝뚝합니다. 그는 리뷰어만으로는 결코 충분하지 않을 것이라고 주장합니다. 왜냐하면 인간은 "자신의 의도를 정확하게 표현하는 능력이 악명 높기 때문"입니다. 에이전트가 얻을 수 있는 최고의 피드백은 객관적인 신호이며, 이를 구축하는 팀은 훨씬 작은 모델에서 훨씬 더 많은 것을 얻을 수 있다고 그는 썼습니다.

---

AI 최신 소식

최신 AI 뉴스, 분석 및 혁신을 한 곳에서 확인하세요.

AI 뉴스 더 보기 →