archive_old_memories
Archive AI memories by age and importance criteria to manage persistent memory storage in the AGI MCP Server.
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)The core handler function that executes the archival logic: updates active memories older than specified days with low importance (< threshold) and low access count (<5) to 'archived' status, records changes, and returns the 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 []; } }
- src/tools/memory-tools.js:294-311 (schema)Input schema definition for the archive_old_memories tool, specifying parameters days_old and importance_threshold with defaults.{ 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 } } }
- mcp.js:634-639 (registration)Tool handler registration in the MCP server's switch statement: maps tool call to memoryManager.archiveOldMemories with argument defaults and returns JSON response.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:321-337 (schema)Tool schema registration in the MCP server's ListTools response, identical to the one in memory-tools.js.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 } } }