# Profiles

A profile defines the agent's role, available tools, model settings, and system prompt for a specific domain.

## Current profiles

Fetched live from `GET /agents/profiles`.

| ID | Name | Model | Temp | Planning |
|----|------|-------|------|----------|
| `secretary` | Personal Secretary | gemma4:26b-a4b-it-q4_K_M | 0.7 | Yes |
| `server_admin` | Server Administrator | gemma4:26b-a4b-it-q4_K_M | 0.2 | Yes |
| `developer` | Tool Developer | gemma4:26b-a4b-it-q4_K_M | 0.2 | Yes |

## Profile descriptions

### `secretary`
General-purpose assistant. Research, writing, analysis, everyday tasks. Uses web search, code execution, file system access. Acts as an orchestrator — delegates sub-tasks to sub-agents when appropriate.

### `server_admin`
Infrastructure and remote ops. SSH access to remote servers, monitoring, troubleshooting. Heavy orchestrator — spawns one sub-agent per host or concern for complex tasks.

### `developer`
Writes, tests, and registers new Navi tools. Direct filesystem access to `tools/` directory. Has `test_tool` and `reload_tools` for the write → test → fix → reload cycle. Sub-agents used only for research (API docs, codebase exploration).

## Profile switching

The agent can switch profiles mid-session using the `switch_profile` tool. When this happens:
1. The server emits `profile_switched` event before the tool completes.
2. The new profile takes effect from the **next user message**.
3. The client should update the profile indicator in the UI immediately on receiving `profile_switched`.

The `session_id` is preserved across profile switches — only the profile changes.

## Tool availability

Each profile has its own `enabled_tools` list. Additionally, user-defined tools in `tools/enabled.json` are merged into every profile automatically.

Notable tool differences:
- `reload_tools`, `delete_tool`, `test_tool` — only in `developer`
- `ssh_exec` — only in `server_admin` and `developer`
- `terminal` — only in `server_admin` and `developer`
- `weather` — only in `secretary`

The client can fetch the complete tool list for any profile from `GET /agents/profiles` (the `enabled_tools` array) or all registered tools from `GET /agents/tools`.
