Skip to content

MemoryService

Interface for cross-session long-term memory.

MemoryService is the counterpart to SessionStore:

  • SessionStore manages per-session state (messages, workingMemory, agentStates)
  • MemoryService manages cross-session knowledge (facts, summaries, preferences)

The service has two responsibilities:

  1. Ingestion — converting session data into searchable memories
  2. Retrieval — finding relevant memories for a given query
addSessionToMemory(session, options?): Promise<void>;

Ingest a session into long-term memory.

Typically called when a session ends or reaches a meaningful checkpoint. Implementations may store raw events, extract facts via LLM, or summarize. A session may be ingested multiple times (implementations must handle idempotency).

Parameter Type Description

session

Session

The session to ingest

options?

MemoryIngestionOptions

Optional ingestion configuration

Promise<void>


optional deleteMemories(userId): Promise<void>;

Delete all memories for a user. Used for GDPR compliance / data cleanup.

Parameter Type

userId

string

Promise<void>


searchMemory(request): Promise<SearchMemoryResponse>;

Search long-term memory for relevant context.

Returns memories scoped to a specific user within an application context. Implementations may use keyword matching, semantic search, or hybrid approaches.

Parameter Type Description

request

SearchMemoryRequest

Search parameters (userId, query, optional filters)

Promise<SearchMemoryResponse>