From f593c38f83fb23449a6b8c7544ac8c04c235688e Mon Sep 17 00:00:00 2001 From: notgitika Date: Mon, 18 May 2026 17:48:31 -0400 Subject: [PATCH] fix: scope summaries retrieval to actor, not session, for cross-session memory The generated session.py template included {session_id} in the summaries namespace path, limiting retrieval to the current session only. This prevented agents with longAndShortTerm memory from recalling conversation summaries across sessions. Remove {session_id} so the hierarchical prefix match finds summaries from all sessions for the given actor. Closes #1279 --- .../__tests__/__snapshots__/assets.snapshot.test.ts.snap | 6 +++--- .../python/a2a/strands/capabilities/memory/session.py | 2 +- .../python/agui/strands/capabilities/memory/session.py | 2 +- .../python/http/strands/capabilities/memory/session.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap b/src/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap index e1a1dd106..4d281e87c 100644 --- a/src/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap +++ b/src/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap @@ -1915,7 +1915,7 @@ def get_memory_session_manager(session_id: Optional[str], actor_id: str) -> Opti f"/users/{actor_id}/preferences": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} {{#if (includes memoryProviders.[0].strategies "SUMMARIZATION")}} - f"/summaries/{actor_id}/{session_id}": RetrievalConfig(top_k=3, relevance_score=0.5), + f"/summaries/{actor_id}": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} } {{/if}} @@ -2755,7 +2755,7 @@ def get_memory_session_manager(session_id: Optional[str], actor_id: str) -> Opti f"/users/{actor_id}/preferences": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} {{#if (includes memoryProviders.[0].strategies "SUMMARIZATION")}} - f"/summaries/{actor_id}/{session_id}": RetrievalConfig(top_k=3, relevance_score=0.5), + f"/summaries/{actor_id}": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} } {{/if}} @@ -5029,7 +5029,7 @@ def get_memory_session_manager(session_id: Optional[str], actor_id: str) -> Opti f"/users/{actor_id}/preferences": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} {{#if (includes memoryProviders.[0].strategies "SUMMARIZATION")}} - f"/summaries/{actor_id}/{session_id}": RetrievalConfig(top_k=3, relevance_score=0.5), + f"/summaries/{actor_id}": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} } {{/if}} diff --git a/src/assets/python/a2a/strands/capabilities/memory/session.py b/src/assets/python/a2a/strands/capabilities/memory/session.py index 46883bf57..2b754424f 100644 --- a/src/assets/python/a2a/strands/capabilities/memory/session.py +++ b/src/assets/python/a2a/strands/capabilities/memory/session.py @@ -25,7 +25,7 @@ def get_memory_session_manager(session_id: Optional[str], actor_id: str) -> Opti f"/users/{actor_id}/preferences": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} {{#if (includes memoryProviders.[0].strategies "SUMMARIZATION")}} - f"/summaries/{actor_id}/{session_id}": RetrievalConfig(top_k=3, relevance_score=0.5), + f"/summaries/{actor_id}": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} } {{/if}} diff --git a/src/assets/python/agui/strands/capabilities/memory/session.py b/src/assets/python/agui/strands/capabilities/memory/session.py index 46883bf57..2b754424f 100644 --- a/src/assets/python/agui/strands/capabilities/memory/session.py +++ b/src/assets/python/agui/strands/capabilities/memory/session.py @@ -25,7 +25,7 @@ def get_memory_session_manager(session_id: Optional[str], actor_id: str) -> Opti f"/users/{actor_id}/preferences": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} {{#if (includes memoryProviders.[0].strategies "SUMMARIZATION")}} - f"/summaries/{actor_id}/{session_id}": RetrievalConfig(top_k=3, relevance_score=0.5), + f"/summaries/{actor_id}": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} } {{/if}} diff --git a/src/assets/python/http/strands/capabilities/memory/session.py b/src/assets/python/http/strands/capabilities/memory/session.py index 159f82d19..125580900 100644 --- a/src/assets/python/http/strands/capabilities/memory/session.py +++ b/src/assets/python/http/strands/capabilities/memory/session.py @@ -25,7 +25,7 @@ def get_memory_session_manager(session_id: Optional[str], actor_id: str) -> Opti f"/users/{actor_id}/preferences": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} {{#if (includes memoryProviders.[0].strategies "SUMMARIZATION")}} - f"/summaries/{actor_id}/{session_id}": RetrievalConfig(top_k=3, relevance_score=0.5), + f"/summaries/{actor_id}": RetrievalConfig(top_k=3, relevance_score=0.5), {{/if}} } {{/if}}