Skip to content

Commit 0176ded

Browse files
authored
feat: Add AgentCore Session Manager Documentation (#282)
* chore: Added Bedrock AgentCore to Deployment patterns section * fix: Adjusted text to read like the other options * feat: AgentCore Session Manager Documentation * feat: add session management Community Sections
1 parent fa1a95f commit 0176ded

File tree

3 files changed

+160
-0
lines changed

3 files changed

+160
-0
lines changed
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# AgentCore Memory Session Manager
2+
3+
{{ community_contribution_banner }}
4+
5+
The [AgentCore Memory Session Manager](https://github.com/aws/bedrock-agentcore-sdk-python/tree/main/src/bedrock_agentcore/memory/integrations/strands) leverages Amazon Bedrock AgentCore Memory to provide advanced memory capabilities with intelligent retrieval for Strands Agents. It supports both short-term memory (STM) for conversation persistence and long-term memory (LTM) with multiple strategies for learning user preferences, facts, and session summaries.
6+
7+
## Installation
8+
9+
```bash
10+
pip install 'bedrock-agentcore[strands-agents]'
11+
```
12+
13+
## Usage
14+
15+
### Basic Setup (Short-Term Memory)
16+
17+
```python
18+
from strands import Agent
19+
from bedrock_agentcore.memory import MemoryClient
20+
from bedrock_agentcore.memory.integrations.strands.config import AgentCoreMemoryConfig
21+
from bedrock_agentcore.memory.integrations.strands.session_manager import AgentCoreMemorySessionManager
22+
from datetime import datetime
23+
24+
# Create a basic memory for short-term functionality
25+
client = MemoryClient(region_name="us-east-1")
26+
basic_memory = client.create_memory(
27+
name="BasicTestMemory",
28+
description="Basic memory for testing short-term functionality"
29+
)
30+
31+
# Configure memory
32+
agentcore_memory_config = AgentCoreMemoryConfig(
33+
memory_id=basic_memory.get('id'),
34+
session_id=f"session_{datetime.now().strftime('%Y%m%d%H%M%S')}",
35+
actor_id=f"user_{datetime.now().strftime('%Y%m%d%H%M%S')}"
36+
)
37+
38+
# Create session manager
39+
session_manager = AgentCoreMemorySessionManager(
40+
agentcore_memory_config=agentcore_memory_config,
41+
region_name="us-east-1"
42+
)
43+
44+
# Create agent
45+
agent = Agent(
46+
system_prompt="You are a helpful assistant. Use all you know about the user to provide helpful responses.",
47+
session_manager=session_manager,
48+
)
49+
50+
# Use the agent - conversations are persisted with intelligent retrieval
51+
agent("I like sushi with tuna")
52+
agent("What should I buy for lunch today?") # Agent remembers preferences
53+
```
54+
55+
### Advanced Setup (Long-Term Memory)
56+
57+
For more sophisticated memory capabilities, create a memory with multiple strategies:
58+
59+
```python
60+
from bedrock_agentcore.memory.integrations.strands.config import RetrievalConfig
61+
62+
# Create comprehensive memory with all built-in strategies
63+
comprehensive_memory = client.create_memory_and_wait(
64+
name="ComprehensiveAgentMemory",
65+
description="Full-featured memory with all built-in strategies",
66+
strategies=[
67+
{
68+
"summaryMemoryStrategy": {
69+
"name": "SessionSummarizer",
70+
"namespaces": ["/summaries/{actorId}/{sessionId}"]
71+
}
72+
},
73+
{
74+
"userPreferenceMemoryStrategy": {
75+
"name": "PreferenceLearner",
76+
"namespaces": ["/preferences/{actorId}"]
77+
}
78+
},
79+
{
80+
"semanticMemoryStrategy": {
81+
"name": "FactExtractor",
82+
"namespaces": ["/facts/{actorId}"]
83+
}
84+
}
85+
]
86+
)
87+
88+
# Configure with multiple namespace retrieval
89+
config = AgentCoreMemoryConfig(
90+
memory_id=comprehensive_memory.get('id'),
91+
session_id=f"session_{datetime.now().strftime('%Y%m%d%H%M%S')}",
92+
actor_id=f"user_{datetime.now().strftime('%Y%m%d%H%M%S')}",
93+
retrieval_config={
94+
"/preferences/{actorId}": RetrievalConfig(
95+
top_k=5,
96+
relevance_score=0.7
97+
),
98+
"/facts/{actorId}": RetrievalConfig(
99+
top_k=10,
100+
relevance_score=0.3
101+
),
102+
"/summaries/{actorId}/{sessionId}": RetrievalConfig(
103+
top_k=5,
104+
relevance_score=0.5
105+
)
106+
}
107+
)
108+
109+
session_manager = AgentCoreMemorySessionManager(config, region_name='us-east-1')
110+
agent = Agent(session_manager=session_manager)
111+
```
112+
113+
## Configuration
114+
115+
### Memory Strategies
116+
117+
AgentCore Memory supports three built-in strategies:
118+
119+
1. **summaryMemoryStrategy**: Automatically summarizes conversation sessions for efficient context retrieval
120+
2. **userPreferenceMemoryStrategy**: Learns and stores user preferences across sessions
121+
3. **semanticMemoryStrategy**: Extracts and stores factual information from conversations
122+
123+
### AgentCoreMemoryConfig Parameters
124+
125+
- `memory_id`: ID of the Bedrock AgentCore Memory resource
126+
- `session_id`: Unique identifier for the conversation session
127+
- `actor_id`: Unique identifier for the user/actor
128+
- `retrieval_config`: Dictionary mapping namespaces to RetrievalConfig objects
129+
130+
### RetrievalConfig Parameters
131+
132+
- `top_k`: Number of top results to retrieve (default: 5)
133+
- `relevance_score`: Minimum relevance threshold (0.0-1.0)
134+
135+
### Namespace Patterns
136+
137+
- `/preferences/{actorId}`: User-specific preferences across sessions
138+
- `/facts/{actorId}`: User-specific factual information
139+
- `/summaries/{actorId}/{sessionId}`: Session-specific conversation summaries
140+
141+
## Important Notes
142+
143+
> **Session Limitations:** Currently, only **one** agent per session is supported when using AgentCoreMemorySessionManager. Creating multiple agents with the same session will show a warning.
144+
145+
## Resources
146+
147+
- **GitHub**: [bedrock-agentcore-sdk-python](https://github.com/aws/bedrock-agentcore-sdk-python/)
148+
- **Documentation**: [Strands Integration Examples](https://github.com/aws/bedrock-agentcore-sdk-python/tree/main/src/bedrock_agentcore/memory/integrations/strands)
149+
- **Issues**: Report bugs and feature requests in the [bedrock-agentcore-sdk-python repository](https://github.com/aws/bedrock-agentcore-sdk-python/issues/new/choose)

docs/user-guide/concepts/agents/session-management.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,15 @@ The [`SessionMessage`](../../../api-reference/types.md#strands.types.session.Ses
209209

210210
These data models work together to provide a complete representation of an agent's state and conversation history. The session management system handles serialization and deserialization of these models, including special handling for binary data using base64 encoding.
211211

212+
## Third-Party Session Managers
213+
214+
The following third-party session managers extend Strands with additional storage and memory capabilities:
215+
216+
| Session Manager | Provider | Description | Documentation |
217+
|-----------------|----------|-------------|---------------|
218+
| AgentCoreMemorySessionManager | Amazon | Advanced memory with intelligent retrieval using Amazon Bedrock AgentCore Memory. Supports both short-term memory (STM) and long-term memory (LTM) with strategies for user preferences, facts, and session summaries. | [View Documentation](../../../community/session-managers/agentcore-memory.md) |
219+
| **Contribute Your Own** | Community | Have you built a session manager? Share it with the community! | [Learn How](../../../community/community-packages.md) |
220+
212221
## Custom Session Repositories
213222

214223
For advanced use cases, you can implement your own session storage backend by creating a custom session repository:

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ nav:
157157
- Cohere: community/model-providers/cohere.md
158158
- CLOVA Studio: community/model-providers/clova-studio.md
159159
- Fireworks AI: community/model-providers/fireworksai.md
160+
- Session Managers:
161+
- Amazon AgentCore Memory: community/session-managers/agentcore-memory.md
160162

161163
- Contribute ❤️: https://github.com/strands-agents/sdk-python/blob/main/CONTRIBUTING.md
162164
- API Reference:

0 commit comments

Comments
 (0)