Delete memory
Delete a memory by its ID. This operation is permanent and cannot be undone.
Method
client.memories.delete(id: string): Promise<void>
Parameters
id
(string, required): The unique identifier of the memory to delete
Basic Example
await client.memories.delete("REPLACE_THIS_MEMORY_ID");
console.log('Memory deleted successfully');
With Error Handling
try {
await client.memories.delete("REPLACE_THIS_MEMORY_ID");
console.log('Memory deleted successfully');
} catch (error) {
if (error.message.includes('404')) {
console.log('Memory not found');
} else {
console.error('Failed to delete memory:', error.message);
}
}
Important Notes
- Permanent Deletion: Once deleted, a memory cannot be recovered
- Graph Cleanup: Associated entities and relationships in the graph database are not automatically removed
- Cascade Effects: Deleting a memory does not affect other memories or relationships
- Idempotent: Attempting to delete a non-existent memory returns a 404 error
Bulk Deletion
Delete multiple memories:
const memoryIds = ["memory_id_1", 'memory_id_2', 'memory_id_3'];
for (const id of memoryIds) {
try {
await client.memories.delete(id);
console.log(`Deleted memory: ${id}`);
} catch (error) {
console.error(`Failed to delete ${id}:`, error.message);
}
}
Conditional Deletion
Delete memories based on criteria:
// Get memories to delete
const response = await client.memories.list({
layerId: "REPLACE_THIS_LAYER_ID"
});
// Delete old memories (example: older than 30 days)
const thirtyDaysAgo = new Date();
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
for (const memory of response.data.memories) {
if (memory.createdAt < thirtyDaysAgo) {
try {
await client.memories.delete(memory.id);
console.log(`Deleted old memory: ${memory.id}`);
} catch (error) {
console.error(`Failed to delete ${memory.id}:`, error.message);
}
}
}
Best Practices
Safe Deletion Pattern
Always verify before deletion:
async function safeDeleteMemory(id: string) {
try {
// Verify the memory exists first
const memory = await client.memories.get(id);
// Optional: Check if it's safe to delete
if (memory.metadata?.protected === true) {
throw new Error('Cannot delete protected memory');
}
// Proceed with deletion
await client.memories.delete(id);
console.log(`Successfully deleted memory: ${id}`);
} catch (error) {
if (error.message.includes('404')) {
console.log('Memory does not exist');
} else {
console.error('Deletion failed:', error.message);
throw error;
}
}
}
Error Handling Best Practice
async function deleteMemory(memoryId: string) {
try {
await client.memories.delete(memoryId);
return { success: true, message: 'Memory deleted successfully' };
} catch (error) {
console.error('Delete operation failed:', error);
return { success: false, error: error.message };
}
}
// Usage
const result = await deleteMemory("REPLACE_THIS_MEMORY_ID");
if (result.success) {
console.log(result.message);
} else {
console.error('Deletion failed:', result.error);
}
Error Handling
try {
await client.memories.delete("REPLACE_THIS_MEMORY_ID");
} catch (error) {
if (error.message.includes('404')) {
// Memory doesn't exist - might already be deleted
console.log('Memory not found');
} else if (error.message.includes('403')) {
// Permission denied
console.error('Not authorized to delete this memory');
} else {
// Other errors
console.error('Deletion failed:', error.message);
}
}