🖇️ 工具集接口¶
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
Responsible for the management of raw data for long-term storage.
Source code in evoagentx/core/module.py
MemoryManager ¶
Bases: BaseModule
The Memory Manager is responsible for organizing and managing LongTerm Memory's data at a higher level. It gets data from LongTermMemory, then it processes the data, store the data in LongTermMemory, and store the LongTermMemory through StorageHandler.