Channels are the user-facing LLM process. One channel per conversation (Discord thread, Slack channel, Telegram DM, etc.). Channels talk to users. They delegate everything else.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/spacedriveapp/spacebot/llms.txt
Use this file to discover all available pages before exploring further.
What Channels Do
A channel:- Receives messages from users
- Maintains conversation personality and context
- Responds to simple questions directly
- Delegates complex work to branches and workers
- Routes follow-up messages to active workers
- Displays live status of ongoing work
- Execute tasks directly
- Search memories itself
- Do heavy tool work
- Wait for branches or workers to complete
- Block on compaction
The channel is always responsive — never blocked by work, never frozen by compaction.
Tools Available to Channels
Channels have a focused set of tools for managing user interaction:| Tool | Purpose |
|---|---|
reply | Send a message to the user |
branch | Fork context and think independently |
spawn_worker | Create a worker to do a task |
route | Send follow-up to an active worker |
cancel | Cancel a worker or branch |
skip | Opt out of responding |
react | Add emoji reaction to a message |
memory_recall— delegated to branchesmemory_save— delegated to branchesshell,file,exec,browser— delegated to workers
Channel Context
Every turn, the channel’s context includes:System prompt
Loaded from
prompts/CHANNEL.md. Contains personality, identity, and behavioral guidelines.Identity files
SOUL.md— agent personality and core valuesIDENTITY.md— agent capabilities and knowledge domainsUSER.md— information about the user
Memory bulletin
A periodically refreshed summary of the agent’s knowledge, generated by the cortex.Every channel reads this via
ArcSwap — no database queries on the hot path.Conversation history
Persistent message history stored in SQLite, loaded and passed to Rig on each turn.
Branching for Thinking
When a channel needs to think, search memories, or make a decision, it branches:Creating a branch is literally
channel_history.clone(). Branches are git branches for conversations.Concurrent Branches
Multiple branches can run concurrently per channel:Spawning Workers
When a channel (or branch) needs heavy lifting done, it spawns a worker:- A fresh prompt (no channel context)
- Task-appropriate tools (shell, file, exec, browser)
- Model routing based on task type (coding workers get stronger models)
Routing to Workers
Interactive workers accept follow-up input:route tool:
Status Awareness
Channels see live status updates from all their branches and workers:set_status tool:
Message Coalescing
In fast-moving channels (Discord servers, Slack workspaces), messages arrive in rapid-fire bursts. Spacebot coalesces them:Retrigger Debouncing
When a branch or worker completes, the channel gets retriggered to incorporate the result. Rapid completions are debounced:Temporal Context
Channels inject temporal context on every turn:- User’s configured timezone
- Agent’s cron timezone
- System local time
Lifecycle
Channels are persistent. They exist as long as the conversation exists:Branch/worker management
The channel spawns branches and workers as needed, tracks their state, and incorporates results.
Context compaction
The compactor monitors context size and triggers background compaction. The channel never blocks.
Error Handling
Channels handle errors gracefully: LLM errors — Logged, user sees a friendly error message Branch errors — Branch returns partial result or error description, channel incorporates it Worker errors — Worker status updates to “failed”, result includes error details Context overflow — Compactor has already handled this (should never reach channel)Configuration
Channels use process-type defaults from routing config:Max Turns
Channels run for a small number of turns per user message:Next Steps
Branches
Learn how branches fork context and think independently
Workers
Understand how workers execute tasks
Status Block
See how channels track active work
Compaction
Explore how context is managed automatically