70 lines
3.0 KiB
Markdown
70 lines
3.0 KiB
Markdown
# Agents
|
|
|
|
Each `.json` file defines an agent configuration. Agent configs are installed to `~/.config/ollie/agents/` and selected at runtime via `/agent <name>`.
|
|
|
|
## Config format
|
|
|
|
```json
|
|
{
|
|
"prompt": ["$XDG_CONFIG_HOME/ollie/prompts/agent-coding.md"],
|
|
"userPrompts": ["$XDG_CONFIG_HOME/ollie/prompts/rules.md"],
|
|
"autoLoad": ["shell", "file_read", "file_edit", "file_glob", "file_grep"],
|
|
"maxSteps": 25,
|
|
"temperature": 0.5,
|
|
"maxTokens": 16384,
|
|
"backend": "openrouter",
|
|
"model": "deepseek/deepseek-v4-flash",
|
|
"systemPrompt": "/path/to/override.md",
|
|
"compactionModel": "cheap-model-name"
|
|
}
|
|
```
|
|
|
|
| Field | Purpose |
|
|
|-------|---------|
|
|
| `prompt` | File paths to concatenate as the agent prompt (system preamble). Env vars expanded. |
|
|
| `userPrompts` | File paths to concatenate as active global rules. Prepended to every user message at turn start. Env vars expanded. |
|
|
| `autoLoad` | Tools loaded at session start. |
|
|
| `maxSteps` | Cap on tool-call rounds per turn. 0 = unlimited. |
|
|
| `temperature` | Sampling temperature. |
|
|
| `maxTokens` | Max output tokens per response. |
|
|
| `backend` | Override backend for this agent. |
|
|
| `model` | Override model for this agent. |
|
|
| `systemPrompt` | Override the embedded system prompt with a file path. |
|
|
| `compactionModel` | Use a cheaper model for context compaction. |
|
|
|
|
## Agents
|
|
|
|
| Name | Role |
|
|
|------|------|
|
|
| `default` | Base coding agent. Also the base for JIT subagents. |
|
|
| `driver` | Full-featured agent with all tools, LSP, GUI, memory, subagents. |
|
|
| `copilot` | Read-only code copilot. Suggests changes as code fences. |
|
|
| `navigator` | Pair programming partner. Reads and advises, doesn't edit. |
|
|
| `explorer` | Code exploration and explanation. Read-only. |
|
|
| `librarian` | Document search and knowledge curation. Read-only. |
|
|
| `taskmanager` | TODO list management and planning. |
|
|
| `theo` | Security auditor (Theo de Raadt voice). Read-only. |
|
|
|
|
## System prompt assembly
|
|
|
|
The final system prompt sent to the model is assembled in sections:
|
|
|
|
1. **system** — embedded base prompt (`prompts/system_prompt.md`)
|
|
2. **env** — runtime environment (cwd, platform, date, git status)
|
|
3. **agent** — concatenated files from the `prompt` array
|
|
4. **tools** — auto-generated from loaded tools (name + `.meta` prompt)
|
|
|
|
The fully assembled prompt is readable at `session/{sname}/agent/{aname}/systemprompt`.
|
|
|
|
## User prompts (active global rules)
|
|
|
|
Files listed in `userPrompts` are resolved the same way as `prompt` (file paths with env var expansion), but instead of being injected into the system preamble, they are prepended to every user message at turn start. This lets you define persistent "global rules" that appear alongside each user request without bloating the system prompt.
|
|
|
|
## Adding a new agent
|
|
|
|
1. Copy `default.json`, rename it.
|
|
2. Adjust the `prompt` array to reference your prompt files in `data/prompts/`.
|
|
3. Set `autoLoad` to the tools this agent needs.
|
|
4. Set generation parameters as needed.
|
|
5. Run `make install-data` to install.
|