피드로 돌아가기
Designing a Memory System for Multi-Agent AI — Building 'Never-Forget' Agents with PostgreSQL + pgvector
Dev.toDev.to
Backend

OpenClaw 클러스터의 20개 AI 에이전트가 PostgreSQL + pgvector 기반 Memory Service를 Markdown 파일 시스템과 병렬 운영해 22,000+ 메시지에서 의미론적 검색 가능

Designing a Memory System for Multi-Agent AI — Building 'Never-Forget' Agents with PostgreSQL + pgvector

linou5182026년 3월 29일4intermediate

Context

Markdown 기반 메모리 시스템(일일 노트 + MEMORY.md)은 축적되는 파일이 많아질수록 검색 정확도가 저하되었습니다. 에이전트별 독립 세션 운영으로 메모리 단편화 문제가 심했으며, 에이전트 간 지식 공유는 수동으로 파일을 복사하는 방식에 의존했습니다.

Technical Solution

  • PostgreSQL 15 + pgvector를 Layer 0 Memory Service로 추가: 기존 4개 레이어(세션 컨텍스트, CONTEXT.md, 일일 로그, MEMORY.md) 위에 벡터 데이터베이스 구성
  • 이중 쿼리 모드 도입: Markdown의 memory_search와 Memory Service /search를 병렬 실행 후 결과 병합
  • 메시지·세션·에이전트·팩트·공개 지식 테이블 설계: (session_key, message_index) 복합 고유 제약으로 동기화 재실행 시 중복 방지
  • Session Sync Daemon을 5분 간격 systemd로 운영: OpenClaw JSONL 형식의 이벤트 기반 로그를 정확한 분기 로직으로 파싱 후 자동 동기화
  • 비동기 임베딩 생성과 BM25 폴백: 22,000개 메시지 임베딩을 별도 Backfill Worker로 처리해 초기 임포트 시간 단축

Impact

설계 2일차에 이중 쿼리 모드 효과가 확인되었습니다. "지난주 그 논의에 대해"와 같은 쿼리에서 Memory Service가 Markdown의 grep 방식 검색으로는 발견할 수 없는 관련 세션을 표시했습니다.

Key Takeaway

AI 에이전트 메모리는 "모두 DB" 또는 "모두 파일"의 이진 선택이 아닙니다. Markdown의 즉시성과 Git 추적 가능성, pgvector의 의미론적 검색 능력을 동시에 활용하는 하이브리드 아키텍처가 20개 에이전트 환경에서 가장 실용적입니다.


다중 에이전트 시스템을 운영하는 팀에서 의미론적 메모리 검색이 필요할 경우, 기존 파일 기반 시스템을 폐기하지 말고 PostgreSQL + pgvector를 병렬 레이어로 추가한 뒤 질의 시점에서 결과를 병합하면, 파일의 휴대성과 투명성을 유지하면서 대규모 메시지 풀에서의 검색 정확도를 즉시 확보할 수 있습니다.

원문 읽기