channels Β· routing Β· message surfaces
Platform-specific events converted to unified message format with metadata: author, channel, attachments, reply context.
Replies route back through originating channel. Sessions track the source. Cross-channel messaging supported.
conversation state Β· message history Β· thread binding
The session holds the full message thread: user messages, agent replies, and tool results.
Telegram and Mattermost create separate sessions. Context doesn't leak between them.
Messages matched by channel + conversation ID. New conversations create new sessions.
Agent can spawn isolated sub-sessions for background work that report back when done.
core loop Β· tool execution Β· decision cycle
while loop. Each iteration sends the conversation to the API, inspects the response, and either executes tool calls or returns the final text.description before each reply. If a skill applies, its SKILL.md is loaded. Contains instructions, scripts, and references.exec (shell), read/write/edit (files), browser, web_search, message (channels), nodes (devices).deny, allowlist, full. Elevated mode for host access. Ask modes require user approval.MEMORY.md β curated long-term memory. memory/*.md β daily notes. memory_search β semantic search. Workspace files injected each session.provider APIs Β· tool schemas Β· streaming
inference Β· context window Β· reasoning
Fixed token budget (e.g. 200k). All messages, tools, system prompt must fit. Older messages truncated.
Autoregressive generation. Each token conditioned on all prior tokens. Temperature / top-p control sampling.
Models emit structured tool calls based on task and available schemas.
Chain-of-thought reasoning before final response. Toggleable. Produces reasoning trace.