aws / aws/bedrock-agentcore-sdk-python

Port AgentCoreMemoryStore (MemoryStore interface) from TypeScript SDK to Python

Open
#661 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.