Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -853,11 +853,7 @@ def retrieve_for_namespace(namespace: str, retrieval_config: RetrievalConfig):
top_k=retrieval_config.top_k,
)
if retrieval_config.relevance_score:
memories = [
m
for m in memories
if m.get("relevanceScore", retrieval_config.relevance_score) >= retrieval_config.relevance_score
]
memories = [m for m in memories if m.get("score", 0.0) >= retrieval_config.relevance_score]
context_items = []
for memory in memories:
if isinstance(memory, dict):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -806,8 +806,8 @@ def test_generate_initialization_query_custom(self, session_manager, test_agent)
def test_retrieve_contextual_memories_all_namespaces(self, agentcore_config_with_retrieval, mock_memory_client):
"""Test contextual memory retrieval from all namespaces."""
mock_memory_client.retrieve_memories.return_value = [
{"content": "Relevant memory", "relevanceScore": 0.8},
{"content": "Less relevant memory", "relevanceScore": 0.2},
{"content": "Relevant memory", "score": 0.8},
{"content": "Less relevant memory", "score": 0.2},
]

with patch(
Expand All @@ -829,11 +829,11 @@ def test_retrieve_contextual_memories_all_namespaces(self, agentcore_config_with
return_value=[
{
"namespace": "user_preferences/test-actor-789/",
"memories": [{"content": "Relevant memory", "relevanceScore": 0.8}],
"memories": [{"content": "Relevant memory", "score": 0.8}],
},
{
"namespace": "session_context/test-session-456/",
"memories": [{"content": "Less relevant memory", "relevanceScore": 0.2}],
"memories": [{"content": "Less relevant memory", "score": 0.2}],
},
]
)
Expand All @@ -846,9 +846,7 @@ def test_retrieve_contextual_memories_specific_namespaces(
self, agentcore_config_with_retrieval, mock_memory_client
):
"""Test contextual memory retrieval from specific namespaces."""
mock_memory_client.retrieve_memories.return_value = [
{"content": "User preference memory", "relevanceScore": 0.9}
]
mock_memory_client.retrieve_memories.return_value = [{"content": "User preference memory", "score": 0.9}]

with patch(
"bedrock_agentcore.memory.integrations.strands.session_manager.MemoryClient",
Expand All @@ -869,7 +867,7 @@ def test_retrieve_contextual_memories_specific_namespaces(
return_value=[
{
"namespace": "user_preferences/test-actor-789/",
"memories": [{"content": "User preference memory", "relevanceScore": 0.9}],
"memories": [{"content": "User preference memory", "score": 0.9}],
}
]
)
Expand Down Expand Up @@ -914,8 +912,8 @@ def test_retrieve_contextual_memories_invalid_namespace(self, agentcore_config_w
def test_load_long_term_memories_with_config(self, agentcore_config_with_retrieval, mock_memory_client, test_agent):
"""Test loading long-term memories with retrieval config."""
mock_memory_client.retrieve_memories.return_value = [
{"content": "User prefers morning meetings", "relevanceScore": 0.8},
{"content": "User is in Pacific timezone", "relevanceScore": 0.7},
{"content": "User prefers morning meetings", "score": 0.8},
{"content": "User is in Pacific timezone", "score": 0.7},
]

with patch(
Expand Down Expand Up @@ -1034,11 +1032,11 @@ def mock_retrieve_side_effect(*args, **kwargs):
namespace = kwargs.get("namespace", "")
if "preferences" in namespace:
return [
{"content": "User prefers morning meetings", "relevanceScore": 0.8},
{"content": "User likes coffee", "relevanceScore": 0.2}, # Below threshold
{"content": "User prefers morning meetings", "score": 0.8},
{"content": "User likes coffee", "score": 0.2}, # Below threshold
]
else: # context namespace
return [{"content": "Previous conversation about project", "relevanceScore": 0.6}]
return [{"content": "Previous conversation about project", "score": 0.6}]

mock_memory_client.retrieve_memories.side_effect = mock_retrieve_side_effect

Expand Down Expand Up @@ -1086,9 +1084,7 @@ def test_initialize_basic_functionality(self, session_manager, test_agent):

def test_initialize_with_ltm_integration(self, agentcore_config_with_retrieval, mock_memory_client, test_agent):
"""Test initialize functionality with LTM integration enabled."""
mock_memory_client.retrieve_memories.return_value = [
{"content": "User prefers morning meetings", "relevanceScore": 0.8}
]
mock_memory_client.retrieve_memories.return_value = [{"content": "User prefers morning meetings", "score": 0.8}]

with patch(
"bedrock_agentcore.memory.integrations.strands.session_manager.MemoryClient",
Expand Down Expand Up @@ -1247,10 +1243,10 @@ def test_retrieve_customer_context_filters_by_relevance_score(self, mock_memory_
"""Test retrieve_customer_context filters memories below relevance_score threshold."""
# Return memories with varying relevance scores
mock_memory_client.retrieve_memories.return_value = [
{"content": {"text": "Low relevance 1"}, "relevanceScore": 0.1},
{"content": {"text": "Low relevance 2"}, "relevanceScore": 0.4},
{"content": {"text": "High relevance 1"}, "relevanceScore": 0.6},
{"content": {"text": "High relevance 2"}, "relevanceScore": 0.9},
{"content": {"text": "Low relevance 1"}, "score": 0.1},
{"content": {"text": "Low relevance 2"}, "score": 0.4},
{"content": {"text": "High relevance 1"}, "score": 0.6},
{"content": {"text": "High relevance 2"}, "score": 0.9},
]

# Config with single namespace and relevance_score threshold of 0.5
Expand Down Expand Up @@ -2482,8 +2478,8 @@ def test_retrieve_customer_context_does_not_append_assistant_message(
):
"""Test retrieved memory is injected into the user message, not as a new assistant message."""
mock_memory_client.retrieve_memories.return_value = [
{"content": {"text": "User prefers dark mode"}},
{"content": {"text": "User likes sushi"}},
{"content": {"text": "User prefers dark mode"}, "score": 0.8},
{"content": {"text": "User likes sushi"}, "score": 0.8},
]

with patch(
Expand Down Expand Up @@ -2524,7 +2520,7 @@ def test_retrieve_customer_context_no_assistant_message_multi_turn(
):
"""Test memory injection keeps last message as user in a multi-turn conversation."""
mock_memory_client.retrieve_memories.return_value = [
{"content": {"text": "User likes sushi"}},
{"content": {"text": "User likes sushi"}, "score": 0.8},
]

with patch(
Expand Down Expand Up @@ -2575,7 +2571,7 @@ def test_retrieve_customer_context_custom_context_tag(self, mock_memory_client):
)

mock_memory_client.retrieve_memories.return_value = [
{"content": {"text": "User likes sushi"}},
{"content": {"text": "User likes sushi"}, "score": 0.8},
]

with patch(
Expand Down Expand Up @@ -2615,7 +2611,7 @@ def test_retrieve_customer_context_default_context_tag(self, mock_memory_client)
)

mock_memory_client.retrieve_memories.return_value = [
{"content": {"text": "User likes sushi"}},
{"content": {"text": "User likes sushi"}, "score": 0.8},
]

with patch(
Expand Down Expand Up @@ -3574,7 +3570,7 @@ def test_retrieve_customer_context_works(self, mock_memory_client):
)
manager = _create_session_manager(config, mock_memory_client)
mock_memory_client.retrieve_memories.return_value = [
{"content": {"text": "remembered fact"}},
{"content": {"text": "remembered fact"}, "score": 0.8},
]

mock_agent = Mock()
Expand Down
Loading