Port AgentCoreMemoryStore (MemoryStore interface) from TypeScript SDK to Python

Open
#661 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
58/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
aws, python, typescript
Domain
ai, backend

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.

Description

enhancement
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:

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
Dominant language
Python
Stars
764
Forks
149
Avg merge
1d 19h
Merged PRs (30d)
7

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from aws/bedrock-agentcore-sdk-python

All issues in aws/bedrock-agentcore-sdk-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.