Module 4 · Conversations & Chat
Anatomy of a Conversation
Every conversation is a self-contained context with its own model, system prompt, think level, and message history. Key fields:
| Field | Purpose |
|---|---|
| Title | Display name (auto-generated or user-set) |
| ModelName | Which model processes this conversation |
| SystemPrompt | Persona / instructions prepended to every request |
| ThinkLevel | Reasoning depth (see below) |
| Messages | Ordered list of ChatMessage objects (cascade-deleted with the conversation) |
| IsArchived | Hides the conversation without deleting it |
Think Levels
Think levels are the most powerful knob in DaisiBot. They control how deeply the model reasons before responding.
| Level | Behavior | Tools? |
|---|---|---|
| Basic | Direct inference — fast, simple answers. | No |
| BasicWithTools | Direct inference with access to enabled tool groups. | Yes |
| Skilled | Single-pass reasoning with visible thinking. The model reasons through the entire problem in one inference call, "thinking out loud" as it works toward an answer. Good for complex questions that benefit from visible reasoning. | Yes |
| Agent | Autonomous multi-step execution. Instead of answering in a single pass, the model first plans a set of steps, then executes each step individually (with full tool access), and finally synthesizes all results into a single response. This plan–execute–synthesize loop lets the model break down complex tasks and tackle them methodically. | Yes |
Not every model supports every level. The AvailableModel object exposes
a SupportedThinkLevels list. Both Skilled and Agent work with any model
that supports reasoning, though Agent benefits from models that produce structured plans.
Streaming Responses
DaisiBot streams every response as an IAsyncEnumerable<StreamChunk>.
Each chunk carries:
- Content – The text fragment.
- Type – Text, Thinking, Tooling, ToolContent, Error, Image, or Audio.
- IsComplete –
trueon the final chunk.
The UI renders text chunks progressively (typewriter effect) and separates Thinking chunks into a collapsible section so you can see the model's chain-of-thought without cluttering the response.
Message Types
Each ChatMessage has a Role and a Type:
Roles
- System – Hidden instructions
- User – Your input
- Assistant – Model response
- Tool – Tool execution result
Types
- Text – Normal content
- Thinking – Chain-of-thought
- Tooling – Tool invocation
- ToolContent – Tool output
- Error / Image / Audio
Slash Commands (TUI)
In the terminal client, type / to open the autocomplete popup.
The top 5 matches appear and you navigate with Up/Down, complete with Tab or Enter.
| Command | What It Does |
|---|---|
| /new | Create a new conversation |
| /model | Open the model picker |
| /settings | Open the settings dialog |
| /skills | Open the skill browser |
| /install <skill> | Install a skill by name |
| /login | Start the OTP authentication flow |
| /balance | Check your DAISI credit balance |
| /status | Show bot status or all bots |
| /runnow | Run a selected bot immediately |
| /kill | Stop and delete a bot (with confirmation) |
| /export | Export the current conversation |
| /clear | Clear the screen |
| /help | Show help information |
Chat Statistics
After every response, DaisiBot tracks token count,
compute time, and tokens per second for both the
last message and the running session total. In the TUI these appear in the
ChatStatsBar; in MAUI/Web they appear below each message bubble.
Use these to compare model performance and estimate costs.
Active Recall Checkpoint
Cover the answers and test yourself before peeking.
1. Name the four think levels in order from simplest to deepest.
Reveal answer
Basic, BasicWithTools, Skilled, Agent.
2. What is the difference between Skilled and Agent think levels?
Reveal answer
Skilled reasons through the problem in a single inference pass with visible thinking. Agent breaks the task into a multi-step plan, executes each step individually with tool access, then synthesizes all results into a final answer.
3. What three properties does a StreamChunk carry?
Reveal answer
Content (text fragment), Type (Text/Thinking/Tooling/etc.), and IsComplete (boolean).
4. How do you trigger slash command autocomplete in the TUI?
Reveal answer
Type / to open the autocomplete popup, then navigate with Up/Down and complete with Tab or Enter.