execute_forgetful_tool
Run any memory or knowledge operation in the Forgetful semantic memory system by specifying the tool name and arguments.
Instructions
Execute any registered tool dynamically. Forgetful is a semantic memory system for LLMs.
Quick Start - One-Shot Examples (all required params shown)
Memory Operations:
Search: execute_forgetful_tool("query_memory", {"query": "search terms", "query_context": "why searching"})
Create: execute_forgetful_tool("create_memory", {"title": "Short title", "content": "Memory content (<2000 chars)", "context": "Why this matters", "keywords": ["kw1", "kw2"], "tags": ["tag1"], "importance": 7, "project_ids": [1]})
Create with provenance: execute_forgetful_tool("create_memory", {"title": "...", "content": "...", "context": "...", "keywords": [...], "tags": [...], "importance": 7, "source_repo": "owner/repo", "source_files": ["src/main.py"], "confidence": 0.85, "encoding_agent": "claude-sonnet-4"})
Update: execute_forgetful_tool("update_memory", {"memory_id": 1, "content": "new content"})
Get: execute_forgetful_tool("get_memory", {"memory_id": 1})
Link: execute_forgetful_tool("link_memories", {"memory_id": 1, "related_ids": [2, 3]})
Unlink: execute_forgetful_tool("unlink_memories", {"source_id": 1, "target_id": 2})
Obsolete: execute_forgetful_tool("mark_memory_obsolete", {"memory_id": 42, "reason": "Outdated approach", "superseded_by": 100})
Project Organization:
List: execute_forgetful_tool("list_projects", {})
Create: execute_forgetful_tool("create_project", {"name": "Project Name", "description": "What this project is about", "project_type": "development"})
Get: execute_forgetful_tool("get_project", {"project_id": 1})
Query: execute_forgetful_tool("query_memory", {"query": "search terms", "query_context": "why searching", "project_ids": [1]})
Entities (people, orgs, devices):
Create: execute_forgetful_tool("create_entity", {"name": "Sarah Chen", "entity_type": "Individual", "notes": "Backend developer", "aka": ["Sarah", "S.C."]})
Search: execute_forgetful_tool("search_entities", {"query": "Sarah"}) # Searches name AND aka
Link to memory: execute_forgetful_tool("link_entity_to_memory", {"entity_id": 1, "memory_id": 1})
Unlink from memory: execute_forgetful_tool("unlink_entity_from_memory", {"entity_id": 1, "memory_id": 1})
Link to project: execute_forgetful_tool("link_entity_to_project", {"entity_id": 1, "project_id": 1})
Unlink from project: execute_forgetful_tool("unlink_entity_from_project", {"entity_id": 1, "project_id": 1})
Documents (long-form content >300 words):
Create: execute_forgetful_tool("create_document", {"title": "Doc Title", "description": "Brief summary", "content": "Long content...", "document_type": "text", "project_id": 1})
Code Artifacts (reusable snippets):
Create: execute_forgetful_tool("create_code_artifact", {"title": "Snippet Title", "description": "What this does", "code": "def example(): pass", "language": "python", "project_id": 1})
Linking Best Practices
Always link related items for discoverability:
When creating documents, link atomic memories:
create_memory(..., document_ids=[doc_id])When creating code artifacts, link to memories:
create_memory(..., code_artifact_ids=[artifact_id])Link memories to each other:
link_memories(memory_id=1, related_ids=[2, 3])Link entities to memories:
link_entity_to_memory(entity_id=1, memory_id=1)Link entities to projects:
link_entity_to_project(entity_id=1, project_id=1)
Tool Categories
memory | project | entity | document | code_artifact | linking | user
Use discover_forgetful_tools(category?) for full parameter details and optional params.
Args: tool_name: Name of the tool to execute arguments: Dictionary of arguments to pass to the tool ctx: FastMCP Context (automatically injected)
Returns: Tool execution result (format depends on the specific tool)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | Yes | ||
| tool_name | Yes |