get_related_mementos
Find connected memories by exploring relationships like SOLVES or CAUSES to identify solutions or root causes.
Instructions
Find mementos connected to a specific memory via relationships.
Filter by relationship_types (e.g., ["SOLVES"], ["CAUSES"]) and max_depth (default 1).
EXAMPLES:
get_related_mementos(memory_id="prob-1", relationship_types=["SOLVES"]) - find solutions
get_related_mementos(memory_id="err-1", relationship_types=["CAUSES"], max_depth=2) - find root causes
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | ID of the memory to find relations for | |
| relationship_types | No | Filter by relationship types | |
| max_depth | No | Maximum relationship depth to traverse |
Implementation Reference
- The actual handler implementation for 'get_related_mementos', which retrieves related memories from the SQLite database.
async def handle_get_related_mementos( memory_db: SQLiteMemoryDatabase, arguments: Dict[str, Any] ) -> CallToolResult: """Handle get_related_memories tool call. Args: memory_db: Database instance for memory operations arguments: Tool arguments from MCP call containing: - memory_id: ID of memory to find relations for - relationship_types: Optional list of relationship types to filter - max_depth: Optional maximum traversal depth (default: 2) Returns: CallToolResult with list of related memories or error message """ memory_id = arguments["memory_id"] relationship_types = None if "relationship_types" in arguments: relationship_types = [ RelationshipType(t) for t in arguments["relationship_types"] ] max_depth = arguments.get("max_depth", 2) related_memories = await memory_db.get_related_memories( memory_id=memory_id, relationship_types=relationship_types, max_depth=max_depth ) if not related_memories: return CallToolResult( content=[ TextContent( type="text", text=f"No related memories found for: {memory_id}" ) ] ) # Format results results_text = f"Found {len(related_memories)} related memories:\n\n" for i, (memory, relationship) in enumerate(related_memories, 1): results_text += f"**{i}. {memory.title}** (ID: {memory.id})\n" results_text += f"Relationship: {relationship.type.value} (strength: {relationship.properties.strength})\n" results_text += ( f"Type: {memory.type.value} | Importance: {memory.importance}\n\n" ) return CallToolResult(content=[TextContent(type="text", text=results_text)])