neurotrace.core.hippocampus.stm
¶
neurotrace.core.hippocampus.stm
¶
BaseShortTermMemory
¶
Bases: ABC
Abstract base class for short-term memory management.
This class defines the interface for managing a temporary message store with token limit constraints.
Source code in neurotrace/core/hippocampus/stm.py
__len__()
¶
Get the number of messages in memory.
Returns:
Name | Type | Description |
---|---|---|
int |
int
|
Count of messages currently stored. |
append(message)
abstractmethod
¶
Add a message to short-term memory.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
Message
|
The message to be added to memory. |
required |
clear()
abstractmethod
¶
get_messages()
abstractmethod
¶
Retrieve all messages from short-term memory.
Returns:
Type | Description |
---|---|
List[Message]
|
List[Message]: List of all messages currently in memory. |
set_messages(messages)
abstractmethod
¶
Replace all messages in memory with a new list.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
messages
|
List[Message]
|
New list of messages to store. |
required |
total_tokens()
abstractmethod
¶
Calculate total tokens used by all messages.
Returns:
Name | Type | Description |
---|---|---|
int |
int
|
Sum of estimated token lengths of all messages. |
ShortTermMemory
¶
Bases: BaseShortTermMemory
Implementation of token-limited short-term memory.
This class maintains a list of messages while ensuring the total token count stays within a specified limit. When the limit is exceeded, older messages are automatically evicted.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
max_tokens
|
int
|
Maximum number of tokens to store. Set to 0 to disable memory (all messages will be evicted). Defaults to 2048. |
2048
|
Source code in neurotrace/core/hippocampus/stm.py
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 |
|
__init__(max_tokens=2048)
¶
Initialize short-term memory with token limit.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
max_tokens
|
int
|
Maximum number of tokens to store. Defaults to 2048. |
2048
|
Source code in neurotrace/core/hippocampus/stm.py
__len__()
¶
__repr__()
¶
Get string representation of memory state.
Returns:
Name | Type | Description |
---|---|---|
str |
String showing message count and token usage/limit. |
Source code in neurotrace/core/hippocampus/stm.py
append(message)
¶
Add a message to memory and evict old messages if needed.
If the message doesn't have an ID, generates a UUID for it. After adding the message, ensures token limit compliance by evicting old messages if necessary.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
Message
|
The message to add to memory. |
required |
Source code in neurotrace/core/hippocampus/stm.py
clear()
¶
get_messages()
¶
Get all messages currently in memory.
Returns:
Type | Description |
---|---|
List[Message]
|
List[Message]: List of all stored messages. |
set_messages(messages)
¶
Replace current messages with new list and maintain token limit.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
messages
|
List[Message]
|
New messages to store in memory. |
required |
Source code in neurotrace/core/hippocampus/stm.py
total_tokens()
¶
Calculate total tokens used by all messages.
Returns:
Name | Type | Description |
---|---|---|
int |
int
|
Sum of estimated token lengths across all messages. |