In-memory implementation of MemoryStore.
This implementation stores all memories in memory, making it suitable for testing, short-lived agents, and scenarios where persistence isn't required.
Features:
- Fast lookups using indexed data structures
- Whole-word keyword search, case-insensitive (semantic search requires embeddings)
- Thread-safe for concurrent access
- No external dependencies
Limitations:
- Data is lost when the application terminates
- Memory usage grows with stored memories
- Keyword search is less sophisticated than vector search
Value parameters
- config
-
Configuration options
- memories
-
All stored memories indexed by ID
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait TransactionalMemoryStoretrait MemoryStoreclass Objecttrait Matchableclass AnyShow all
Members list
Value members
Concrete methods
Get all memories (for debugging/testing).
Get all memories (for debugging/testing).
Attributes
The outcome recorded for key, if it was applied; fenced like every operation.
The outcome recorded for key, if it was applied; fenced like every operation.
Attributes
- Definition Classes
How many applied keys the store holds.
Applies the write to this value and returns the new one: the transaction is the value, so a caller that shares the store between threads serialises its updates (as llm4s-agent-memory's tenant cell does).
Applies the write to this value and returns the new one: the transaction is the value, so a caller that shares the store between threads serialises its updates (as llm4s-agent-memory's tenant cell does).
Attributes
- Definition Classes
Removes every memory; applied writes and fencing tokens are kept, as TransactionalMemoryStore requires.
Removes every memory; applied writes and fencing tokens are kept, as TransactionalMemoryStore requires.
Attributes
- Definition Classes
Count memories matching a filter.
Count memories matching a filter.
Value parameters
- filter
-
Criteria for counting memories
Attributes
- Returns
-
Count or error
- Definition Classes
Delete a memory by its ID.
Delete a memory by its ID.
Value parameters
- id
-
The memory identifier
Attributes
- Returns
-
Updated store or error
- Definition Classes
Delete all memories matching a filter.
Delete all memories matching a filter.
Value parameters
- filter
-
Criteria for selecting memories to delete
Attributes
- Returns
-
Updated store or error
- Definition Classes
Removes key's record; fenced like every operation. A key that is not there is Right.
Removes key's record; fenced like every operation. A key that is not there is Right.
Attributes
- Definition Classes
Retrieve a memory by its ID.
Retrieve a memory by its ID.
Value parameters
- id
-
The memory identifier
Attributes
- Returns
-
The memory if found, or error
- Definition Classes
Recall memories matching a filter.
Recall memories matching a filter.
This is the primary retrieval method for most use cases. Returns memories sorted by relevance (most relevant first).
Value parameters
- filter
-
Criteria for filtering memories
- limit
-
Maximum number of memories to return
Attributes
- Returns
-
Matching memories sorted by relevance (most relevant first), or error
- Definition Classes
Get the most recent memories.
Get the most recent memories.
Value parameters
- filter
-
Additional filter criteria
- limit
-
Maximum number of memories
Attributes
- Returns
-
Most recent memories
- Definition Classes
Semantic search for memories similar to a query.
Semantic search for memories similar to a query.
This method uses embeddings for semantic similarity search. Falls back to keyword search if embeddings are not available.
Value parameters
- filter
-
Additional filter criteria
- query
-
The search query
- topK
-
Number of results to return
Attributes
- Returns
-
A list of ScoredMemory objects, sorted by relevance score (highest first), or error
- Definition Classes
Semantic search for memories similar to an embedded query vector.
Semantic search for memories similar to an embedded query vector.
Computes cosine similarity between the query embedding and the stored memory embeddings, returning the top-K results.
Attributes
Get memory count.
Get memory count.
Attributes
Store a new memory.
Store a new memory.
Value parameters
- memory
-
The memory to store
Attributes
- Returns
-
Updated store or error
- Definition Classes
Update a memory.
Update a memory.
Value parameters
- id
-
The memory identifier
- update
-
Function to transform the memory
Attributes
- Returns
-
Updated store or error
- Definition Classes
Inherited methods
Check if a memory exists.
Check if a memory exists.
Value parameters
- id
-
The memory identifier
Attributes
- Returns
-
True if memory exists
- Inherited from:
- MemoryStore
Get conversation history.
Get conversation history.
Value parameters
- conversationId
-
The conversation identifier
- limit
-
Maximum messages to return
Attributes
- Returns
-
Conversation memories in chronological order
- Inherited from:
- MemoryStore
Get all memories for a specific entity.
Get all memories for a specific entity.
Value parameters
- entityId
-
The entity identifier
Attributes
- Returns
-
All memories related to this entity
- Inherited from:
- MemoryStore
Get high-importance memories.
Get high-importance memories.
Value parameters
- limit
-
Maximum number of memories
- threshold
-
Minimum importance score (0.0 to 1.0)
Attributes
- Returns
-
Important memories
- Inherited from:
- MemoryStore
Attributes
- Inherited from:
- Product
Attributes
- Inherited from:
- Product
Store add, then delete remove: one replacement, such as a consolidation's summary for the memories it summarises. A memory of remove that is not there is skipped.
Store add, then delete remove: one replacement, such as a consolidation's summary for the memories it summarises. A memory of remove that is not there is skipped.
This default stores, then deletes one by one, so it is atomic for a store whose writes return a new store and leave the original untouched (as InMemoryStore does). SQLiteMemoryStore and the Postgres store override it as one transaction; any other store that writes in place should too.
Attributes
- Returns
-
the store after the replacement, or an error
- Inherited from:
- MemoryStore
Store multiple memories in a batch, all or nothing: on Left, none of memories has been stored (a memory that was already there is left as it was). A memory whose id appears twice is stored as its last occurrence.
Store multiple memories in a batch, all or nothing: on Left, none of memories has been stored (a memory that was already there is left as it was). A memory whose id appears twice is stored as its last occurrence.
This default stores into an immutable copy, so it is atomic for a store whose store returns a new store and leaves the original untouched (as InMemoryStore does). A store that writes in place must override it; the SQLite, vector and Postgres stores write the batch in one transaction.
Value parameters
- memories
-
The memories to store
Attributes
- Returns
-
A new MemoryStore containing the added memories, or an error describing why the operation failed.
- Inherited from:
- MemoryStore