Skip to content

Commit b9e6aff

Browse files
committed
Refactor memory ID generation and ensure memory integrity
This commit updates the `MemoryAgent` class to generate memory IDs using a combination of agent ID, step number, and timestamp, enhancing clarity and uniqueness. Additionally, the `SimilaritySearchStrategy` class is modified to ensure that each memory entry has an ID assigned, improving data integrity. The test configurations are also adjusted to reflect these changes, ensuring consistency across the codebase.
1 parent 2b4a36e commit b9e6aff

4 files changed

Lines changed: 12 additions & 7 deletions

File tree

memory/agent_memory.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,10 +221,9 @@ def _create_memory_entry(
221221
Returns:
222222
Formatted memory entry
223223
"""
224-
# Generate unique memory ID with type prefix and UUID
224+
# Generate memory ID using agent_id, step number and timestamp
225225
timestamp = int(time.time())
226-
unique_id = uuid.uuid4().hex[:8] # Use first 8 chars of UUID for uniqueness
227-
memory_id = f"{memory_type}_{self.agent_id}_{step_number}_{unique_id}"
226+
memory_id = f"{self.agent_id}-{step_number}-{timestamp}"
228227

229228
# Generate embeddings if available
230229
embeddings = {}

memory/search/strategies/similarity.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,10 @@ def search(
224224
)
225225
continue
226226

227+
# Ensure memory has required fields
228+
if "id" not in memory:
229+
memory["id"] = memory_id
230+
227231
# Attach similarity score and tier information
228232
if "metadata" not in memory:
229233
memory["metadata"] = {}

tests/converter/test_config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import pytest
66
from converter.config import ConverterConfig
7-
from converter.tiering import StepBasedTieringStrategy, ImportanceAwareTieringStrategy
7+
from converter.tiering import SimpleTieringStrategy, StepBasedTieringStrategy, ImportanceAwareTieringStrategy
88
from converter.mapping import MemoryTypeMapper
99

1010
def test_default_config():
@@ -17,8 +17,8 @@ def test_default_config():
1717
assert config.show_progress is True
1818
assert config.import_mode == "full"
1919
assert config.selective_agents is None
20-
assert config.tiering_strategy_type == "step_based"
21-
assert isinstance(config.tiering_strategy, StepBasedTieringStrategy)
20+
assert config.tiering_strategy_type == "simple"
21+
assert isinstance(config.tiering_strategy, SimpleTieringStrategy)
2222
assert isinstance(config.memory_type_mapper, MemoryTypeMapper)
2323
assert config.memory_type_mapping == {
2424
'AgentStateModel': 'state',

tests/test_memory_agent.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,9 @@ def memory_agent(
9898
agent_id = "test-agent"
9999
config = MemoryConfig()
100100
config.autoencoder_config.use_neural_embeddings = True
101-
config.text_model_name = "sentence-transformers/all-MiniLM-L6-v2" # Use a real model
101+
config.text_model_name = (
102+
"sentence-transformers/all-MiniLM-L6-v2" # Use a real model
103+
)
102104
config.ltm_config.db_path = "test_memory.db" # Set a valid db path
103105

104106
with mock.patch("memory.agent_memory.RedisSTMStore") as mock_stm, mock.patch(

0 commit comments

Comments
 (0)