aws / aws/bedrock-agentcore-sdk-python
Port AgentCoreMemoryStore (MemoryStore interface) from TypeScript SDK to Python
- Dominant language
- Python
- Stars
- 761
- Forks
- 147
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 7
Description
### Problem Statement
The TypeScript `bedrock-agentcore` SDK (v0.4.1+) ships an `AgentCoreMemoryStore` that implements the Strands `MemoryStore` interface, enabling AgentCore Memory to plug into the `MemoryManager` pipeline with recall (search tool), injection (automatic prompt augmentation), and server-side extraction. It is documented on the Strands integrations page: https://strandsagents.com/docs/integrations/memory-stores/agentcore-memory-store/
The Python `bedrock-agentcore` SDK currently only integrates AgentCore Memory as a session manager (`AgentCoreMemorySessionManager`). There is no `MemoryStore` implementation, so Python developers cannot use AgentCore Memory with `MemoryManager`.
### Proposed Solution
Port the `AgentCoreMemoryStore` from the TypeScript SDK to Python. The integration lives at `bedrock-agentcore/memory/integrations/strands/` in the TS package and maps:
- `search` to AgentCore's `retrieveMemoryRecords`
- `add_messages` to conversation ingestion for server-side extraction
- Per-namespace store creation via a `create_agentcore_memory_stores` factory
Target usage:
```python
from strands import Agent
from strands.memory import MemoryManager
from bedrock_agentcore.memory.integrations.strands.memory_store import (
AgentCoreMemoryStore,
create_agentcore_memory_stores,
)
stores = create_agentcore_memory_stores(
memory_id="mem-abc",
actor_id="user-123",
session_id="session-1",
namespaces=[
{"namespace": "/facts/{actorId}", "writable": True},
{"namespace": "/preferences/{actorId}"},
],
extraction=True,
)
agent = Agent(memory_manager=MemoryManager(stores=stores))
```
### Use Case
Python agents that want to use AgentCore Memory as a long-term memory backend through the standard `MemoryManager` pipeline, with injection, recall tools, and extraction.
### Additional Context
- TypeScript implementation: https://github.com/aws/bedrock-agentcore-sdk-typescript/tree/main/src/memory/integrations/strands
- Strands integration page (TS only): https://strandsagents.com/docs/integrations/memory-stores/agentcore-memory-store/
- The existing Python `AgentCoreMemorySessionManager` would remain for session persistence use cases. The `MemoryStore` is complementary.
Contributor guide
Research direction
Start by reading the TypeScript implementation under bedrock-agentcore/memory/integrations/strands and compare it with the Python AgentCoreMemorySessionManager. Add the Python memory_store.py entry points and factory described in the issue, mapping search and add_messages to AgentCore Memory. Done means Python users can pass the created stores to Strands MemoryManager for recall, injection, and extraction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python, typescript
- Domain
- ai, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100