prune_memories
Permanently delete old, low-importance, or rarely accessed memories from AI systems to manage storage and maintain relevant data using customizable criteria.
Instructions
Permanently delete memories based on criteria
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | No |
Implementation Reference
- src/memory-manager.js:813-855 (handler)The main implementation of pruneMemories method that permanently deletes memories based on criteria (maxAge, minImportance, maxAccessCount, status). Updates memory status to 'deleted' and records deletion events.
async pruneMemories(criteria = {}) { try { const { maxAge = 1095, // 3 years minImportance = 0.1, maxAccessCount = 2, status = 'archived' } = criteria; const cutoffDate = new Date(Date.now() - maxAge * 24 * 60 * 60 * 1000); const prunedMemories = await this.db .update(schema.memories) .set({ status: 'deleted' }) .where( and( eq(schema.memories.status, status), lt(schema.memories.createdAt, cutoffDate), lt(schema.memories.importance, minImportance), lte(schema.memories.accessCount, maxAccessCount) ) ) .returning({ id: schema.memories.id, content: schema.memories.content, type: schema.memories.type }); // Record deletion events for (const memory of prunedMemories) { await this.db.insert(schema.memoryChanges).values({ memoryId: memory.id, changeType: 'deletion', newValue: { reason: 'Pruned based on criteria', criteria } }); } return prunedMemories; } catch (error) { console.warn('Memory pruning failed:', error.message); return []; } } - mcp.js:641-643 (handler)The MCP request handler that routes prune_memories tool calls to memoryManager.pruneMemories with the provided criteria.
case "prune_memories": const prunedMemories = await memoryManager.pruneMemories(args.criteria || {}); return { content: [{ type: "text", text: JSON.stringify(prunedMemories, null, 2) }] }; - src/tools/memory-tools.js:314-345 (schema)Schema definition for prune_memories tool as part of the exported memoryTools array, defining input properties (max_age, min_importance, max_access_count, status).
name: "prune_memories", description: "Permanently delete memories based on criteria", inputSchema: { type: "object", properties: { criteria: { type: "object", properties: { max_age: { type: "integer", description: "Maximum age in days", default: 1095 }, min_importance: { type: "number", description: "Minimum importance threshold", default: 0.1 }, max_access_count: { type: "integer", description: "Maximum access count", default: 2 }, status: { type: "string", description: "Memory status to prune", default: "archived" } } } } } - mcp.js:340-371 (registration)Tool registration in the MCP server's tools list, registering prune_memories with its description and input schema for tool discovery.
name: "prune_memories", description: "Permanently delete memories based on criteria", inputSchema: { type: "object", properties: { criteria: { type: "object", properties: { max_age: { type: "integer", description: "Maximum age in days", default: 1095 }, min_importance: { type: "number", description: "Minimum importance threshold", default: 0.1 }, max_access_count: { type: "integer", description: "Maximum access count", default: 2 }, status: { type: "string", description: "Memory status to prune", default: "archived" } } } } }