home / skills / eyadsibai / ltk / memory-systems
This skill helps you design and implement persistent memory systems for agents, enabling cross-session knowledge, entity tracking, and temporal queries.
npx playbooks add skill eyadsibai/ltk --skill memory-systemsReview the files below or copy the command above to add this skill to your agents.
---
name: memory-systems
description: Use when implementing agent memory, persisting state across sessions, building knowledge graphs, tracking entities, or asking about "agent memory", "knowledge graph", "entity memory", "vector stores", "temporal knowledge", "cross-session persistence"
version: 1.0.0
---
# Memory System Design
Memory provides persistence that allows agents to maintain continuity across sessions and reason over accumulated knowledge.
## Memory Architecture Spectrum
| Layer | Latency | Persistence | Use Case |
|-------|---------|-------------|----------|
| Working Memory | Zero | Volatile | Context window |
| Short-Term | Low | Session | Session state |
| Long-Term | Medium | Persistent | Cross-session knowledge |
| Entity Memory | Medium | Persistent | Entity tracking |
| Temporal KG | Medium | Persistent | Time-aware queries |
## Memory System Performance
| System | DMR Accuracy | Retrieval Latency |
|--------|--------------|-------------------|
| Zep (Temporal KG) | 94.8% | 2.58s |
| MemGPT | 93.4% | Variable |
| GraphRAG | 75-85% | Variable |
| Vector RAG | 60-70% | Fast |
| Recursive Summary | 35.3% | Low |
## Why Vector Stores Fall Short
Vector stores lose relationship information:
- Can retrieve "Customer X purchased Product Y"
- Cannot answer "What did customers who bought Y also buy?"
- Cannot distinguish current vs outdated facts
## Memory Implementation Patterns
### Pattern 1: File-System-as-Memory
```python
# Simple, no infrastructure needed
def store_fact(entity_id, fact):
path = f"memory/{entity_id}.json"
facts = load_json(path, default=[])
facts.append({"fact": fact, "timestamp": now()})
save_json(path, facts)
```
### Pattern 2: Vector RAG with Metadata
```python
# Embed facts with rich metadata
vector_store.add(
embedding=embed(fact),
metadata={
"entity_id": entity_id,
"valid_from": now(),
"source": "conversation",
"confidence": 0.95
}
)
```
### Pattern 3: Knowledge Graph
```python
# Preserve relationships
graph.create_relationship(
from_entity="Customer_123",
relationship="PURCHASED",
to_entity="Product_456",
properties={"date": "2024-01-15", "quantity": 2}
)
```
### Pattern 4: Temporal Knowledge Graph
```python
# Time-travel queries
def query_address_at_time(user_id, query_time):
return graph.query("""
MATCH (user)-[r:LIVES_AT]->(address)
WHERE user.id = $user_id
AND r.valid_from <= $query_time
AND (r.valid_until IS NULL OR r.valid_until > $query_time)
RETURN address
""", {"user_id": user_id, "query_time": query_time})
```
## Entity Memory
Track entities consistently across conversations:
- **Entity Identity**: "John Doe" in one conversation = same person in another
- **Entity Properties**: Facts discovered about entities over time
- **Entity Relationships**: Relationships discovered between entities
```python
def remember_entity(entity_id, properties):
memory.store({
"type": "entity",
"id": entity_id,
"properties": properties,
"last_updated": now()
})
```
## Memory Consolidation
Trigger consolidation when:
- Memory accumulates significantly
- Retrieval returns too many outdated results
- Periodically on schedule
- Explicit request
Process:
1. Identify outdated facts
2. Merge related facts
3. Update validity periods
4. Archive/delete obsolete facts
5. Rebuild indexes
## Choosing Memory Architecture
| Requirement | Architecture |
|-------------|--------------|
| Simple persistence | File-system memory |
| Semantic search | Vector RAG with metadata |
| Relationship reasoning | Knowledge graph |
| Temporal validity | Temporal knowledge graph |
## Best Practices
1. Match architecture to query requirements
2. Implement progressive disclosure for access
3. Use temporal validity to prevent conflicts
4. Consolidate periodically
5. Design for retrieval failures gracefully
6. Consider privacy implications
7. Implement backup and recovery
8. Monitor growth and performance
This skill helps design and implement agent memory systems for persistent, cross-session knowledge. It explains architecture options from simple file-based storage to temporal knowledge graphs and gives concrete implementation patterns for entity tracking, consolidation, and retrieval.
The skill inspects memory requirements and maps them to appropriate architectures: file-system for simple persistence, vector stores for semantic search, knowledge graphs for relationships, and temporal KGs for time-aware queries. It provides code patterns for storing facts, embedding with metadata, creating graph relationships, and querying historical state. It also covers consolidation triggers and processes to keep memory accurate and performant.
When should I pick a vector store vs a knowledge graph?
Choose vector stores for fast semantic retrieval of unstructured facts; choose knowledge graphs when relationship reasoning or precise links between entities matter.
How do I prevent stale facts from polluting results?
Use temporal validity metadata, periodic consolidation to expire or merge facts, and confidence/source filters during retrieval.
Is a simple file-system memory ever appropriate?
Yes — for prototypes or low-scale use cases it offers zero-infrastructure persistence and is easy to inspect and backup.