피드로 돌아가기
Dev.toBackend
원문 읽기
Why My AI Agent Remembers Everything Without a Database
개인 AI 에이전트가 Postgres, Redis, 벡터 스토어 없이 4계층 마크다운 파일 기반 메모리로 수천 개의 자동화 사이클 운영
AI 요약
Context
AI 에이전트의 메모리 관리를 위해 일반적으로 외부 데이터베이스 도입이 고려되지만, 단일 사용자 개인 에이전트는 복잡한 저장소 인프라 없이도 동작 가능한 구조를 필요로 한다.
Technical Solution
- 메모리를 4계층으로 구분: Hot(인메모리 배열, 최근 20개 대화), Warm(일별 파일, daily/YYYY-MM-DD.md), Cold(장기 저장, MEMORY.md + 토픽 파일), Topic(키워드 매칭으로 로드되는 topics/*.md)
- 모든 메모리를 마크다운 파일로 저장하고 git 버전 관리로 추적
- 에이전트가 새 사이클 시작 시 데이터베이스 쿼리 대신 파일에서 컨텍스트 조립
- Hot 메모리는 항상 로드, Topic 메모리는 대화에서 관련 키워드 나타날 때만 로드
- 검색을 SQLite의 FTS5 + BM25 랭킹으로 구현(better-sqlite3 사용), 결과 없으면 grep 폴백
- 벡터 임베딩 없이 키워드 기반 검색 수행
Impact
약 800개의 메모리 항목에서 FTS5 검색이 즉시 응답 수준으로 동작.
Key Takeaway
저장소 엔진의 선택보다 메모리 아키텍처가 중요하며, 어떤 메모리를 언제 로드할지 결정하는 계층화된 설계가 단순한 저장소 구조보다 효과적이다. 파일 기반 메모리의 숨은 이점은 git blame을 통한 시간적 투명성으로 에이전트의 결정 근거를 버전 히스토리로 추적할 수 있다는 점이다.
실천 포인트
수백에서 수천 개 범위의 메모리 항목을 다루는 단일 사용자 또는 단일 에이전트 시스템에서는 파일 기반 메모리 + SQLite FTS5 조합을 도입하면 외부 데이터베이스 운영 비용 제거와 동시에 git을 통한 감사 추적을 확보할 수 있다. 다만 멀티 에이전트 동시성이나 10K개 이상의 메모리 항목, 복잡한 SQL 쿼리가 필요한 경우는 Postgres 같은 관계형 데이터베이스로 전환해야 한다.