Curating Memories
Active curation keeps the knowledge base accurate and connected. Outdated memories pollute search results and reduce effectiveness.
When to Update a Memory
Use update_memory when:
- •Information needs correction or clarification
- •Importance level changes (more/less relevant than thought)
- •Content needs refinement
- •Links to projects/artifacts/documents change
execute_forgetful_tool("update_memory", {
"memory_id": <id>,
"content": "Updated content...",
"importance": 8
})
Only specified fields are changed (PATCH semantics).
When to Mark Obsolete
Use mark_memory_obsolete when:
- •Memory is outdated or contradicted by newer information
- •Decision has been reversed or superseded
- •Referenced code/feature no longer exists
- •Memory was created in error
execute_forgetful_tool("mark_memory_obsolete", {
"memory_id": <id>,
"reason": "Superseded by new architecture decision",
"superseded_by": <new_memory_id> // optional
})
Obsolete memories are soft-deleted (preserved for audit, hidden from queries).
When to Link Memories
Use link_memories when:
- •Concepts are related but not caught by auto-linking
- •Building explicit knowledge graph structure
- •Connecting decisions to their implementations
- •Relating patterns across projects
execute_forgetful_tool("link_memories", {
"memory_id": <source_id>,
"related_ids": [<target_id_1>, <target_id_2>]
})
Links are bidirectional (A↔B created automatically).
Curation Workflow
When creating new memories, check impact on existing knowledge:
Step 1: Query Related Memories
execute_forgetful_tool("query_memory", {
"query": "<topic of new memory>",
"query_context": "Checking for memories that may need curation",
"k": 5
})
Step 2: Analyze Each Result
For each existing memory, determine action:
| Situation | Action |
|---|---|
| Existing memory is still accurate | Link to it |
| Existing memory has minor gaps | Update it |
| Existing memory is now wrong | Mark obsolete, create new |
| Existing memory is partially valid | Create new, link both |
Step 3: Execute Curation Plan
Present plan to user before executing:
Curation plan: - Create: "New authentication approach" (importance: 8) - Mark obsolete: #42 "Old auth pattern" (superseded) - Link: New memory ↔ #38 "Security requirements" Proceed? (y/n)
Step 4: Execute and Report
After user confirms:
- •Create new memory
- •Mark obsolete memories
- •Create links
- •Report results with all changes made
Signs of Poor Curation
Watch for these indicators:
- •Multiple similar memories on same topic (deduplicate)
- •Memories referencing deleted code (mark obsolete)
- •Contradictory memories (resolve conflict)
- •Low-importance memories (importance < 6) accumulating
- •Orphaned memories with no links (consider linking or removing)
Auto-Linking
Forgetful auto-links semantically similar memories (similarity >= 0.7) during creation. Manual linking is for:
- •Explicit relationships auto-linking missed
- •Cross-project connections
- •Non-obvious conceptual links
Check similar_memories in create response to see what was auto-linked.