Memory Compress
Never let your agent forget what matters. Compress verbose daily logs into structured summaries — 4-8x compression, zero information loss. Inspired by classi...
翎麟
@linglin6
What This Skill Does
Compresses verbose daily agent logs into structured summaries with 4-8x compression ratio using keyword extraction and fallback methods, preserving key events, lessons, decisions, and todos. Requires no API keys, vector databases, or external dependencies.
Replaces manual log pruning or generic summarization tools by applying a classical Chinese compression methodology that strips redundancy, keeps turning points, and lets structure carry meaning.
When to Use It
- Compress a single day's raw agent log into a structured summary
- Append compressed daily summaries to a long-term MEMORY.md file
- Extract key events and decisions from multi-day markdown logs
- Reduce agent memory file size from thousands of words to hundreds without losing important information
- Process logs with time-based headers that lack explicit keyword markers
Install
$ openclaw skills install @linglin6/memory-compressMemory Compress
Your agent's memory is drowning in daily logs. This fixes it.
I built this because my agent's MEMORY.md hit 15,000 words and daily logs kept piling up at 2,500 words/day. Needed a way to compress without losing the important stuff.
The key insight came from classical Chinese writing — ancient scholars compressed entire dynasties into single sentences. Same principle here:
- Strip redundancy — mention it once, not three times
- Keep only turning points — what changed, not what continued
- Let structure carry meaning — bullet hierarchy > verbose paragraphs
- Drop the process, keep the result — "failed 3 times, then X worked" > 3 failure descriptions
Result: 4-8x compression ratio, zero loss on key events. Zero dependencies.
Before: 2,500 words of raw daily log
After: 400 words of structured insight
Architecture
┌────────────────────────────────────────────────┐
│ THREE-LAYER MEMORY SYSTEM │
├────────────────────────────────────────────────┤
│ │
│ Layer 1: IDENTITY (SOUL.md) │
│ Ultra-compressed, stable │
│ Who you are. What matters. │
│ │
│ Layer 2: CURATED MEMORY (MEMORY.md) ◄──┐ │
│ 4:1 compressed summaries │ │
│ Key events + lessons + todos │ │
│ │ │
│ Layer 3: RAW LOGS (memory/YYYY-MM-DD.md) │ │
│ Full detail, everything ───┘ │
│ ~2,500 words/day │
│ │
│ memory-compress: Layer 3 ──► Layer 2 │
└────────────────────────────────────────────────┘
Quick Start
# Compress today's log
node scripts/memory-compress.js memory/2026-03-14.md
# Specify output
node scripts/memory-compress.js memory/2026-03-14.md /tmp/compressed.md
# Append to long-term memory
node scripts/memory-compress.js memory/2026-03-14.md /tmp/today.md
cat /tmp/today.md >> MEMORY.md
How It Works
Smart Hybrid Extraction
Most memory tools choke on unstructured logs. This one doesn't.
Step 1 — Keyword Matching: Scans headers for 40+ patterns across Chinese & English:
- Events: 重大进展, breakthrough, milestone, decision…
- Lessons: 教训, 反思, insight, takeaway…
- Growth: 进化, evolution, improvement…
- Action items: 待办, 🔴, 🟡, todo, next step…
Step 2 — Fallback Extraction: When no keywords match (e.g. time-based headers like ## 08:44 Standup), automatically extracts all sections with top items. No data loss, ever.
Step 3 — Hybrid Mode: For multi-day files, matched sections use keyword extraction while unmatched sections use fallback. Both coexist. Nothing gets dropped.
The Classical Chinese Compression Philosophy
This isn't just "summarize shorter." It's a deliberate compression methodology:
| Principle | What it means | Example |
|---|---|---|
| 去重复 (Strip redundancy) | Mentioned once = enough | Don't repeat "WebSocket reconnection" across 3 sections |
| 留转折 (Keep turning points) | Only what changed | "Switched from nginx to direct Node.js WSS" > 5 paragraphs of debugging |
| 去过程 (Drop process) | Result > journey | "3 failures → fixed with X" > 3 failure descriptions |
| 留白 (Leave blanks) | Let reader infer | Bullet hierarchy implies relationship |
| 形式即内容 (Form is content) | Structure carries meaning | Nested lists > flat paragraphs |
Output Format
## 2026-03-14 Key Experiences
### Key Events
- **Event title**
- Detail 1
- Detail 2
### Core Lessons
- Lesson learned
### Pending/Remaining
- 🔴 Urgent items
- 🟡 Important items
Batch Compression
# Compress last 7 days
for file in memory/2026-03-{08..14}.md; do
[ -f "$file" ] && node scripts/memory-compress.js "$file" "/tmp/$(basename $file)"
done
Heartbeat Integration
Add to your maintenance cycle:
## Memory Maintenance (every 2-3 days)
1. Run: node scripts/memory-compress.js memory/YYYY-MM-DD.md /tmp/compressed.md
2. Review for accuracy
3. Append: cat /tmp/compressed.md >> MEMORY.md
4. Timestamp: date +%s > .last-memory-maintenance
Edge Cases
| Scenario | Behavior |
|---|---|
| Empty file | Graceful skip |
| BOM-encoded | Auto-detected, stripped |
| Non-UTF-8 | Warning + continues |
| Missing output dir | Auto-created |
| No markdown structure | Friendly message |
| Multi-day concatenated | Hybrid strategy, all days preserved |
CLI
node scripts/memory-compress.js <log-file> [output-file]
node scripts/memory-compress.js --help
Top skills in this category
Self-Improving + Proactive Agent
@ivangdavilaSelf-reflection + Self-criticism + Self-learning + Self-organizing memory. Agent evaluates its own work, catches mistakes, and improves permanently. Use when...
ontology
@oswalpalashTyped knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linkin...
Humanizer
@biostartechnologyRemove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Obsidian
@steipeteWork with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
YouTube Watcher
@michaelgatharaFetch and read transcripts from YouTube videos. Use when you need to summarize a video, answer questions about its content, or extract information from it.