TL;DR

  • Claude Code의 자동 메모리(Auto-Memory)는 프로젝트별 정보를 저장해 세션 간 맥락을 이어가지만, 문서 기반 메모리의 한계와 사용자 비가시성 때문에 부정적인 기능임.
  • 각 프로젝트에는 MEMORY.md 색인과 주제별 마크다운 파일이 생성되며, 세션 시작 시 색인 파일이 컨텍스트에 주입됨.
  • 텍스트 메모리는 정보의 지속성·우선순위·맥락을 제대로 표현하지 못해 일회성 정보와 지속적인 사용자 선호를 혼동할 수 있음.
  • 메모리 파일은 에이전트가 사용자와 상의 없이 쓰고 읽으며, 프로젝트 외부의 ~/.claude/projects/에 저장돼 협업자 간 공유와 프로젝트 코드와의 버전 관리가 이뤄지지 않음.
  • 메모리는 자동 만료되지 않아 오래된 지침이 누적될 수 있으며, 문서 기반 메모리는 코드와 함께 두고 수명 주기를 관리하며 특정 업체에 종속되지 않아야 함.

자동 메모리의 작동 방식

  • Claude Code는 올해 초 프로젝트별 작업 방식에 대한 맥락을 형성하도록 자동 메모리 기능을 추가함.
  • 각 프로젝트에는 MEMORY.md 색인과 주제별 개별 마크다운 파일이 들어 있는 메모리 폴더가 마련됨.
  • 이 구조는 Claude의 지속적인 기억 형성 부족을 보완하려는 시도이며, 과거 정보가 이후 세션에서 관련될 때 에이전트가 참고할 수 있는 자료를 제공함.
  • 현재 작업 디렉터리의 MEMORY.md는 세션 시작 시 컨텍스트에 삽입되며, 프로젝트별 파일을 짧게 설명해 관련 내용이 등장하면 에이전트가 해당 파일을 찾아보도록 함.

문서 기반 메모리의 한계

  • 텍스트는 스스로 해석되지 않으며, 인간의 기억처럼 과거 지식의 지속성·우선순위·맥락·사용 시점을 자연스럽게 담아내지 못함.
  • 한 세션이나 작업에서만 중요했던 사소한 정보가 지속적인 사용자 선호와 나란히 저장되고, 좁은 맥락에서 한 번 표현한 선호가 영구적인 정보가 될 수 있음.
  • 에이전트가 이런 정보의 차이를 구분하거나 적절한 정보 공간에 배치해 행동을 안내할 방법은 보장되지 않으며, 대형 언어 모델(LLM)은 지침과 정보를 맥락에 맞게 해석하는 데 자주 서툼.

사용자에게 보이지 않는 기록과 프로젝트 외부 저장

  • 메모리 파일은 에이전트가 사용자와 상의하지 않고 조용히 쓰고 읽으며, 업데이트는 한 차례의 응답 중간에 빠르게 이뤄져 알아채기 어려움.
  • 색인 파일이 세션 시작 때 컨텍스트에 들어가므로, 사용자가 관리하지 않고 아마 열어보지도 않는 파일의 내용이 매 세션 에이전트의 초기 판단에 영향을 줌.
  • 메모리 파일은 관련 프로젝트 디렉터리가 아니라 ~/.claude/projects/에 저장됨.
  • 이 저장 방식에는 두 가지 문제가 있음.
  • 메모리는 사용자 간에 이전되지 않으므로 특정 프로젝트에서 특정 사용자의 에이전트 행동을 형성하는 지속적인 맥락이 협업자에게 전달되지 않음.
  • 메모리는 프로젝트와 함께 버전 관리되지 않고, 프로젝트 코드를 읽는 사람에게도 보이지 않음.
  • 몇 달 동안 작업하지 않은 저장소를 새 Claude 세션으로 열면, 프로젝트 자동 메모리에 담긴 오래됐을 가능성이 있는 지침이 여전히 유효한 것처럼 에이전트에 주입됨.
  • 메모리에는 자동 만료 기능이 없으며, 내용이 반드시 갱신되거나 덮어써지는 것도 아니어서 계속 누적됨.
  • 개인 프로젝트 중 가장 활발한 프로젝트 하나를 확인한 결과, 6개월 전인 4월의 폐기된 기능과 실험에 관한 메모리가 여전히 저장돼 있었음.
  • 그 결과 실행 환경은 오래된 문서를 끝없이 쌓고, 이를 프로젝트의 상시 유효한 지침처럼 취급하도록 에이전트를 이끎. 사용자가 읽거나 작성하지 않은 문서가 사용자 모르게 참조되는 구조임.

기능의 매력과 사용자의 관점

  • Anthropic 관점에서 이 기능이 매력적인 이유는 이해할 수 있음. LLM 코딩 에이전트의 가장 큰 결함 중 하나를 임시방편으로 보완하기 때문임.
  • 파일을 ~/.claude에 저장하면 Claude Code가 다른 실행 환경보다 사용자의 작업 방식과 코드베이스에 대한 지식을 더 많이 쌓는 종속 효과가 생기며, 그 지식은 Claude에만 귀속됨.
  • 그러나 사용자 관점에서는 명백히 나쁜 기능임.
  • 문서 기반 메모리 시스템을 사용한다면 설명 대상 코드와 같은 위치에 두고, 건전한 수명 주기를 갖추며, 특정 업체에 종속되지 않아야 함.
  • 문서 기반 메모리 시스템 자체도 과도한 문서화와 같은 이유로 취약함. 쉽게 낡고 코드와 경쟁하는 구조임.