memory_save
Write a new memory to the store. Memories are automatically embedded, indexed for search, and linked to similar existing memories.The memory content to save. Be concise but complete. Maximum 50,000 bytes.
The type of memory being saved:
fact: Factual informationpreference: User preferences or style choicesdecision: Decisions made during conversationsidentity: Core identity information (exempt from decay)event: Specific events or happeningsobservation: Patterns or insights observedgoal: Goals or objectivestodo: Action items or tasks
Optional importance score (0.0-1.0). Higher values are recalled more easily. If not provided, uses type-specific defaults.Default importance by type:
- identity: 1.0
- decision: 0.8
- preference: 0.7
- goal: 0.7
- fact: 0.5
- event: 0.5
- observation: 0.4
- todo: 0.3
Optional source information describing where this memory came from. Examples:
- “user stated explicitly”
- “inferred from conversation”
- “system observation”
- “external research”
Optional channel ID to associate this memory with the conversation it came from. Helps with context-aware recall.
Optional associations to link this memory to other memories in the graph. Each association includes:
target_id(string, required): The memory ID to link torelation_type(string): Type of relationshiprelated_to: General relationship (default)updates: This memory updates or supersedes the targetcontradicts: This memory contradicts the targetcaused_by: This memory resulted from the targetresult_of: This memory is a result of the targetpart_of: This memory is part of a larger target memory
weight(number): Strength of association 0.0-1.0 (default: 0.5)
The UUID of the saved memory
Whether the save was successful
Status message (“Memory saved successfully”)
Example: Simple fact
Example: Preference with high importance
Example: Decision with association
Automatic similarity linking: When saving, memories with >0.9 similarity to existing memories are automatically linked with an
updates relationship. This helps track evolving information.Identity memories never decay. They maintain full importance indefinitely and remain permanently accessible for recall.
memory_recall
Search and retrieve memories using hybrid search that combines semantic similarity, full-text keyword matching, and graph traversal. Results are automatically curated and ranked.Search query for hybrid mode. Required for hybrid mode, ignored for other modes.For best results:
- Be specific about what you’re looking for
- Use natural language questions or descriptions
- Include context words that might appear in the memory
Maximum number of memories to return (1-50)
Filter to a specific memory type. Required for “typed” mode, optional filter for other modes.Valid types:
fact, preference, decision, identity, event, observation, goal, todoSearch mode:
"hybrid": Combines semantic similarity, keyword matching, and graph traversal using Reciprocal Rank Fusion (RRF). Requires a query. Recommended for most use cases."recent": Most recent memories by creation time. No query needed."important": Highest importance scores. No query needed."typed": Filter by memory_type. Requires memory_type parameter.
Sort order for non-hybrid modes:
"recent": Most recent first"importance": Highest importance first"most_accessed": Most frequently accessed first
Array of memory objects. Each memory includes:
id(string): Memory UUIDcontent(string): Memory contentmemory_type(string): Type of memoryimportance(number): Importance score 0.0-1.0created_at(string): ISO 8601 timestamprelevance_score(number): Relevance to the query (0.0-1.0)
Total number of results found before curation and max_results limit
Formatted markdown summary of the memories for easy LLM consumption
Example: Hybrid search (recommended)
Example: Recent decisions
Example: Most important memories of any type
Example: Identity memories
Hybrid search algorithm: Combines three retrieval methods using Reciprocal Rank Fusion:
- Vector similarity: Semantic search using embeddings (finds conceptually similar memories)
- Full-text search: Tantivy-based keyword matching (finds exact phrases)
- Graph traversal: Follows associations from initial results (finds related memories)
sum(1/(60 + rank)) for each sourcememory_delete
Soft-delete a memory by marking it as forgotten. The memory stays in the database but is excluded from all search and recall operations.The ID of the memory to forget (from memory_recall results)
Brief reason for forgetting this memory (for audit purposes). Logged but not shown to users.
Whether the memory was found and forgotten
Description of what happened, including a preview of the forgotten memory
Example
Use
memory_delete when:- Information becomes outdated and
updatesassociations aren’t sufficient - A memory contains incorrect information
- A user explicitly requests forgetting something
- A memory contradicts newer, more authoritative information