Timo Zhang이라는 학생이 AI 에이전트가 앱을 분해할 수 있게 해주는 오픈 소스 도구인 REA의 소스 코드를 읽고, 그것이 가진 모든 하드 리밋(hard limit)들을 기록했습니다. 그리고 그는 여러분의 릴리스 빌드(release build)를 하나하나 무너뜨리는 BLA를 만들었습니다.
REA는 모델 메타데이터(model metadata)가 32단계보다 깊게 중첩되는 것을 읽지 못하기 때문에, BLA는 이를 35단계까지 중첩시킵니다. REA는 헤더 크기가 16MB를 초과하는 Electron 아카이브에 대해서는 포기하는데, 그는 자신의 테스트에서 607바이트짜리 아카이브가 16.9MB로 나왔다고 합니다. 게다가 이 도구는 에이전트가 추적하도록 가짜 키(fake keys)와 미끼 로직(decoy logic)을 심어 놓는데, 이는 실제 사용자가 앱을 실행할 때 항상 같은 방식으로 진행되는 조건 뒤에 숨겨져 있습니다.
커뮤니티에서 돌아다니는 글들에는 그가 REA를 '망쳤다'고 말하며, 공격자들이 이제 300배에서 2,800배까지 더 많은 토큰(tokens)을 소모한다고 합니다. 하지만 그는 자신의 README 파일에 이러한 배율은 내부 추정치라고 명시했으며, 답글에서는 사람들에게 어떤 숫자를 믿기 전에 자신들의 앱으로 벤치마크를 실행하라고 계속 말하고 있습니다.
명백한 반격이 빠르게 나타났습니다: BLA 역시 오픈 소스이기 때문에, 에이전트에게 그냥 BLA에 대해 알려주면 됩니다. 그의 답변은 모든 빌드가 고유의 난수 시드(random seed)를 갖는다는 것입니다. 어떤 종류의 미끼가 존재하는지 안다고 해서 이 특정 빌드에서 실제 경로가 무엇인지 알 수 없기 때문에, 에이전트는 여전히 각각의 경로를 확인해야 합니다.
약점은 그것을 가능하게 했던 것과 같은 문제입니다. REA의 한계는 파일에 있는 단순한 숫자일 뿐입니다. 만약 다음 REA 릴리스에서 16MB 제한을 올린다면, 그 방어막의 일부는 BLA가 따라잡을 때까지 작동하지 않을 것입니다. 그는 이에 대해 괜찮다고 말했습니다. 목표는 결코 깨지지 않는 것이 아니라, 자동화된 실행 비용을 높이는 것 자체가 목적이었습니다.
2주 만에 약 3,900개의 GitHub 스타를 기록했습니다.