memory-systems
0
总安装量
6
周安装量
安装命令
npx skills add https://github.com/eyadsibai/ltk --skill memory-systems
Agent 安装分布
gemini-cli
5
antigravity
5
claude-code
5
cursor
4
windsurf
4
Skill 文档
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
# 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
# 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
# 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
# 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
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:
- Identify outdated facts
- Merge related facts
- Update validity periods
- Archive/delete obsolete facts
- 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
- Match architecture to query requirements
- Implement progressive disclosure for access
- Use temporal validity to prevent conflicts
- Consolidate periodically
- Design for retrieval failures gracefully
- Consider privacy implications
- Implement backup and recovery
- Monitor growth and performance