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-systems

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.0 KB
---
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

Overview

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.

How this skill works

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 to use it

  • Building agents that must remember user-specific facts across sessions
  • Tracking entities and relationships over time (entity memory)
  • Implementing temporal queries or auditing historical state
  • Designing retrieval systems that require relationship reasoning
  • Prototyping simple persistence without infrastructure

Best practices

  • Match architecture to query needs: use graphs for relationships and vectors for semantic search
  • Attach rich metadata (timestamps, source, confidence) to every stored fact
  • Implement temporal validity windows to avoid stale or conflicting facts
  • Consolidate periodically: merge duplicates, expire outdated facts, and rebuild indexes
  • Design graceful failure modes and plan backups, recovery, and privacy controls

Example use cases

  • A customer support agent that remembers prior tickets, purchases, and contact details across sessions
  • A CRM that tracks entity properties and relationships (customers, orders, products) with time validity
  • A recommender that combines vector similarity with graph connections to answer “customers who bought X also bought Y”
  • An audit log where historical addresses or roles must be queried at a specific point in time
  • A lightweight prototype using filesystem memory before migrating to a graph or vector store

FAQ

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.