56 lines
2.2 KiB
Markdown
56 lines
2.2 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>`.
|
|
|
|
## 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_bypass_bash` trusted tool for operations requiring bypass privileges, and configures an MCP server for bypass 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 bypass 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:
|
|
|
|
```json
|
|
{
|
|
"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.
|