ollie/data/agents
Ollie Agent 263ea51d29 restored autoload tools 2026-08-20 19:07:27 +02:00
..
README.md replace just build orchestration with make 2026-08-17 00:01:27 +02:00
author.json agents: move user-preferences to userPrompts 2026-08-20 11:48:10 +02:00
conductor.json agents: move user-preferences to userPrompts 2026-08-20 11:48:10 +02:00
copilot.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00
default.json restored autoload tools 2026-08-20 19:07:27 +02:00
driver.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00
explorer.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00
foreman.json agents: move user-preferences to userPrompts 2026-08-20 11:48:10 +02:00
librarian.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00
navigator.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00
observer.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00
panelist.json agents: move user-preferences to userPrompts 2026-08-20 11:48:10 +02:00
reviewer.json agents: move user-preferences to userPrompts 2026-08-20 11:48:10 +02:00
taskmanager.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00
theo.json Integrate OptMem wake into agent memory prompting 2026-08-18 14:01:18 +02:00

README.md

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

{
  "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.