Introduction to Skills

Skills provide agents with structured domain expertise through instructions, scripts, and reference documentation.

Agno Skills integration, based on Anthropic's Agent Skills specification, is a way to extend your agent's capabilities by providing specific skills.

Using Skills, your agents will be able to gradually discover, obtain and utilize specialized knowledge and capabilities.

What is a Skill?

A skill is a self-contained package an Agent can use to extend its capabilities in a specific domain, or to acquire a new specific capability.

All skills contain:

  • Instructions: Detailed guidance on when and how to apply the skill (in SKILL.md)
  • Scripts: Optional executable code templates the agent can run
  • References: Optional supporting documentation (guides, cheatsheets, examples)

Why Use Skills?

Domain Expertise on Demand

Instead of filling the system message with instructions to cover every usecase, skills let you organize domain knowledge into focused packages.

The system prompt contains skill metadata. The agent can request detailed instructions and references when useful; token savings depend on which content it requests.

Reusable Knowledge Packages

Create skills once, use them across multiple agents. A code review skill can be shared between your debugging agent, PR review agent, and code generation agent.

Progressive Discovery

Skills use progressive disclosure into the model context. LocalSkills reads and parses local skill files when loaded; it is not lazy filesystem loading:

  1. Browse: The agent sees skill summaries in its system prompt
  2. Load: When a task matches a skill, the agent loads full instructions
  3. Reference: The agent accesses detailed documentation as needed
  4. Execute: The agent can run scripts from the skill

Setup

In an activated virtual environment, install Agno and the model client:

uv pip install -U agno openai
export OPENAI_API_KEY="your_openai_api_key"

Save this as create_skill.py and run python create_skill.py. It creates a small skill beside the script:

create_skill.py
from pathlib import Path

skill_dir = Path(__file__).parent / "skills" / "code-review"
skill_dir.mkdir(parents=True, exist_ok=True)
skill_file = skill_dir / "SKILL.md"
if not skill_file.exists():
    skill_file.write_text(
        "---\n"
        "name: code-review\n"
        "description: Review small Python functions for clear names and correct behavior.\n"
        "---\n\n"
        "# Code review\n\n"
        "Read the supplied code. Identify concrete correctness issues, explain them, "
        "and propose a minimal improvement. State when additional context is needed.\n"
    )
print(skill_file)

Save the agent or team script in the same directory. Its skills/code-review/SKILL.md now exists before LocalSkills loads it.

Quick Example

from pathlib import Path

from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.skills import Skills, LocalSkills

# Load skills from a directory
agent = Agent(
    model=OpenAIResponses(id="gpt-5.2"),
    skills=Skills(loaders=[LocalSkills(str(Path(__file__).parent / "skills"))])
)

# The agent now has access to skill tools:
# - get_skill_instructions(skill_name)
# - get_skill_reference(skill_name, reference_path)
# - get_skill_script(skill_name, script_path)

Skill Structure

my-skill/
├── SKILL.md           # Instructions with YAML frontmatter
├── scripts/           # Optional executable scripts
│   └── helper.py
└── references/        # Optional reference documentation
    └── guide.md

Learn More