What are Skills?
Skills provide domain-specific knowledge and tools that agents can selectively activate based on user requests. Each skill is a module with its own documentation and tools that become accessible only when the skill is activated. This is an extension of Anthropic’s Agent SkillsHow Skills Work
Structure
Each skill is a directory containing:SKILL.md(required): Knowledge provided by the Skilltools/(optional): Folder for python files defining instances of skill-specific tools- Supporting Files (optional): Additional documentation (must be referenced in
SKILL.md)
Loading Behavior
- Discovery: The agent receives a list of available skills with their names and descriptions
- Activation: When relevant to a user query, the agent loads the
SKILL.mdfile and its associated tools - Persistence: Once loaded, skills remain available throughout the conversation
Skills and memory compaction. A skill’s documentation reaches the model as the result of the
read_skill tool call. Those results are pinned, so memory compaction never drops or truncates them — the guidance stays available for as long as the skill is active, even on long runs where the rest of the history is compacted. This keeps an agent’s tools and the instructions for using them from drifting apart.Using Skills
Step 1: Enable Skills in Your Agent
Create a skills directory and configure your agent to use it:Step 2: Create the SKILL.md File
Every skill requires aSKILL.md file with YAML frontmatter defining its name and description:
skills/payment_processing/SKILL.md
Important:
The
The
The
name and description fields are required in the YAML frontmatter. The agent uses these fields to decide when to activate the skillThe
name field must match the skill’s directory nameStep 3: Add Tools (Optional)
Skills can provide specialized tools that only become available when the skill is used.skills/payment_processing/tools/process_refund.py
Step 4: Add Supporting Documentation (Optional)
For complex skills, include additional reference files and link to them inSKILL.md.
In the previous example, the fraud_detection.md file will only be read when the agent determines it is needed.
Selecting Which Skills to Load
By default, every skill underskills_path is loaded into the agent. When a single directory is shared across multiple agents — each needing a different subset — use skills_include (whitelist) or skills_exclude (blacklist) to filter by directory name.
Whitelist
Load only the listed skills:ValueError — typos fail loudly instead of silently loading nothing.
Blacklist
Load every skill except the listed ones:skills_exclude are silently ignored.
skills_include and skills_exclude are mutually exclusive. Both require skills_path to be set.Explicit Selection Without skills_path
For full control, pass Skill instances directly via tools=[...]. This bypasses skills_path entirely and is useful when skills live in unrelated locations or when an agent only needs one or two:
Best Practices
- Each skill should have a single, well-defined purpose.
- Write clear descriptions. Agents use it to decide when to activate a Skill.
- Use descriptive names for the skill.
Key Takeaways
- Skills are modular packages that combine knowledge and tools for specific domains
- Dynamic loading keeps agents efficient by loading only relevant capabilities
- SKILL.md YAML frontmatter defines the skill’s identity and purpose
- Tools and supporting documentation are loaded on demand when the skill is activated