Agentao dynamically loads skills from the skills directory. Each skill is defined in its own subdirectory with a SKILL.md file.
<project-root>/skills/SKILL.md file✅ 17 skills loaded successfully:
Each SKILL.md file should follow this structure:
---
name: skill-name
description: Brief description of what this skill does and when to use it
license: Optional license information
---
# Skill Title
Main documentation content goes here...
## Sections
- Overview
- Usage examples
- API reference
- etc.
skills/:
mkdir skills/my-new-skill
SKILL.md file:
touch skills/my-new-skill/SKILL.md
---
name: my-new-skill
description: Use this skill when...
---
# My New Skill
## Overview
This skill provides...
cp -r skills/pdf skills/my-new-skill
Edit SKILL.md to match your new skill
You: /skills
This shows all loaded skills with their descriptions.
You: Activate the pdf skill to help me work with PDFs
The agent will use the activate_skill tool automatically.
Or explicitly:
You: /skill pdf "I need to merge multiple PDF files"
You: /status
Shows conversation status including active skills.
skills/
my-skill/
├── SKILL.md # Main documentation (required)
├── examples/ # Usage examples (optional)
├── templates/ # Templates or samples (optional)
└── scripts/ # Helper scripts (optional)
---
name: my-skill
description: Detailed trigger description explaining when to activate this skill...
---
# Skill Title
## Overview
Brief introduction to what this skill does.
## Quick Start
command or code here
## Common Tasks
### Task 1
Step-by-step guide...
### Task 2
Another common use case...
## API Reference
Detailed reference...
## Best Practices
- Tip 1
- Tip 2
## Examples
Real-world examples...
## Troubleshooting
Common issues and solutions...
from agentao.skills import SkillManager
# Initialize with default location
manager = SkillManager()
# Or specify custom location
manager = SkillManager(skills_dir="/path/to/skills")
# List skills
skills = manager.list_available_skills()
# Get skill info
info = manager.get_skill_info("pdf")
print(info['title'])
print(info['description'])
print(info['path'])
# Read full content
content = manager.get_skill_content("pdf")
# Activate skill
result = manager.activate_skill("pdf", "Merge PDF files")
# Reload skills (after adding new ones)
manager.reload_skills()
Skills are discovered by:
SKILL.md filesNote: Hidden directories (starting with .) are ignored.
Test your skills with the provided test script:
uv run python test_skills.py
This will:
SKILL.md existsskills commandIf frontmatter is invalid:
---You can have different versions:
skills/
pdf-v1/
SKILL.md
pdf-v2/
SKILL.md
Name them differently in frontmatter.
Reference other skills in your documentation:
## Related Skills
This skill works well with:
- [xlsx](#) for data processing
- [docx](#) for reports
Skills can include:
All commands start with /:
| Command | Description |
|---|---|
/skills |
List all available and active skills |
/status |
Show conversation and skill status |
/skill <name> "<task>" |
Activate a skill explicitly |
/help |
Show general help including skills info |
/memory |
Show saved memories |
/clear |
Clear conversation history |
/exit or /quit |
Exit the program |
Skills integrate with the Agentao through:
See existing skills for reference:
pdf/ - Comprehensive PDF processingxlsx/ - Excel and spreadsheet operationsdocx/ - Word document handlingpptx/ - PowerPoint presentationsLast Updated: 2026-02-09 Skills Count: 17 Status: ✅ Production Ready