memory-manager

awaaate's avatarfrom awaaate

Advanced memory management techniques for the OpenCode memory system

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 3, 2026⬇️1downloads

When & Why to Use This Skill

This Claude skill provides a comprehensive framework for managing the OpenCode persistent memory system. It features advanced techniques for smart pruning, structured knowledge extraction, and token optimization, ensuring that AI agents maintain high performance and relevant context over long-term operations without hitting token limits or suffering from data corruption.

Use Cases

  • Context Optimization: Using value-based retention to prune low-priority session data while preserving critical code changes and problem-solving insights.
  • Knowledge Base Building: Automatically extracting key learnings, decisions, and discovered code patterns from session histories into a structured JSON knowledge base.
  • System Maintenance: Running automated health checks and JSON validation to prevent memory corruption and resolve race conditions in multi-agent environments.
  • Token Lifecycle Management: Monitoring and managing token usage through archiving strategies and deduplication to keep agent memory within critical thresholds.
namememory-manager
descriptionAdvanced memory management techniques for the OpenCode memory system
licenseMIT

Memory Manager Skill

Expert techniques for managing the OpenCode persistent memory system.

Quick Reference

Before any memory operation, consider:

1. What memory store am I modifying? (state, knowledge, working, tasks) 2. Is this change reversible? (backup if major) 3. Will this affect other agents? (check locks) 4. Is the file valid JSON? (validate after edit)

MEMORY ARCHITECTURE

Core Files

File Purpose Format Update Frequency
memory/state.json System state, session count JSON Every session
memory/tasks.json Persistent task tracking JSON On task changes
memory/knowledge-base.json Extracted insights JSON On session end
memory/working.md Current context Markdown Continuous
memory/agent-registry.json Active agents JSON Heartbeat (30s)
memory/message-bus.jsonl Agent messages JSONL On message
memory/sessions.jsonl Session history JSONL On session end

Tools

memory_status()           - Get current state and metrics
memory_search(query)      - Search across memory stores
memory_update(action, data) - Update state/achievements

SMART PRUNING STRATEGIES

Value-Based Retention (What to Keep)

Priority 1 (Always keep):
  - Sessions with code_created > 0
  - Sessions with problems_solved > 0
  - Sessions with quality_score >= 7

Priority 2 (Keep if < 7 days):
  - Sessions with message_count > 20
  - Sessions with key_insights.length > 0

Priority 3 (Prune after 3 days):
  - Heartbeat-only sessions
  - Sessions with error status

Pruning Commands

# Analyze what would be pruned
bun tools/knowledge-deduplicator.ts analyze

# Archive old sessions (> 7 days)
bun tools/working-memory-manager.ts archive

# Clean message bus (remove old heartbeats)
bun tools/message-bus-manager.ts cleanup --days 3

Message Bus Cleanup

# Keep:
- task_complete messages (30 days)
- request_help messages (7 days)  
- broadcast announcements (7 days)

# Remove:
- Heartbeat messages (> 24 hours)
- Read direct messages (> 7 days)

KNOWLEDGE EXTRACTION

Extraction Process

# Extract from current session
bun tools/knowledge-extractor.ts extract

# Extract from specific session
bun tools/knowledge-extractor.ts extract --session <session-id>

# Rebuild entire knowledge base
bun tools/knowledge-extractor.ts rebuild

What Gets Extracted

- Key insights and learnings
- Decisions made and rationale
- Problems solved and solutions
- Code patterns discovered
- Tool usage patterns

MEMORY OPTIMIZATION

Deduplication

# Analyze duplicates in knowledge base
bun tools/knowledge-deduplicator.ts analyze

# Remove duplicates (dry run first!)
bun tools/knowledge-deduplicator.ts dedupe --dry-run
bun tools/knowledge-deduplicator.ts dedupe

Token Management

Thresholds:
- Normal: < 100k tokens
- Warning: 100k-150k tokens (suggest pruning)
- Critical: > 150k tokens (require pruning)

Actions:
- Check with: memory_status(include_metrics=true)
- Archive old working memory: bun tools/working-memory-manager.ts archive
- Prune knowledge base: bun tools/knowledge-deduplicator.ts dedupe

VALIDATION

JSON Validation

# Validate memory files
bun -e "JSON.parse(require('fs').readFileSync('memory/state.json'))"
bun -e "JSON.parse(require('fs').readFileSync('memory/tasks.json'))"
bun -e "JSON.parse(require('fs').readFileSync('memory/knowledge-base.json'))"

Integrity Checks

# Full health check
bun tools/cli.ts memory health

# Check for orphaned tasks
bun tools/task-manager.ts orphans

TROUBLESHOOTING

Common Issues

Corrupted JSON

# Check syntax errors
bun -e "JSON.parse(require('fs').readFileSync('memory/state.json'))" 2>&1

# Restore from backup
cp memory/backups/state-latest.json memory/state.json

Race Conditions in Multi-Agent

  • Use task_claim for atomic operations
  • Check file locks before major updates
  • Monitor message-bus for conflicts

Growing Memory

# Check file sizes
ls -lh memory/*.json

# Archive old data
bun tools/working-memory-manager.ts archive

BEST PRACTICES

Regular Maintenance Schedule

Daily:
  - Check memory_status() for issues
  - Review quality_report() trends

Weekly:
  - Run knowledge deduplication
  - Archive old working memory
  - Clean message bus

Monthly:
  - Full backup of all memory files
  - Review and prune knowledge base
  - Performance analysis

Backup Strategy

# Create dated backup
mkdir -p memory/backups
cp memory/state.json memory/backups/state-$(date +%Y%m%d).json
cp memory/knowledge-base.json memory/backups/kb-$(date +%Y%m%d).json

Remember: The memory system is the brain of the AI. Keep it healthy!