Why Does CLAUDE.md Keep Growing? Catastrophic Remembering in Agentic Coding
이 논문은 CLAUDE.md와 같은 에이전틱 코딩 프롬프트에서 발생하는 무한한 성장의 원인을 "파괴적 기억(catastrophic rememberinging)"으로 규정하며, 지침을 추가하는 것은 저렴하지만 이를 삭제하는 것은 계산적으로 매우 비용이 많이 든다는 점을 입증하고, 프롬프트 주석에 잠재적 추론을 임베딩하는 것이 이러한 발산을 효과적으로 멈추고 지침 준수 성능을 크게 향상시킬 수 있다고 제안한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 아주 똑똑하지만 약간 건망증이 있는 로봇 비서에게 블로그 포스트를 쓰거나 코드를 수정하는 것과 같은 특정한 업무를 가르치고 있다고 상상해 보세요. 당신은 먼저 간단한 규칙 목록을 줍니다: "세 개의 단락을 사용하라", "'매우(very)'라는 단어를 사용하지 마라", "항상 미소로 끝맺어라." 이것을 **프롬프트(prompt)**라고 부릅니다. 인공지능의 세계에서 이러한 프롬프트는 로봇을 위한 사용 설명서와 같습니다.
이제 로봇이 실수를 했다고 상상해 보세요. 당신은 새로운 규칙을 추가하여 이를 바로잡습니다: "좋아, 그리고 반드시 정확히 다섯 개의 불렛 포인트를 사용하도록 해." 로봇이 다시 시도했지만 실패하자, 당신은 또 다른 규칙을 추가합니다: "그리고 모든 문장의 첫 글자를 대문자로 쓰도록 기억해." 시간이 흐르면서 이 규칙 목록은 점점 더 길어집니다. 컴퓨터 과학에는 **파괴적 망각(catastrophic forgetting)**이라는 유명한 문제가 있는데, 이는 로봇이 새로운 것을 배우면서 실수로 기존의 지식을 지워버리는 현상을 말합니다. 하지만 이 논문은 그 반대의 문제인 **파괴적 기억(catastrophic remembering)**에 대해 이야기합니다: 이것은 로봇(또는 이를 관리하는 사람)이 규칙을 계속 추가하기만 하고, 더 이상 필요하지 않은 예전 규칙들은 절대 삭제하지 않는 상황을 의미합니다. 목록은 너무 거대하고 엉망이 되어 로봇을 혼란스럽게 만들고, 속도를 늦추며, 다시 실수를 하게 만듭니다. 큰 질문은 이것입니다: 왜 이 목록은 계속해서 무한히 늘어나는 것이며, 어떻게 이를 멈출 수 있을까요?
끝나지 않는 목록의 미스터리
South Park Commons의 Kushal Chakrabarti 저자는 왜 이러한 "에이전트적(agentic)" 지침 목록(소프트웨어 프로젝트에서 흔히 CLAUDE.md 또는 AGENTS.md라는 이름으로 불리는 파일들)이 한계 없이 계속 커지는지 조사하기로 했습니다. 그들은 GitHub에 있는 거의 1,870개의 실제 소프트웨어 프로젝트를 살펴보고 247,000개 이상의 개별 지침들의 생애를 추적했습니다.
그들은 이상한 패턴을 발견했습니다: 이 목록들은 거의 줄어드는 법이 없었습니다. 대신, 파일이 업데이트될 때마다 평균 4.9개의 새로운 지침이 추가되며 성장했습니다. 파일의 수명 동안 지침의 수는 226% 증가하여 두 배 이상 늘어났습니다. 평균적인 파일은 39개의 지침을 가지고 있지만, 어떤 파일은 100개가 넘기도 합니다.
연구원들은 물었습니다: 왜 사람들은 그냥 쓸모없는 예전 규칙들을 삭제하지 않을까요?
그들은 범인이 규칙이 "오래되어(stale)" 혹은 나쁜 규칙이 일찍 사라져서가 아님을 발견했습니다. 대신, 문제는 **불완전한 회상(imperfect recall)**이었습니다. 이것을 다음과 같이 생각해 보세요: 당신이 목록에 새로운 규칙을 추가할 때, 당신은 왜 그 규칙을 추가했는지 알고 있습니다. 아마도 로봇이 네 단락을 써서 "세 개의 단락을 사용하라"는 규칙을 추가했을 것입니다. 하지만 그 "왜"는 당신의 머릿속에 있는 생각일 뿐입니다. 그것은 기록되지 않았습니다.
시간이 흐르고 다른 사람들이 파일을 편집하거나 프로젝트가 변함에 따라, 그 원래의 이유는 희미해집니다. 6개월 후에 목록을 본다면, "세 개의 단락을 사용하라"는 규칙은 보이지만, 왜 그 규칙이 거기 있는지 알 수 없습니다. 로봇이 말이 너무 많아서였을까요? 아니면 상사가 요청해서였을까요? 그 이유를 모르면, 규칙을 삭제하는 것이 위험하게 느껴집니다. 그 규칙을 삭제하면 로봇이 다시 고장 날까 봐 두려운 것입니다. 그래서 그냥 그대로 둡니다. 그러는 동안, 새로운 문제들을 해결하기 위해 새로운 규칙들을 계속 추가합니다. 그 결과, 아무도 더 이상 이해하지 못하는 부풀려지고 혼란스러운 규칙 목록이 만들어집니다. 저자는 이를 **파괴적 기억(catastrophic remembering)**이라고 부릅니다: 버려야 할 것들을 모두 기억하고 있는 상태 말입니다.
"불도저" 효과
연구는 또한 사람들이 이 엉망이 된 목록을 해결하려고 노력하는 방식에 대해 재미있는 사실을 발견했습니다. 그들은 단지 한두 개의 나쁜 규칙을 삭제하는 데 그치지 않습니다. 대신, 그들은 "모두 삭제" 버튼을 누르는 경향이 있습니다. 데이터에 따르면, 모든 지침 삭제 작업의 **76.8%**는 누군가가 파일의 절반 이상을 한꺼번에 삭제하는 거대한 "재작성(rewrite)" 과정에서 발생합니다. 이는 마치 어떤 잡초를 뽑아야 할지 결정하지 못한 정원사가 결국 정원 전체를 태워버리고 처음부터 다시 시작하는 것과 같습니다.
하지만 여기서 핵심은, 이렇게 "태운" 후에도 정원은 다시 자라난다는 것입니다. 목록은 즉시 이전과 같은 빠른 속도로 다시 성장하기 시작합니다. 이를 **래칫 효과(ratchet effect)**라고 합니다. 크기는 줄어들지만, 성장 속도는 변하지 않습니다. 근본적인 원인, 즉 사람들이 처음에 왜 그 규칙들을 추가했는지 기억하지 못한다는 사실이 해결되지 않았기 때문에, 목록은 다시 채워지기 시작하는 것입니다.
"주석"의 마법
그렇다면 목록이 영원히 커지는 것을 어떻게 막을 수 있을까요? 논문은 소프트웨어 엔지니어들이 수십 년 동안 사용해 온 해결책을 제시합니다: 바로 **주석(comments)**입니다.
일반적인 컴퓨터 코드에서 프로그래머들은 코드를 왜 그렇게 작성했는지 설명하기 위해 코드 옆에 작은 메모를 남깁니다. 이 메모는 컴퓨터에게는 보이지 않지만, 다음에 코드를 읽을 사람에게는 도움이 됩니다. 연구원들은 이 기술이 AI 프롬프트에도 작동하는지 테스트했습니다.
그들은 "유지 관리자(maintainer)"(AI 에이전트)가 프롬프트를 구축하고 수정해야 하는 시뮬레이션을 설정했습니다. 한 그룹은 아무런 메모 없이 지침을 작성해야 했습니다. 다른 그룹은 각 지침 옆에 그 이유를 설명하는 주석을 추가할 수 있었습니다. 예를 들어, "세 개의 단락을 사용하라" 옆에 *"라운드 3에서 로봇이 네 단락을 계속 썼기 때문에 추가됨"*이라는 주석을 달 수 있는 식입니다.
결과는 극적이었습니다.
- 주석이 없을 때: 프롬프트는 작업을 수행하는 데 필요한 완벽하고 최소한의 크기보다 211.3% 더 커졌습니다.
- 주석이 있을 때: 프롬프트는 거의 완벽한 크기를 유지하며, 최소 크기보다 단 **1.4%**만 더 컸습니다.
주석은 타임머신 역할을 했습니다. 주석은 각 규칙에 대한 "잠재적 추론(latent reasoning)"(숨겨진 이유)을 보존했습니다. 유지 관리자가 나중에 목록을 보았을 때, 그들은 주석을 보고 해당 규칙이 여전히 필요한지, 아니면 더 이상 필요하지 않은지를 이해하여 안전하게 삭제할 수 있었습니다. 주석은 불필요한 지침의 **99.3%**를 제거했습니다.
실제로 더 잘 작동하는가?
연구원들은 단순히 목록을 짧게 만드는 것에 그치지 않고, 로봇이 실제로 더 잘 수행하는지도 확인했습니다. 그들은 프롬프트가 쓸모없는 지침들로 부풀어 올라 노이즈가 많아질 때, 로봇이 혼란을 느껴 더 많은 실수를 한다는 것을 발견했습니다. 주석을 사용하여 목록을 깨끗하고 집중되게 유지함으로써, 로봇의 지침 준수 능력은 최대 **23.1%**까지 향상되었습니다.
또한 연구는 지침이 복잡하고 "유지 관리자"가 매우 똑똑한 AI 에이전트인 경우에도 이 방법이 작동함을 보여주었습니다. AI의 능력이 뛰어날수록 규칙을 과하게 추가하는 경향이 있지만, 동시에 이러한 유용한 주석을 통해 통제받을 때 더 많은 이득을 얻습니다.
핵심 요약
논문은 장난스러우면서도 진지한 질문으로 결론을 맺습니다: "영어가 새로운 코드가 되었다면, 왜 우리는 아직 주석을 사용하지 않는가?"
인간 프로그래머들이 오래전에 코드를 왜 그렇게 작성했는지 설명해야 한다는 것을 배웠듯이, 이러한 AI 프롬프트를 관리하는 사람(그리고 AI 에이전트)들도 규칙을 왜 추가했는지 기록하기 시작해야 합니다. 그 설명이 없다면 규칙은 쌓여가고, 시스템은 혼란에 빠지며, 성능은 떨어집니다. 해결책은 규칙 추가를 멈추는 것이 아니라, 각 규칙 옆에 작은 메모를 남겨 다음 사람(혹은 로봇)이 무엇을 유지하고 무엇을 버려야 할지 정확히 알 수 있게 하는 것입니다. 그것은 혼란스럽고 계속 커지는 괴물을 깨끗하고 효율적인 도구로 변화시킵니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.