AI를 금붕어처럼 대하지 마세요. 장기 기억을 부여하는 방법
Source: Dev.to
문제: 벡터가 외롭다
AI 에이전트를 만드는 것은 컨텍스트 창이 슬라이드될 때까지는 재미있습니다. 완벽한 시스템 프롬프트를 만들고, 문서를 넣어 주고, 멋진 대화를 나눈 뒤—몇 분 뒤에 에이전트는 시작 부분에서 언급된 중요한 의존성을 잊어버립니다. 마치 금붕어 기억력처럼요.
RAG(벡터 데이터베이스)는 해결책처럼 보입니다: “전체 코드베이스에 접근할 수 있어!” 실제로 벡터 데이터베이스는 정교한 Ctrl + F와 같습니다. 키워드를 찾지만 관계를 이해하지 못합니다. 개념이 여러 파일에 흩어져 있으면, 벡터는 단순히 연결되지 않은 조각일 뿐이라 “연결 조직”이 없는 실제 메모리처럼 동작하지 않기 때문에 표준 RAG는 실패합니다.
해결책: AI에게 “수면 주기”를 제공하라
텍스트를 데이터베이스에 그냥 넣는 대신, 비동기 처리 파이프라인을 구현하세요—제가 수면 주기(Sleep Cycles) 라고 부르는 방식입니다.
Ingestion
- 코드나 문서를 푸시합니다.
- 즉시 벡터화되어 빠른 단기 검색에 사용됩니다.
Consolidation
- 백그라운드 워커(예: Redis + BullMQ)가 깨어나 새로운 데이터를 읽고, 엔티티와 관계를 추출합니다.
Graph Construction
- 지식 그래프(GraphRAG)를 업데이트합니다.
- 서로 다른 폴더에 있더라도 “User Service” ↔ “Database Config”와 같이 관련된 구성 요소를 연결합니다.
나중에 에이전트를 질의하면 벡터 인덱스(유사도)와 지식 그래프(관계) 두 곳에서 데이터를 가져와 더 풍부하고 장기적인 메모리를 제공합니다.
입력 자동화 (GitHub Action)
매 main 푸시마다 실행되는 GitHub Action을 만들었습니다:
- 변경 사항을 Diff합니다.
- 새로운 코드/문서를 MemVault API에 동기화합니다.
- “수면 주기”를 자동으로 트리거하여 에이전트를 수동 개입 없이 최신 상태로 유지합니다.
직접 사용해 보기
금붕어 기억력 에이전트에 지쳤다면, 이 접근 방식을 시도해 보세요.
- GitHub Action: https://github.com/marketplace/actions/memvault-sync
- Repository: https://github.com/jakops88-hub/Long-Term-Memory-API.git
“수면 주기” 접근 방식에 대해 어떻게 생각하는지 알려 주세요. 과도한가요, 아니면 RAG가 이렇게 나아가야 할 방향인가요?