ollie/data/agents
Ollie Agent 2d74ffb95e prompt audit: trim system prompt, kill dead code, improve maintainability
- System prompt: ~200 → ~80 lines (removed tool-first table, API docs,
  output protocol, dead 9P entries)
- Removed AllowTools entirely (field, RPC, configs)
- Removed PRIME_* env vars, replaced with typed struct fields
- Merged tool listing + docs into single renderTools()
- Killed BuildToolListing, changed OnToolsChanged to func() signal
- Typed Preamble.Section (compile-time safety)
- Added protocol docs on extractToolResult
- Added session/ package godoc
- Moved output protocol to per-agent prompts
- Rewrote data/agents/README.md
- Moved 7 reference docs from doc/resources/ to doc/
- Deleted PromptEnv() dead function
2026-08-09 14:13:52 +02:00
..
README.md prompt audit: trim system prompt, kill dead code, improve maintainability 2026-08-09 14:13:52 +02:00
copilot.json prompt audit: trim system prompt, kill dead code, improve maintainability 2026-08-09 14:13:52 +02:00
default.json prompt audit: trim system prompt, kill dead code, improve maintainability 2026-08-09 14:13:52 +02:00
driver.json prompt audit: trim system prompt, kill dead code, improve maintainability 2026-08-09 14:13:52 +02:00
explorer.json remove hooks blocks and beads/freeloader refs from all agent JSON configs 2026-08-07 07:15:04 +02:00
librarian.json prompt audit: trim system prompt, kill dead code, improve maintainability 2026-08-09 14:13:52 +02:00
navigator.json remove hooks blocks and beads/freeloader refs from all agent JSON configs 2026-08-07 07:15:04 +02:00
taskmanager.json prompt audit: trim system prompt, kill dead code, improve maintainability 2026-08-09 14:13:52 +02:00
theo.json remove hooks blocks and beads/freeloader refs from all agent JSON configs 2026-08-07 07:15:04 +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"],
  "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. 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.

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 just install-data to install.