Module 3 · Configuration & Host Mode
User Settings Overview
All configuration lives in a single UserSettings row (ID = 1) in the
local SQLite database. You change settings through the Settings dialog
(F4 in TUI, gear icon in MAUI) or programmatically via ISettingsService.
Here are the key settings groups:
Inference Settings
| Setting | Purpose | Default |
|---|---|---|
| DefaultModelName | Which model to use for new conversations | First available |
| DefaultThinkLevel | Reasoning depth for new conversations | Basic |
| Temperature | Randomness of responses (0.0 – 2.0) | 0.7 |
| TopP | Nucleus sampling threshold | 0.9 |
| MaxTokens | Maximum response length in tokens | 2048 |
| SystemPrompt | Default persona / instructions injected into every conversation | (empty) |
Host Mode Settings
These only apply when HostModeEnabled is true (the default).
| Setting | Purpose | Default |
|---|---|---|
| HostModeEnabled | Run inference locally instead of routing to DaisiNet | true |
| ModelFolderPath | Where GGUF model files are stored | Auto-detected |
| LlamaRuntime | Backend: CPU, CUDA, or Vulkan | Auto |
| ContextSize | Token context window for local models | 2048 |
| GpuLayerCount | Layers offloaded to GPU (-1 = auto-detect) | -1 |
| BatchSize | Inference batch size | 512 |
| NetworkHostEnabled | Serve your idle cycles to the DAISI network | false |
Network Settings
| Setting | Purpose | Default |
|---|---|---|
| OrcDomain | Hostname of the orchestrator to connect to | Public ORC |
| OrcPort | gRPC port | 443 |
| OrcUseSsl | Enable TLS for the gRPC connection | true |
| NetworkName | Named network partition to join | (default) |
Host Mode Deep Dive
When Host Mode is enabled, the startup flow is:
- Query the ORC for the list of required model files.
- Scan local folder and compare with the required list.
- Download missing models — a progress dialog appears (text bar in TUI, linear progress in MAUI).
- Initialize LLamaSharp with the selected backend (CPU / CUDA / Vulkan).
- Ready — inference happens entirely on your hardware.
You can toggle Host Mode at any time via the HostModeToggle component. Switching to DaisiNet mode skips local model loading and routes all requests through the orchestrator instead.
Tool Groups
Tool Groups control which capabilities the agent can use in a conversation. Think of them as permission sets for the agent's "hands." Each group is classified as either Standard (lower risk) or Elevated (higher risk — requires explicit confirmation when enabled).
Enable or disable these per-conversation in Settings (F4 in TUI, gear icon in MAUI). Skills can also declare which tool groups they require — when you install a skill, its required groups are shown with their permission level.
Standard Tool Groups
These groups are lower risk. They read data, perform calculations, or generate content without direct system-level side effects.
InformationTools
Search the web, look up facts, and retrieve public information.
Typical use cases: answering factual questions, summarizing web pages, looking up documentation, real-time data retrieval (weather, stock prices, news).
MathTools
Perform calculations, solve equations, and process numerical data.
Typical use cases: arithmetic, unit conversions, statistical analysis, plotting data, solving algebra or calculus problems step by step.
CodingTools
Write, analyze, and debug code snippets.
Typical use cases: generating code in any language, explaining existing code, finding bugs, refactoring suggestions, writing unit tests. Note: this does not grant filesystem access — the agent works with code in-memory. To save files, FileTools must also be enabled.
MediaTools
Generate, edit, and process images, audio, and video.
Typical use cases: image generation from prompts, resizing and cropping, audio transcription, thumbnail creation. Output is returned in the conversation; saving to disk requires FileTools.
SocialTools
Interact with social platforms and public APIs.
Typical use cases: reading public posts and profiles, summarizing social threads, monitoring hashtags or trends, querying public REST APIs.
Elevated Tool Groups
These groups carry higher risk because they can modify your filesystem, send messages on your behalf, or use your credentials to reach external services. DaisiBot shows a confirmation dialog when you enable them.
FileTools
Read, write, and manage files on your local system. This grants access to your filesystem.
Typical use cases: creating and editing documents, reading CSVs or logs, organizing folders, saving generated code to disk. Risk: the agent can read sensitive files and overwrite existing ones. Limit use to conversations that genuinely need file access.
CommunicationTools
Send emails, messages, and notifications on your behalf.
Typical use cases: drafting and sending emails, posting messages to team channels, scheduling reminders, sending SMS notifications. Risk: the agent acts as you — recipients will see messages from your account. Always review what the agent intends to send.
IntegrationTools
Connect to third-party services and APIs with your credentials.
Typical use cases: creating Jira tickets, pushing to GitHub, querying databases, calling internal REST endpoints, updating spreadsheets in cloud services. Risk: the agent uses your stored credentials, so a misconfigured skill could take actions on external systems under your identity.
How Tool Groups Are Enforced
The ToolPermissions class in DaisiBot.Core.Security is the single source of truth. It maps every ToolGroupSelection enum value to a permission level and description. The UI component ToolGroupSelector reads this mapping to render checkboxes and automatically shows a confirmation dialog when you toggle an Elevated group.
| Group | Permission Level |
|---|---|
| InformationTools | Standard |
| MathTools | Standard |
| CodingTools | Standard |
| MediaTools | Standard |
| SocialTools | Standard |
| FileTools | Elevated |
| CommunicationTools | Elevated |
| IntegrationTools | Elevated |
Active Recall Checkpoint
Cover the answers and test yourself before peeking.
1. Where are all user settings stored?
Reveal answer
In a single UserSettings row (ID = 1) in the local SQLite database.
2. What are the three LLamaSharp backends DaisiBot can use for local inference?
Reveal answer
CPU, CUDA, and Vulkan.
3. What does GpuLayerCount = -1 mean?
Reveal answer
Auto-detect — DaisiBot will automatically decide how many model layers to offload to the GPU.
4. Which three tool groups are classified as Elevated, and why?
Reveal answer
FileTools (reads/writes your filesystem), CommunicationTools (sends messages as you), and IntegrationTools (uses your credentials to reach third-party services). They are Elevated because they can take actions with real-world side effects under your identity.
5. CodingTools is Standard, yet it involves code. Why isn't it Elevated?
Reveal answer
CodingTools works with code in-memory only — it can write, analyze, and debug code snippets but cannot save files to disk or execute them. Filesystem access requires the separate FileTools group.
6. What happens in the UI when you try to enable an Elevated tool group?
Reveal answer
The ToolGroupSelector shows a confirmation dialog describing the elevated access and asking you to Allow or Deny before it is enabled.