-
Notifications
You must be signed in to change notification settings - Fork 0
Feature: Memory summarization and compression for long-term retention #7
Open
Description
Problem
Agents accumulate thousands of memories over time, but retrieval degrades and storage costs grow. Important memories get lost in noise.
Proposed Solution: Intelligent Memory Compression
const memory = new Engram({
compression: {
enabled: true,
strategy: "importance-based",
schedule: "daily",
maxMemoryAge: "30d" // Compress memories older than 30 days
}
})
// Before compression
// [100 detailed messages about project discussion]
// After compression
// "Discussed Project X timeline, key decisions: deadline extended to March, need UX review"
Compression Strategies
| Strategy | Description | Use Case |
|---|---|---|
| importance-based | Keep high-importance, summarize rest | General use |
| temporal | Merge consecutive similar memories | Event streams |
| topic-based | Cluster and summarize by topic | Research agents |
| llm-summarize | Use LLM for semantic compression | High-fidelity |
API
// Manual compression trigger
await memory.compress({ strategy: "importance-based" })
// Get compression statistics
const stats = await memory.getCompressionStats()
console.log(stats)
// {
// originalCount: 5000,
// compressedCount: 800,
// spaceSaved: "75%",
// summaryQuality: 0.92
// }
Searchable Compressed Memories
// Compressed summaries are still searchable
const results = await memory.recall("project timeline decisions")
// Returns: compressed summary + link to original if needed
This solves the memory bloat problem for persistent agents.
Metadata
Metadata
Assignees
Labels
No labels