Agent skill
memory-manager
Manage elizaOS agent memory, context windows, and conversation history. Triggers on "manage memory", "optimize context", or "handle agent memory"
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/productivity/memory-manager
SKILL.md
Memory Manager Skill
Optimize agent memory usage, implement pruning strategies, and manage conversation context effectively.
Capabilities
- 🧠 Memory pruning and optimization
- 📊 Context window management
- 🗂️ Conversation history archiving
- 🎯 Important memory consolidation
- 🔄 Memory decay implementation
- 📈 Memory usage monitoring
Memory Types
Short-term Memory
- Current conversation context
- Working memory (max 50 items default)
- Cleared per session
Long-term Memory
- Important facts and information
- Persistent across sessions
- Decay modeling over time
Knowledge
- Static facts from configuration
- Document-based knowledge
- Dynamically learned information
Memory Operations
// Create memory
await runtime.createMemory({
entityId: userId,
roomId: conversationId,
content: {
text: 'Important information',
metadata: { importance: 'high' }
},
embedding: await generateEmbedding(text)
});
// Retrieve memories
const memories = await runtime.getMemories({
roomId: conversationId,
limit: 10,
unique: true
});
// Search semantically
const results = await runtime.searchMemories(
'query text',
{
roomId: conversationId,
limit: 5,
minScore: 0.7
}
);
// Update memory
await runtime.updateMemory({
id: memoryId,
content: { ...updated content },
metadata: { lastAccessed: Date.now() }
});
Pruning Strategies
Time-based Pruning
async function pruneOldMemories(
runtime: IAgentRuntime,
daysToKeep: number = 30
): Promise<number> {
const cutoffDate = Date.now() - (daysToKeep * 24 * 60 * 60 * 1000);
const oldMemories = await runtime.getMemories({
createdBefore: cutoffDate,
importance: 'low'
});
for (const memory of oldMemories) {
await runtime.deleteMemory(memory.id);
}
return oldMemories.length;
}
Size-based Pruning
async function pruneLargeMemories(
runtime: IAgentRuntime,
maxSize: number = 1000
): Promise<void> {
const memories = await runtime.getMemories({ limit: 10000 });
if (memories.length > maxSize) {
// Keep most important and recent
const toKeep = rankMemoriesByImportance(memories).slice(0, maxSize);
const toDelete = memories.filter(m => !toKeep.includes(m));
for (const memory of toDelete) {
await runtime.deleteMemory(memory.id);
}
}
}
Best Practices
- Set appropriate
conversationLengthlimits - Implement importance scoring
- Use memory decay for temporal relevance
- Archive important conversations
- Monitor memory growth
- Prune regularly
- Use embeddings for semantic search
- Cache frequently accessed memories
- Batch memory operations
- Index memories properly
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?