I Built a Memory System for AI Agents That Actually Forgets
개요
Recall-sqlite는 AI 에이전트의 영구적인 메모리 축적 문제를 해결하기 위해 설계된 시스템으로, 기억의 빈도를 기반으로 메모리를 계층화하여 효율적인 검색을 지원한다.
주요 내용
* 문제점: 기존 AI 에이전트 메모리 시스템은 시간이 지남에 따라 오래된 정보가 축적되어 검색 성능을 저하시키고 에이전트의 효율성을 떨어뜨리는 문제를 가지고 있다.
* 해결책: Recall-sqlite는 '계층적 스토리지(tiered storage)' 개념을 도입하여 메모리의 접근 빈도에 따라 자동으로 메모리를 승격(promotion) 또는 강등(demotion)시킨다.
* Hot tier (약 500개): ANN, 키워드, FTS5를 모두 사용하여 빠른 전체 검색을 지원한다.
* Warm tier (약 5,000개): 키워드와 FTS5만을 사용하여 Hot tier 대비 66-99%의 컴퓨팅 자원을 절감한다.
* Cold tier (무제한): 컴퓨팅 자원을 사용하지 않으며, 관련성이 있을 때 자동으로 Hot tier로 승격된다.
* 핵심 설계 결정:
* 쿼리 시 LLM을 사용하지 않고 임베딩 모델(150MB 로컬)만 사용한다.
* 별도의 벡터 데이터베이스 대신 SQLite와 sqlite-vec을 활용한다.
* 오프라인 시 키워드+FTS5 폴백(fallback) 기능을 통해 점진적 성능 저하를 지원한다.
* 자동 스키마 마이그레이션으로 수동 작업이 필요 없다.
* 단일 pip install로 설치 가능하며 API 키나 Docker가 필요 없다.
* 성능: 6개월간 1469개의 메모리로 매일 사용한 결과, 지연 시간은 약 80ms를 유지하고 메모리 사용량은 약 1.5MB로 고정되었다.
* 통합: Hermes Agent 생태계에 PR(Pull Request)되었으며 pip install recall-sqlite로 설치 가능하다.
시사점
Recall-sqlite는 AI 에이전트의 메모리 관리 효율성을 혁신적으로 개선하여, 시간 경과에 따른 성능 저하 없이 지속적으로 높은 성능을 유지할 수 있는 실용적인 솔루션을 제공한다.
댓글
GitHub Discussions