SimpleMem
무엇인가
SimpleMem은 LLM 에이전트의 컨텍스트 윈도우 밖에 장기 기억을 두는 계층이다. 검색 증강 생성이 외부 문서를 붙이는 자리와 대화 로그를 그대로 누적하는 자리 사이에서, 상호작용 자체를 압축해 기억으로 바꾼다. 하나의 `simplemem` 패키지 안에 텍스트용 SimpleMem, 멀티모달용 Omni-SimpleMem, 검색 설정을 자동 진화시키는 EvolveMem이 함께 들어 있다.
어떻게 동작하나
동작은 세 단계다. 대화나 사실을 구조화된 원자적 기억으로 변환해 저장하고, 시맨틱 임베딩과 구조적 메타데이터로 인덱싱하고, 질의 시 키워드가 아니라 의미를 기준으로 검색한다. 백엔드는 `mode="auto"`가 첫 호출의 입력을 보고 정한다. 순수 텍스트면 텍스트 백엔드, 이미지·오디오·비디오가 섞이면 Omni 백엔드가 선택된다. MCP 서버는 mcp.simplemem.cloud에 호스팅되어 있다.
무엇과 다른가
기존 방식과의 차이는 압축을 먼저 통과시킨다는 점이다. 원시 상호작용 이력을 그대로 쌓으면 중복이 늘고 토큰을 많이 쓰며, 비싼 추론 루프로 노이즈를 걸러내면 느리고 비용이 든다. SimpleMem은 3단계 파이프라인에서 의미를 잃지 않는 선으로 압축한다. LoCoMo 벤치마크에서 이전 시스템 대비 평균 F1 26.4% 향상, 추론 시점 토큰 소비 약 30배 절감을 보고한다. Omni-SimpleMem은 LoCoMo F1=0.613, Mem-Gallery F1=0.810을 기록했다.
어떻게 쓰나
설치는 `pip install simplemem` 후 `from simplemem import SimpleMem`으로 시작한다. `simplemem.optimize(...)`는 개발용 질문 집합에서 top_k, 융합 모드, 답변 검증, 반성 라운드 같은 검색 플래그를 오프라인으로 조정하고 결과 Config를 추론에 배포한다. MCP 클라이언트(Claude Desktop, Cursor, LM Studio, Cherry Studio 등)에는 서버를 등록해 텍스트 기억을 쓴다. 기억 구축·검색·판정에 쓸 추론은 `OPENAI_BASE_URL`로 OpenAI 호환 엔드포인트를 지정해 처리한다. 대규모 대화 처리는 병렬 모드를 켠다.
전제와 한계
전제 조건이 있다. 기억 생성과 검색 판정에 LLM 추론이 필요하므로 OpenAI 호환 엔드포인트가 있어야 한다. 텍스트 기억은 MCP로 연동하고, 이미지·오디오·비디오를 포함한 전체 멀티모달 기능은 Python 통합으로만 쓴다. EvolveMem의 벤치마크 어댑터와 카테고리별 오버라이드를 포함한 독립 실행 버전은 저장소의 `EvolveMem/` 디렉터리에 따로 있다.
관련 논문 3
유사 도구
- mem0AI 에이전트에 장기 기억 계층을 붙이는 Python 라이브러리이자 CLI다. 단일 패스 추출과 다중 신호 검색으로 대화 맥락을 축적한다.
- cognee에이전트에 세션을 넘어 지속되는 장기 기억을 붙이는 오픈소스 AI 메모리 플랫폼이다. 자체 호스팅 지식 그래프 엔진 위에서 동작한다.
- agentmemory코딩 에이전트의 작업을 자동으로 수집·압축해 검색 가능한 장기 기억으로 저장하고, 다음 세션 시작 시 관련 컨텍스트를 주입하는 TypeScript CLI다.
- byterover-cli프로젝트 지식을 컨텍스트 트리로 큐레이션해 AI 코딩 에이전트에 영구 기억으로 붙이는 TypeScript CLI다. git식 버전 관리와 클라우드 동기화를 쓴다.
- langroid에이전트에 LLM·벡터스토어·도구를 붙이고 태스크를 맡겨 메시지로 협업시키는 Python 멀티에이전트 프레임워크다. LangChain에 의존하지 않는다.
- headroomLLM에 도달하기 전에 도구 출력·로그·파일·RAG 청크를 압축해 토큰을 줄이는 Python 라이브러리 겸 로컬 프록시 겸 MCP 서버다.