Memory System¶
The Memory System in Bedrock Swarm provides context management and message history for agents. It enables agents to maintain state and recall previous interactions.
BaseMemory¶
bedrock_swarm.memory.base.BaseMemory
¶
Base class for memory implementations.
Functions¶
add_message(message: Message) -> None
¶
get_messages(thread_id: Optional[str] = None) -> List[Message]
¶
Get messages from memory.
| PARAMETER | DESCRIPTION |
|---|---|
thread_id
|
Optional thread ID to filter messages
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
List[Message]
|
List of messages in chronological order |
Source code in src/bedrock_swarm/memory/base.py
get_last_message(thread_id: Optional[str] = None) -> Optional[Message]
¶
Get the most recent message.
| PARAMETER | DESCRIPTION |
|---|---|
thread_id
|
Optional thread ID to filter messages
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Optional[Message]
|
Most recent message or None if no messages |
Source code in src/bedrock_swarm/memory/base.py
SimpleMemory¶
bedrock_swarm.memory.base.SimpleMemory(max_size: int = 1000)
¶
Bases: BaseMemory
Simple in-memory implementation with thread support and shared state.
| PARAMETER | DESCRIPTION |
|---|---|
max_size
|
Maximum number of messages to store per thread
TYPE:
|
Source code in src/bedrock_swarm/memory/base.py
Functions¶
add_message(message: Message) -> None
¶
Add a message to memory.
If max_size is reached, oldest messages are removed.
| PARAMETER | DESCRIPTION |
|---|---|
message
|
Message to add
TYPE:
|
Source code in src/bedrock_swarm/memory/base.py
get_messages(thread_id: Optional[str] = None) -> List[Message]
¶
Get messages from memory.
| PARAMETER | DESCRIPTION |
|---|---|
thread_id
|
Optional thread ID to filter messages
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
List[Message]
|
List of messages in chronological order |
Source code in src/bedrock_swarm/memory/base.py
get_last_message(thread_id: Optional[str] = None) -> Optional[Message]
¶
Get the most recent message.
| PARAMETER | DESCRIPTION |
|---|---|
thread_id
|
Optional thread ID to filter messages
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Optional[Message]
|
Most recent message or None if no messages |
Source code in src/bedrock_swarm/memory/base.py
get_messages_by_type(message_type: str, thread_id: Optional[str] = None) -> List[Message]
¶
Get messages of a specific type from memory.
| PARAMETER | DESCRIPTION |
|---|---|
message_type
|
Type of messages to retrieve (e.g., 'tool_result', 'user_message')
TYPE:
|
thread_id
|
Optional thread ID to filter messages
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
List[Message]
|
List of messages of the specified type in chronological order |
Source code in src/bedrock_swarm/memory/base.py
get_tool_results(thread_id: Optional[str] = None, limit: Optional[int] = None) -> List[Message]
¶
Get tool execution results from memory.
| PARAMETER | DESCRIPTION |
|---|---|
thread_id
|
Optional thread ID to filter messages
TYPE:
|
limit
|
Optional limit on number of results to return (most recent first)
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
List[Message]
|
List of tool result messages in chronological order |
Source code in src/bedrock_swarm/memory/base.py
get_conversation_summary(thread_id: Optional[str] = None, limit: int = 5) -> List[Dict[str, str]]
¶
Get a summary of the recent conversation.
| PARAMETER | DESCRIPTION |
|---|---|
thread_id
|
Optional thread ID to filter messages
TYPE:
|
limit
|
Number of most recent message pairs to include
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
List[Dict[str, str]]
|
List of message pairs (user/assistant) with their content |
Source code in src/bedrock_swarm/memory/base.py
clear() -> None
¶
clear_thread(thread_id: str) -> None
¶
Clear all messages from a specific thread.
| PARAMETER | DESCRIPTION |
|---|---|
thread_id
|
ID of the thread to clear
TYPE:
|
get_thread_ids() -> List[str]
¶
Get list of all thread IDs in memory.
| RETURNS | DESCRIPTION |
|---|---|
List[str]
|
List of thread IDs |
Message¶
bedrock_swarm.memory.base.Message(role: str, content: str, timestamp: datetime, thread_id: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None)
dataclass
¶
Message class for storing conversation history.
Usage Example¶
from bedrock_swarm.memory.base import SimpleMemory
# Create a memory instance
memory = SimpleMemory()
# Add messages to memory
memory.add_message("user", "What's the weather like?")
memory.add_message("assistant", "It's sunny today.")
# Get message history
history = memory.get_history()
Best Practices¶
- Use
SimpleMemoryfor basic message history tracking - Extend
BaseMemoryfor custom memory implementations - Implement message filtering and context window management
- Consider memory persistence for long-running agents
- Handle message types consistently across the system