You will create a memory, write a few chat messages into it, then read back both the raw messages and the facts the agent learned from them. Terms: strategy = the rule for what to remember (SEMANTIC keeps plain facts); actor id = the user; session id = the conversation; namespace = a folder-like path where memories are filed; top_k = how many results to return.
# write conversation turns (short-term) import boto3 from bedrock_agentcore.memory import MemorySessionManager from bedrock_agentcore.memory.constants import ( ConversationalMessage, MessageRole) ctrl = boto3.client('bedrock-agentcore-control', region_name='us-west-2') memory_id = ctrl.list_memories()['memories'][0]['id'] mgr = MemorySessionManager(memory_id=memory_id, region_name="us-west-2") session = mgr.create_memory_session( actor_id="User1", session_id="OrderSupportSession1") session.add_turns(messages=[ConversationalMessage( "How can I help you today?", MessageRole.ASSISTANT)]) session.add_turns(messages=[ConversationalMessage( "My order #35476 has not arrived.", MessageRole.USER)]) turns = session.get_last_k_turns(k=5) # read short-term
# retrieve from long-term memory # all records under a namespace path records = session.list_long_term_memory_records( namespace_path="/") # or a semantic search records = session.search_long_term_memories( query="summarize the support issue", namespace_path="/", top_k=3, ) for r in records: print(r)
# app/MyAgent/memory/session.py (Strands integration) from bedrock_agentcore.memory.integrations.strands.session_manager \ import AgentCoreMemorySessionManager from bedrock_agentcore.memory.integrations.strands.config \ import AgentCoreMemoryConfig, RetrievalConfig # env var MEMORY_MYMEMORY_ID is injected at runtime # pass the manager to your agent in main.py: # Agent(model=..., session_manager=get_memory_session_manager(...))