Skip to main content
Branches are forked copies of channel context that think independently. They have access to the full conversation history at fork time and specialize in memory work and research.

memory_recall

Search and retrieve memories using hybrid search (semantic similarity + full-text + graph traversal). Memories are automatically curated and ranked by relevance.
query
string
Search query for hybrid mode. Required for hybrid mode, ignored for other modes.
max_results
integer
default:10
Maximum number of memories to return (1-50)
memory_type
string
Filter to a specific memory type. Required for “typed” mode, optional filter for other modes.Valid types: fact, preference, decision, identity, event, observation, goal, todo
mode
string
default:"hybrid"
Search mode:
  • "hybrid": Semantic + keyword + graph traversal (needs query)
  • "recent": Most recent by creation time
  • "important": Highest importance scores
  • "typed": Filter by memory_type
sort_by
string
default:"recent"
Sort order for non-hybrid modes: "recent", "importance", or "most_accessed"
memories
array
Array of memory objects with id, content, memory_type, importance, created_at, and relevance_score
total_found
integer
Total number of results before curation
summary
string
Formatted markdown summary of the memories for LLM consumption
{
  "query": "API rate limits and throttling strategies",
  "max_results": 15,
  "mode": "hybrid"
}

Example: Recent identity memories

{
  "memory_type": "identity",
  "mode": "typed",
  "sort_by": "recent",
  "max_results": 10
}
Memory recall automatically records access timestamps and updates importance scores based on retrieval frequency.

memory_save

Write a new memory to the store. Memories are automatically embedded and indexed for hybrid search. Similar memories (>0.9 similarity) are auto-linked as updates.
content
string
required
The memory content to save. Be concise but complete. Maximum 50,000 bytes.
memory_type
string
default:"fact"
The type of memory: fact, preference, decision, identity, event, observation, goal, or todo
importance
number
Optional importance score (0.0-1.0). Higher values are recalled more easily. If not provided, uses type-specific defaults.
source
string
Optional source information (e.g., “user stated”, “inferred from conversation”, “system observation”)
channel_id
string
Optional channel ID to associate this memory with the conversation it came from
associations
array
Optional associations to link this memory to other memories. Each association has:
  • target_id (string, required): The memory ID to link to
  • relation_type (string): related_to, updates, contradicts, caused_by, result_of, or part_of (default: related_to)
  • weight (number): Strength of association 0.0-1.0 (default: 0.5)
memory_id
string
The UUID of the saved memory
success
boolean
Whether the save was successful
message
string
Status message

Example: Save a user preference

{
  "content": "User prefers concise responses without preambles. Wants direct answers followed by explanations if needed.",
  "memory_type": "preference",
  "importance": 0.9,
  "source": "user stated explicitly"
}

Example: Save with associations

{
  "content": "Decided to use exponential backoff for API retries with max 5 attempts",
  "memory_type": "decision",
  "importance": 0.8,
  "associations": [
    {
      "target_id": "prev-memory-id",
      "relation_type": "updates",
      "weight": 0.9
    }
  ]
}
Memories with identity type are exempt from decay and remain permanently accessible.

channel_recall

Retrieve conversation transcript from other channels. Useful for cross-conversation context or summarizing activity.
channel
string
Channel name (e.g., “general”, “dev”) or full channel ID (e.g., “discord:123:456”). If omitted, lists all available channels instead.
limit
integer
default:50
Maximum number of messages to return (1-100)
action
string
The action performed: "transcript" or "list"
channel_id
string
The resolved channel ID (when querying a specific channel)
channel_name
string
The display name of the channel
messages
array
Array of transcript messages with role, sender, content, and timestamp
available_channels
array
When listing: array of channel entries with channel_id, channel_name, and last_activity
summary
string
Formatted markdown summary for LLM consumption

Example: Get transcript

{
  "channel": "general",
  "limit": 20
}

Example: List all channels

{}
Channel recall supports partial name matching. Searching for “dev” will find “#dev-team” if it’s the best match.

spawn_worker

Branches can spawn workers for task execution. See the channel tools documentation for full details. Branches spawn workers the same way channels do, but typically for focused research or data processing tasks rather than user interaction.

Build docs developers (and LLMs) love