archive_old_memories
Automatically archive older, less important memories using age and importance thresholds to optimize memory management for AI systems with persistent context.
Instructions
Archive old memories based on age and importance criteria
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days_old | No | Minimum age in days for archival | |
| importance_threshold | No | Maximum importance for archival |
Implementation Reference
- src/memory-manager.js:776-811 (handler)Core implementation of the archiveOldMemories method in MemoryManager class. Updates qualifying active memories to 'archived' status based on age, importance, and access count criteria, records change events, and returns the list of archived memories.async archiveOldMemories(daysOld = 365, importanceThreshold = 0.3) { try { const cutoffDate = new Date(Date.now() - daysOld * 24 * 60 * 60 * 1000); const archivedMemories = await this.db .update(schema.memories) .set({ status: 'archived' }) .where( and( eq(schema.memories.status, 'active'), lt(schema.memories.createdAt, cutoffDate), lt(schema.memories.importance, importanceThreshold), lt(schema.memories.accessCount, 5) ) ) .returning({ id: schema.memories.id, content: schema.memories.content, type: schema.memories.type }); // Record archival events for (const memory of archivedMemories) { await this.db.insert(schema.memoryChanges).values({ memoryId: memory.id, changeType: 'archival', newValue: { reason: 'Archived due to age and low importance' } }); } return archivedMemories; } catch (error) { console.warn('Memory archival failed:', error.message); return []; } }
- mcp.js:634-640 (handler)MCP server tool execution handler for 'archive_old_memories'. Parses input arguments with defaults and delegates to MemoryManager.archiveOldMemories, formats response as MCP content.case "archive_old_memories": const archivedMemories = await memoryManager.archiveOldMemories( args.days_old || 365, args.importance_threshold || 0.3 ); return { content: [{ type: "text", text: JSON.stringify(archivedMemories, null, 2) }] };
- mcp.js:320-338 (schema)Tool schema definition returned by ListToolsRequestSchema handler, specifying input parameters and defaults for the archive_old_memories tool.{ name: "archive_old_memories", description: "Archive old memories based on age and importance criteria", inputSchema: { type: "object", properties: { days_old: { type: "integer", description: "Minimum age in days for archival", default: 365 }, importance_threshold: { type: "number", description: "Maximum importance for archival", default: 0.3 } } } },
- src/tools/memory-tools.js:294-311 (schema)Identical tool schema definition in memory-tools.js, possibly for reference or alternative usage.{ name: "archive_old_memories", description: "Archive old memories based on age and importance criteria", inputSchema: { type: "object", properties: { days_old: { type: "integer", description: "Minimum age in days for archival", default: 365 }, importance_threshold: { type: "number", description: "Maximum importance for archival", default: 0.3 } } }