BaseMemoryStore¶
Base memory store class.
BaseMemoryStore
¶
Bases: ABC
Base class for episodic memory stores.
Subclasses are responsible for two things:
- Durable persistence — write episodes to the substrate, including any preprocessing required by that substrate (embedding, indexing, tokenization).
- Retrieval primitives — implement
_read_recentand_searchso that the concretesearch()method can dispatch based onrecall_modewithout knowing the underlying storage details.
The public retrieval interface is search(). Subclasses must not
override it; they implement _read_recent and _search instead.
Attributes:
| Name | Type | Description |
|---|---|---|
max_results |
int
|
Default number of results returned by
|
recall_mode |
RecallMode
|
Controls how |
Source code in src/llm_agents_from_scratch/base/memory_store.py
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | |
__init__
¶
Initialise shared store state.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
max_results
|
int
|
Default maximum number of episodes returned by retrieval operations. Defaults to 5. |
5
|
recall_mode
|
RecallMode
|
Retrieval strategy used by
|
SEARCH
|
Source code in src/llm_agents_from_scratch/base/memory_store.py
write
abstractmethod
async
¶
Persist an episode to the store.
Subclasses must implement this method.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
episode
|
Episode
|
The completed episode to store. |
required |
recall
async
¶
Return episodes according to recall_mode.
Dispatches to _read_recent when recall_mode is
RecallMode.RECENT, or to _search when it is
RecallMode.SEARCH. Subclasses must not override this method;
implement _read_recent and _search instead.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
str
|
The search query (e.g. the task instruction).
Ignored when |
required |
**kwargs
|
Any
|
Optional substrate-specific search parameters
forwarded to |
{}
|
Returns:
| Type | Description |
|---|---|
list[Episode]
|
list[Episode]: Episodes ordered by recency or relevance
depending on |
Source code in src/llm_agents_from_scratch/base/memory_store.py
delete
abstractmethod
async
¶
Delete an episode by its unique identifier.
Subclasses must implement this method. Raises
EpisodeNotFoundError if no episode with id_ exists.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_
|
str
|
The |
required |
Source code in src/llm_agents_from_scratch/base/memory_store.py
update
abstractmethod
async
¶
Replace an existing episode with an updated version.
Subclasses must implement this method. Matches the stored episode
by episode.id_ and replaces it in-place. Raises
EpisodeNotFoundError if no matching episode exists.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
episode
|
Episode
|
The updated episode. Matched by |
required |
Source code in src/llm_agents_from_scratch/base/memory_store.py
count
abstractmethod
async
¶
Return the total number of episodes in the store.
Subclasses must implement this method.
Returns:
| Name | Type | Description |
|---|---|---|
int |
int
|
Episode count. |
summary
abstractmethod
async
¶
Return a human-readable summary of the store contents.
Subclasses must implement this method. Should describe the substrate, episode count, and the oldest and newest episodes. Intended for inspection and debugging.
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Multi-line summary of the store. |