Clawdbot이 기억을 관리하는 법: Markdown 기반의 하이브리드 메모리 아키텍처
(manthanguptaa.in)요약:
- Clawdbot은 오픈 소스 로컬 AI 어시스턴트로, 클라우드 종속성 없이 사용자의 로컬 환경에 Markdown 파일 형태로 장기 기억을 저장하고 관리합니다.
- 2계층 메모리 시스템(일일 로그 및 장기 지식)과 하이브리드 검색(벡터 + 키워드)을 통해 대규모 컨텍스트에서도 효율적인 정보 회수가 가능합니다.
- 컨텍스트 윈도우 한계를 극복하기 위해 '컴팩션(Compaction)'과 '프루닝(Pruning)' 기술을 사용하여 비용 최적화와 성능 유지를 동시에 달성합니다.
상세요약:
-
개요 및 설계 철학
Clawdbot은 데이터 소유권을 사용자에게 돌려주기 위해 모든 기억을 로컬 워크스페이스 내 Markdown 파일로 관리합니다. 투명성(Transparency)을 핵심 가치로 삼아, 사용자가 직접 메모리 파일을 읽고 수정하며 버전 관리를 할 수 있도록 설계되었습니다. -
2계층 메모리 구조
메모리는 크게 두 가지 레이어로 나뉩니다:
- Layer 1 (Daily Logs):
memory/YYYY-MM-DD.md파일에 그날의 대화 요약, 결정 사항, 사용자 선호도를 기록합니다. - Layer 2 (Long-term Knowledge):
MEMORY.md파일에 여러 세션에 걸쳐 지속되어야 하는 핵심 사실, 프로젝트 결정 사항, 고정된 사용자 프로필 등을 저장합니다.
- 하이브리드 검색 엔진 (Hybrid Search)
에이전트는memory_search도구를 사용하여 필요할 때만 메모리를 조회합니다:
- 시맨틱 검색(Vector Search): 임베딩을 통해 의미적으로 유사한 내용을 찾습니다 (SQLite-vec 활용).
- 키워드 검색(BM25): 정확한 고유 명사, 날짜, ID 등을 찾기 위해 FTS5 엔진을 병행합니다.
- 최종 점수 계산:
(0.7 * 벡터 점수) + (0.3 * 텍스트 점수)의 가중치 방식을 적용하여 정확도를 높였습니다.
- 컨텍스트 관리 기술
- 컴팩션(Compaction): 컨텍스트 제한에 도달하면 이전 대화를 요약본으로 대체합니다. 특히 '메모리 플러시(Memory Flush)' 단계를 통해 요약 전 중요한 정보를 미리 Markdown 파일에 영구 저장하여 정보 손실을 방지합니다.
- 프루닝(Pruning): 대규모 로그 출력 등 불필요하게 긴 도구 실행 결과를 잘라내어 토큰을 절약합니다. Anthropic의 프롬프트 캐싱 TTL을 고려한 지능적인 삭제 로직이 포함되어 있습니다.
- 기술 스택 및 데이터 흐름
- 저장소: 로컬 Markdown 파일 (Source of Truth) 및 SQLite (인덱싱용).
- 워크플로우: 파일 변경 감지(Chokidar) -> 청킹(400 토큰 단위, 80 토큰 중첩) -> 임베딩 -> SQLite 저장.