Agents and Skills¶
Understanding the relationship between Agents and Skills is the key to mastering OLAV.
This is a conceptual overview. For related Feature Claims, see Using Agents, Build a Skill, and Manage Workspace.
Agent: An AI Assistant Focused on a Specific Task¶
Think of Agents as different roles on a team. Each Agent has a clear responsibility and dedicated tools, and excels at handling a specific type of problem.
An Agent consists of three parts:
| Component | Description | Corresponding File |
|---|---|---|
| System Prompt | Defines the Agent's role, behavioral guidelines, and output style | system_prompt_file in AGENT.md |
| Toolset | Functions the Agent can call (query databases, invoke APIs, execute code...) | Loaded via SubAgents and Skills |
| Route Keywords | When a user's question matches these keywords, OLAV automatically selects this Agent | route_keywords in MANIFEST.yaml |
AGENT.md Example¶
---
name: quick-orchestrator
description: "Quick Query Agent — fast SQL/CLI queries"
system_prompt_file: prompts/system.md
subagents: []
static_context:
- path: ./references/SCHEMA_REFERENCE.md
---
## Overview
Quick Agent is the default entry point for OLAV.
It skips complex multi-step reasoning loops in favor of immediate, single-step responses.
The static_context field specifies reference materials (such as database schemas) that the Agent automatically loads on each run, helping the LLM understand the problem more accurately.
Skill: A Toolkit That Gives Agents New Capabilities¶
A Skill is a collection of Python @tool functions that can be independently developed, installed, and shared. Skills fall into three categories by origin:
| Type | Description | Example |
|---|---|---|
| Built-in | Shipped with OLAV | core (code execution), config (system management) |
| Generated | Auto-generated from OpenAPI by the Creator Agent | Zabbix tools, NetBox tools |
| Custom | Written by you, installed via olav skill install |
Ticket queries, automation scripts |
MANIFEST.yaml Example¶
kind: Agent
name: quick
version: "0.11.0"
description: "Quick Agent — fast SQL queries, CLI execution, knowledge base search"
route_keywords:
- quick query
- show me
- list devices
- what is
- how many
tools_dir: tools/
requires:
- olav-platform>=0.11
route_keywords determines when the semantic router assigns a question to this Agent. tools_dir specifies the directory containing the tool functions.
How Agents Load Tools¶
Agents acquire tools in two ways:
Static Binding (Declared in AGENT.md)¶
Suitable for built-in, stable tool bindings. The Agent loads these sub-skills every time it starts.
Dynamic Discovery (Via olav skill install)¶
After installation, tools are written to .olav/workspace/<name>/. When OLAV starts an Agent, it automatically scans the workspace, discovers and injects all installed skill tools. No manual modification of AGENT.md is needed.
Tool Call Loop¶
When you ask a question, the Agent's internal processing flow is as follows:
Your question
|
Agent sees all available tools (each with a name and description)
|
LLM decides which tool to call and passes in arguments
|
Tool executes and returns results
|
LLM analyzes results and decides whether more tools are needed
|
Once all information is sufficient, synthesizes a final answer
|
Each tool call is automatically written to the audit log
Built-in Agents Overview¶
| Agent | Role | Strengths |
|---|---|---|
quick (default) |
Quick query assistant | Single-step queries, one question one answer |
config |
System administrator | Service registration, skill generation, workspace health checks |
core |
Full-stack engineer | Code execution, SQL, Shell, web search |
When Should You Create What?¶
| Need | Solution |
|---|---|
| Add new capabilities to an existing Agent | Install a new Skill |
| Need a completely different AI assistant role | Create a new Agent (new AGENT.md) |
| Add a few tools to an existing Skill | olav skill install --merge-into |
In most scenarios, you only need to install a new Skill. You only need to create a new Agent when you require a different system prompt or different behavioral patterns.