🖇️ 工具集接口¶
evoagentx.memory ¶
BaseMemory ¶
Bases: BaseModule
Base class for memory implementations in the EvoAgentX framework.
BaseMemory provides core functionality for storing, retrieving, and filtering messages. It maintains a chronological list of messages while also providing indices for efficient retrieval by action or workflow goal.
Attributes:
Name | Type | Description |
---|---|---|
messages |
List[Message]
|
List of stored Message objects. |
memory_id |
str
|
Unique identifier for this memory instance. |
timestamp |
str
|
Creation timestamp of this memory instance. |
capacity |
Optional[PositiveInt]
|
Maximum number of messages that can be stored, or None for unlimited. |
Source code in evoagentx/core/module.py
size
property
¶
Returns the current number of messages in memory.
Returns:
Name | Type | Description |
---|---|---|
int |
int
|
Number of messages currently stored. |
init_module ¶
Initialize memory indices.
Creates default dictionaries for indexing messages by action and workflow goal.
remove_message ¶
remove_message(message: Message)
Remove a single message from memory.
Removes the specified message from the main message list and all indices. If the message is not found in memory, no action is taken.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
Message
|
The message to be removed. The message will be removed from self.messages, self._by_action, and self._by_wf_goal. |
required |
Source code in evoagentx/memory/memory.py
add_message ¶
add_message(message: Message)
Store a single message in memory.
Adds the message to the main list and relevant indices if it's not already stored.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
Message
|
the message to be stored. |
required |
Source code in evoagentx/memory/memory.py
add_messages ¶
store (a) message(s) to the memory.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
messages
|
Union[Message, List[Message]]
|
the input messages can be a single message or a list of message. |
required |
Source code in evoagentx/memory/memory.py
get ¶
get(n: int = None, **kwargs) -> List[Message]
Retrieve recent messages from memory.
Returns the most recent messages, up to the specified limit.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
n
|
int
|
The maximum number of messages to return. If None, returns all messages. |
None
|
**kwargs
|
Any
|
Additional parameters (unused in base implementation). |
{}
|
Returns:
Type | Description |
---|---|
List[Message]
|
A list of Message objects, ordered from oldest to newest. |
Raises:
Type | Description |
---|---|
AssertionError
|
If n is negative. |
Source code in evoagentx/memory/memory.py
get_by_type ¶
get_by_type(data: Dict[str, list], key: str, n: int = None, **kwargs) -> List[Message]
Retrieve a list of Message objects from a given data dictionary data
based on a specified type key
.
This function looks up the value associated with key
in the data
dictionary, which should be a list of messages. It then returns a subset of these messages according to the specified parameters.
If n
is provided, it limits the number of messages returned; otherwise, it may return the entire list. Additional keyword arguments (**kwargs) can be used to further filter or process the resulting messages.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data
|
Dict[str, list]
|
A dictionary where keys are type strings and values are lists of messages. |
required |
key
|
str
|
The key in |
required |
n
|
int
|
The maximum number of messages to return. If not provided, all messages under the given |
None
|
**kwargs
|
Any
|
Additional parameters for filtering or processing the messages. |
{}
|
Returns:
Type | Description |
---|---|
List[Message]
|
List[Message]: A list of messages corresponding to the given |
Source code in evoagentx/memory/memory.py
get_by_action ¶
get_by_action(actions: Union[str, List[str]], n: int = None, **kwargs) -> List[Message]
return messages triggered by actions
in the memory.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
actions
|
Union[str, List[str]]
|
A single action name or list of action names to filter by. |
required |
n
|
int
|
Maximum number of messages to return per action. If None, returns all matching messages. |
None
|
**kwargs
|
Any
|
Additional parameters (unused in base implementation). |
{}
|
Returns:
Type | Description |
---|---|
List[Message]
|
A list of Message objects, sorted by timestamp. |
Source code in evoagentx/memory/memory.py
get_by_wf_goal ¶
get_by_wf_goal(wf_goals: Union[str, List[str]], n: int = None, **kwargs) -> List[Message]
return messages related to wf_goals
in the memory.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wf_goals
|
Union[str, List[str]]
|
A single workflow goal or list of workflow goals to filter by. |
required |
n
|
int
|
Maximum number of messages to return per workflow goal. If None, returns all matching messages. |
None
|
**kwargs
|
Any
|
Additional parameters (unused in base implementation). |
{}
|
Returns:
Type | Description |
---|---|
List[Message]
|
A list of Message objects, sorted by timestamp. |
Source code in evoagentx/memory/memory.py
ShortTermMemory ¶
Bases: BaseMemory
Short-term memory implementation.
This class extends BaseMemory to represent a temporary, short-term memory storage. In the current implementation, it inherits all functionality from BaseMemory without modifications, but it provides a semantic distinction for different memory usage patterns in the framework.
Source code in evoagentx/core/module.py
LongTermMemory ¶
Bases: BaseMemory
Manages long-term storage and retrieval of memories, integrating with RAGEngine for indexing and StorageHandler for persistence.
Source code in evoagentx/core/module.py
init_module ¶
Initialize the RAG engine and memory indices.
Source code in evoagentx/memory/long_term_memory.py
add ¶
Store messages in memory and index them in RAGEngine, returning memory_ids.
Source code in evoagentx/memory/long_term_memory.py
get
async
¶
get(memory_ids: Union[str, List[str]], return_chunk: bool = True) -> List[Tuple[Union[Chunk, Message], str]]
Retrieve memories by memory_ids, returning (Message/Chunk, memory_id) tuples.
Source code in evoagentx/memory/long_term_memory.py
delete ¶
Delete memories by memory_ids, returning success status for each.
Source code in evoagentx/memory/long_term_memory.py
update ¶
update(updates: Union[Tuple[str, Union[Message, str]], List[Tuple[str, Union[Message, str]]]]) -> List[bool]
Update memories with new content, returning success status for each.
Source code in evoagentx/memory/long_term_memory.py
search_async
async
¶
search_async(query: Union[str, Query], n: Optional[int] = None, metadata_filters: Optional[Dict] = None, return_chunk=False) -> List[Tuple[Message, str]]
Retrieve messages from RAG index asynchronously based on a query, returning messages and memory_ids.
Source code in evoagentx/memory/long_term_memory.py
search ¶
search(query: Union[str, Query], n: Optional[int] = None, metadata_filters: Optional[Dict] = None) -> List[Tuple[Message, str]]
Synchronous wrapper for searching memories.
Source code in evoagentx/memory/long_term_memory.py
MemoryManager ¶
Bases: BaseModule
The Memory Manager organizes and manages LongTermMemory data at a higher level. It retrieves data, processes it with optional LLM-based action inference, and stores new or updated data. It creates Message objects for agent use, combining user prompts with memory context.
Attributes:
Name | Type | Description |
---|---|---|
memory |
LongTermMemory
|
The LongTermMemory instance for storing and retrieving messages. |
llm |
Optional[BaseLLM]
|
LLM for deciding memory operations. |
use_llm_management |
bool
|
Toggle LLM-based memory management. |
Source code in evoagentx/core/module.py
handle_memory
async
¶
handle_memory(action: str, user_prompt: Optional[Union[str, Message, Query]] = None, data: Optional[Union[Message, str, List[Union[Message, str]], Dict, List[Tuple[str, Union[Message, str]]]]] = None, top_k: Optional[int] = None, metadata_filters: Optional[Dict] = None) -> Union[List[str], List[Tuple[Message, str]], List[bool], Message, None]
Handle memory operations based on the specified action, with optional LLM inference.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
action
|
str
|
The memory operation ("add", "search", "get", "update", "delete", "clear", "save", "load", "create_message"). |
required |
user_prompt
|
Optional[Union[str, Message, Query]]
|
The user prompt or query to process with memory data. |
None
|
data
|
Optional
|
Input data for the operation (e.g., messages, memory IDs, updates). |
None
|
top_k
|
Optional[int]
|
Number of results to retrieve for search operations. |
None
|
metadata_filters
|
Optional[Dict]
|
Filters for memory retrieval. |
None
|
Returns:
Type | Description |
---|---|
Union[List[str], List[Tuple[Message, str]], List[bool], Message, None]
|
Union[List[str], List[Tuple[Message, str]], List[bool], Message, None]: Result of the operation. |
Source code in evoagentx/memory/memory_manager.py
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 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
|
create_conversation_message
async
¶
create_conversation_message(user_prompt: Union[str, Message], conversation_id: str, top_k: Optional[int] = None, metadata_filters: Optional[Dict] = None) -> Message
Create a Message combining user prompt with conversation history and relevant memories.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
user_prompt
|
Union[str, Message]
|
The user's input prompt or message. |
required |
conversation_id
|
str
|
ID of the conversation thread. |
required |
top_k
|
Optional[int]
|
Number of results to retrieve. |
None
|
metadata_filters
|
Optional[Dict]
|
Filters for memory retrieval. |
None
|
Returns:
Name | Type | Description |
---|---|---|
Message |
Message
|
A new Message object with user prompt, history, and memory context. |