Mem0MemoryStore

Mem0MemoryStore

Mem0MemoryStore는 Mem0 클라우드 API를 백엔드로 사용하는 메모리 저장소예요. Mem0MemoryRetriever, Mem0MemoryWriter, Mem0 Memory Tools가 공유하는 데이터 계층이에요.

출처: Mem0MemoryStore

본문

개요

Mem0MemoryStore는 Mem0 클라우드 API를 감싸고 두 가지 핵심 메서드를 제공해요.

  • add_memories — ChatMessage 객체 목록을 Mem0의 기억으로 저장해요.
  • search_memories — 쿼리와 관련된 기억을 Mem0에서 검색해요.

기억 범위는 Mem0 엔티티 ID 중 적어도 하나로 지정해요: user_id, run_id, agent_id, app_id. 이들은 런타임 파라미터라서, 저장소 인스턴스 하나로 여러 사용자·세션을 서빙할 수 있어요.

add_memories의 infer 파라미터는 Mem0이 들어오는 메시지를 처리하는 방식을 제어해요.

  • infer=True이면 Mem0이 메시지에서 기억을 자동으로 추출해요. 전체 Agent 턴을 저장할 때 유용해요.
  • infer=False이면 주어진 메시지 텍스트를 그대로 저장해요. 정확한 기억 텍스트가 이미 상류에서 선택됐을 때 유용해요.

설치

Mem0 통합을 설치해요.

pip install mem0-haystack

Mem0 API 키를 설정해요.

export MEM0_API_KEY="your-mem0-api-key"

사용법

단독 사용:

from haystack.dataclasses import ChatMessage
from haystack_integrations.memory_stores.mem0 import Mem0MemoryStore

store = Mem0MemoryStore()

store.add_memories(
    messages=[ChatMessage.from_user("Alice prefers concise Python examples.")],
    user_id="alice",
    infer=False,
)

memories = store.search_memories(
    query="What does Alice prefer?",
    user_id="alice",
    top_k=3,
)
print([msg.text for msg in memories])

여러 엔티티 ID로 범위 지정:

Mem0은 읽기·쓰기 범위를 user_id, run_id, agent_id, app_id로 좁힐 수 있어요. 호출 시점에 어떤 조합이든 전달하면 돼요.

store.add_memories(
    messages=[
        ChatMessage.from_user("Alice is working on a documentation search system.")
    ],
    user_id="alice",
    run_id="docs-assistant-session-1",
    infer=True,
)

memories = store.search_memories(
    query="What project is Alice working on?",
    user_id="alice",
    run_id="docs-assistant-session-1",
)
print([msg.text for msg in memories])

범위 안의 모든 기억 검색:

관련성 검색 없이 제공된 범위와 일치하는 모든 기억을 반환하려면 query=None을 전달해요.

all_memories = store.search_memories(query=None, user_id="alice")
print([msg.text for msg in all_memories])

더 알아보기 (Learn more)