Files
semantica/benchmarks/context/test_memory_storage.py

41 lines
1.1 KiB
Python

import pytest
from semantica.context.agent_memory import AgentMemory
@pytest.mark.benchmark(group="memory_io")
def test_memory_storage_overhead(benchmark, mock_vector_store):
"""
Benchmarks storing a memory item.
"""
memory = AgentMemory(vector_store=mock_vector_store)
content = "This is nothing burger for benchmarking this memory thingy."
metadata = {"type": "conversation", "user": "u_1"}
def run():
return memory.store(content, metadata=metadata)
benchmark.pedantic(run, iterations=10, rounds=10)
@pytest.mark.benchmark(group="memory_io")
def test_short_term_pruning(benchmark, mock_vector_store):
"""
Benchmarks the pruning logic when short-term memory
limit is hit.
"""
def setup_overfilled_memory():
memory = AgentMemory(vector_store=mock_vector_store, short_term_limit=50)
# Pre-fill
for i in range(55):
memory.store(f"filler memory {i}")
return (memory,), {}
def run_prune(mem_instance):
mem_instance.store("Trigger Pruning")
benchmark.pedantic(
target=run_prune, setup=setup_overfilled_memory, iterations=1, rounds=20
)