Tools like file_write, file_edit, and shell now reset the agent's step counter when called successfully. This allows the agent to continue working without hitting the soft step-budget guardrail as long as it's making active progress (writing files, running commands) rather than looping on research/reading. Changes: - Add ResetsCounter bool to ToolInfo and MetaFile structs - Parse resetsCounter from .meta JSON files - Reset step counter in agent loop when ResetsCounter tool succeeds - Add resetsCounter: true to file_write, file_edit, shell - Reduce maxSteps from 50 to 25 (resetsCounter makes this safe) |
||
|---|---|---|
| .. | ||
| README.md | ||
| copilot.json | ||
| default.json | ||
| driver.json | ||
| explorer.json | ||
| librarian.json | ||
| navigator.json | ||
| taskmanager.json | ||
| theo.json | ||
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>.
default
Base agent with no specializations. Provides the standard ollie toolset and prompt assembly. Also serves as the base for JIT-generated subagents — subagent_generate copies default.json and replaces the prompt with SYSTEM_PROMPT + the identity text.
coding
Coding-focused agent. Extends default with agent instructions covering code modification discipline, security practices, and exploratory reading habits. Also enables the execute_elevated_bash trusted tool for operations requiring elevated privileges, and configures an MCP server for elevated operations.
System prompt
The system prompt is assembled from the prompt array in the agent config. Each entry is a shell command whose stdout is appended to the prompt. Commands run in the session's working directory with access to $PWD.
The base system prompt is embedded in the binary and automatically prepended.
The fully assembled system prompt is visible at session/{sname}/agent/{aname}/systemprompt.
Hooks
Hooks are lifecycle callbacks executed at specific points:
| Hook | When | Use case |
|---|---|---|
agentSpawn |
Session creation | Start elevation adapter, initialize state |
postTurn |
After each turn | Task list display, logging |
preCompact |
Before context compaction | Save state |
postCompact |
After context compaction | Notify user |
turnError |
On turn error (rate limit, transient failure) | Fallback handling, model switching |
Hook commands run with OLLIE_SESSION_ID set to the current session ID.
MCP Servers
Agent configs can specify MCP (Model Context Protocol) servers for external tool providers:
{
"mcpServers": {
"server-name": {
"command": "server-binary",
"args": [],
"env": {"KEY": "value"}
}
}
}
Tools from MCP servers are registered alongside built-in tools and can be invoked by the agent.
Adding a new agent
Copy default.json, rename it, and adjust the prompt array to include the prompts you want. Add hooks, trusted tools, MCP servers, and generation parameters as needed.