작은 LLM 트릭: AI 어시스턴트에게 장기 메모리 부여
번역할 텍스트를 제공해 주시겠어요? 현재는 소스 링크만 포함되어 있어 번역할 내용이 없습니다. 텍스트를 알려주시면 한국어로 번역해 드리겠습니다.
I Have a Confession to Make
나는 종종 내 프로젝트가 어떻게 돌아가는지 잊어버린다.
보통 이런 식이다: 주말을 투자해 Proof of Concept를 만들고, 3주 동안 일상이 방해를 하고, 마침내 다시 돌아왔을 때, **“과거 Morten”**에게는 의미가 통하는 폴더 구조를 **“현재 Morten”**은 완전한 미스터리로 마주한다.
요즘은 AI 어시스턴트를 두고 작업한다. 하지만 그조차도 내가 “session void” 라 부르는 현상에 부딪힌다. 코드는 보이지만 3주 전 변경된 의도는 보이지 않는다. 긴 채팅 세션 중에 무언가를 배우지만, 새 세션을 시작하자마자 그 “아하!” 순간은 사라진다.
나는 이를 해결하기 위한 새로운 기법을 실험하고 있다. 아직 초기 단계이지만, 초기 결과가 충분히 고무적이어서 공유하고 싶다. 나는 이를 AGENTS.md trick이라고 부른다.
시스템 프롬프트를 넘어
많은 개발자들이 AI를 활용한 코딩에서 프로젝트‑레벨 프롬프트나 인스트럭션 파일이라는 개념에 이미 익숙합니다. 보통 이것들은 정적이며—한 번 작성하면 에이전트에게 코드 형식이나 선호하는 라이브러리를 알려줍니다.
제가 진행하고 있는 실험은 AGENTS.md를 정적인 설명서로 다루는 것을 멈추고 장기 메모리로 활용하는 것입니다.
전략: 회상 유사성
목표는 에이전트에게 세션 간, 그리고 서로 다른 에이전트 간에 프로젝트에 대한 이해를 지속적으로 구축하고 유지하도록 강제하는 일련의 지시사항을 제공하는 것입니다.
저는 이러한 핵심 “메모리” 지시사항을 프로젝트 루트에 있는 AGENTS.md 파일에 추가하기 시작했습니다:
- 진실의 출처 유지 – 에이전트가 중요한 아키텍처 변경을 하거나 프로젝트의 “숨은 규칙”에 대해 새로운 것을 배울 때마다
AGENTS.md를 업데이트해야 합니다. - 발견 외부화 – 에이전트가 복잡한 로직 흐름을 “탐색”하면서 이해하는 데 시간을 할애할 경우, 해당 발견에 대한 짧은 요약을
./docs/에 새 파일로 작성해야 합니다. - 맵 유지 –
./docs/index.md를 최신 상태로 유지하고, 여기에는 이러한 발견 목록이 포함되어야 합니다. - 개인 표준 참조 – 저는 에이전트에게 전역 디렉터리(예:
~/prompts/)를 가리키게 합니다. 여기에는 JavaScript 스타일이나 테스트 패턴과 같은 일반적인 선호도가 저장되어 있습니다. 여기서 중요한 점은 이러한 표준이 프로젝트 간에 걸쳐 적용된다는 것입니다.- (참고: 이 방법은 Cursor나 GitHub Copilot과 같이 현재 프로젝트 루트 외부의 파일을 참조하거나 인덱싱할 수 있는 AI 도구에서 가장 잘 작동합니다.)
- 팀에서 작업 중이라면 이러한 파일들을 공유 Git 저장소에 두고, 폴더가 없을 경우 에이전트가 이를 클론하도록 지시할 수 있습니다. 이렇게 하면 에이전트가 “우리가 어떻게 구축하는지”를 전역적으로 학습하게 되고, 단순히 “이 특정 프로젝트가 어떻게 동작하는지”만 배우는 것이 아니라 됩니다.
왜 나는 이것을 좋아하는가 (특히 기존 프로젝트에 대해)
LLM은 눈앞에 있는 것을 읽는 데는 뛰어나지만, 다른 채팅 스레드에서 일어난 일이나 아직 열어보지 않은 파일에 대한 “기억”은 전혀 없습니다.
에이전트가 스스로 “아하!” 순간을 문서화하도록 강제함으로써, 나는 본질적으로 세션 간의 다리를 놓는 셈입니다.
- 연속성 – 새 세션을 시작하면 에이전트가
AGENTS.md를 읽고index.md의 지도를 확인하여, 마치 몇 주째 프로젝트에 몰두해 온 사람의 컨텍스트를 즉시 갖게 됩니다. - 유기적 성장 – “대형 매뉴얼”을 따로 작성할 필요가 없습니다. 문서는 복잡성이 있는 바로 그 지점에서 성장합니다. 왜냐하면 에이전트가 그 부분을 이해하는 데 노력을 들였기 때문입니다.
- 레거시 코드 – 이는 오래된 프로젝트에 큰 도움이 되었습니다. 전체를 미리 문서화할 필요가 없습니다. 에이전트에게 “알아가는 대로 적어라”라고 말하면 됩니다.
진화 패턴
이 설정의 가장 멋진 부수 효과 중 하나는 진화하는 표준을 처리하는 방식이다.
화살표 함수에서 표준 함수 선언으로 다시 전환하고 싶다고 결정하면, 코드를 바꾸는 것만이 아니라 에이전트에게 알려준다. 에이전트는 메모리를 유지하도록 지시받았기 때문에 실제로 전역 표준을 업데이트하도록 제안할 수 있다.
나는 에이전트에게 javascript-writing-style.md에서 지속적으로 벗어나는 것을 감지하면 다음과 같이 물어보도록 지시했다:
“안녕, 화살표 함수에서 벗어나고 있는 것 같아. 전역 패턴 파일을 업데이트할까?”
이렇게 하면 내 선호도가 코드만큼 살아 있게 된다.
Early Results
완벽할까? 아직은 아니다. 때때로 에이전트는 문서화 의무를 기억하도록 살짝 자극이 필요하고, 나는 ./docs/ 폴더가 어수선해지는 것을 방지하기 위한 최적의 균형을 아직 찾고 있다.
하지만 지금까지는 나와 AI 모두에게서 “내가 무슨 생각을 했지?”라는 상황을 크게 줄여주었다.
숨겨진 이점: 문서 정원 가꾸기
다음 채팅 세션을 위해 단순히 “기억”하는 것을 넘어, 이 패턴은 프로젝트의 건강을 위한 선순환을 만들어냅니다.
- 자동 정원 가꾸기 – 주기적으로 에이전트에게
./docs/에 흩어져 있는 메모들을 검토하고 실제 구조화된 프로젝트 문서로 재포맷하도록 요청할 수 있습니다. 에이전트가 이미 효과적으로 작업하는 데 필요한 기술적 뉘앙스를 포착했기 때문에, 이러한 문서는 사람이 처음부터 작성하는 것보다 더 정확하고 상세한 경우가 많습니다. - 리뷰어를 위한 컨텍스트 – Pull Request를 열면 문서 변경 사항이 인간 리뷰어에게 훌륭한 배경 정보를 제공합니다. 문서화할 만큼 큰 변경을 도입했다면, 코드와 함께 에이전트의 “메모리” 업데이트를 보는 것이 변경 이유를 훨씬 더 투명하게 보여줍니다.
- 고급 팁: 자동 문서화 훅 – 정말 게으른 사람(저처럼)이라면 커밋 후 에이전트를 실행하는 Git 훅을 설정할 수 있습니다. 이 훅은 수동 변경을 검토하고
./docs/폴더가 그에 맞게 업데이트되도록 보장합니다. 즉, 빠른 수정을 위해 AI를 우회하더라도 프로젝트의 “메모리”는 동기화된 상태를 유지합니다.
“Memory” 템플릿
이 템플릿을 직접 사용해 보고 싶다면, 제가 현재 사용하고 있는 행동 템플릿을 참고하세요. 주의: 아직 진행 중인 작업입니다. 앞으로 몇 달 동안 이 지침을 크게 다듬을 예정입니다.
# Agent
# (Insert the rest of your template here – e.g., system prompt, duties, examples, etc.)
템플릿을 여러분의 작업 흐름에 맞게 자유롭게 수정하고, 문서화 작업을 즐기세요!
이 저장소 가이드라인
중요: 이 프로젝트의 장기 메모리를 유지할 책임은 여러분에게 있습니다.
1. 행동 규칙
- 점진적 문서화 – 시스템의 복잡한 부분이나 구성 요소 간의 명확하지 않은 관계를 발견하면
./docs/에 해당 내용을 설명하는 파일을 생성하세요. - 자기 교정 –
./docs/(또는 이 파일)의 기존 문서가 현재 코드와 맞지 않는 것을 발견하면 즉시 업데이트하세요. - 인덱스 유지 –
./docs/index.md를 최신 상태로 유지하여 모든 관련 문서에 항상 연결되도록 하고, 쉽게 개요를 제공하세요. - 개인 기준 – 중요한 작업을 시작하기 전에
~/prompts/index.md를 참고하여 내 선호도(예:javascript‑writing‑style.md,good‑testing‑patterns.md등)를 검토하세요. - 진화적 피드백 – 이러한 기준에 반하는 요청이나 코드를 반복해서 접하게 되면,
~/prompts/의 전역 파일들을 새로운 패턴을 반영하도록 업데이트해야 하는지 물어보세요.
2. 프로젝트 컨텍스트
사용자 또는 에이전트:
에이전트가 즉시 시작할 수 있도록 현재 상태와 기술 스택을 간략히 설명하세요.
UI 컨트롤 (옵션)
Enter fullscreen mode
Exit fullscreen mode
AI를 파트너로, 손님이 아니라
매일 아침 처음으로 코드를 보는 도구와 이전 아키텍처 결정을 기억하는 도구 사이의 차이는 엄청납니다.
간단한 실험이지만, 오늘 누구나 시도해볼 수 있습니다. 이는 에이전트를 코드베이스의 일시적인 손님에서 실제로 구축하고 있는 것에 대한 지속적인 이해를 유지하도록 도와주는 파트너로 바꿉니다.
이것이 여러분에게 효과가 있을까요? 아직은 모르지만, 계속 개선해 나갈 생각에 기대됩니다.