Skip to main content
Skills extend agents with specialised knowledge and instructions loaded on demand, keeping context lean until the skill is needed.
The user asks about a document; the agent loads the matching skill only when the task needs it.
Agent-created skills are staged for approval by default. When an agent calls skill_manage to create, edit, or delete a skill, the mutation is held in a pending store until a human approves it — disk is not touched. Reading and using existing skills is unaffected. See Skill Manage for the full approval gate docs.
Want to group several skills under one name? See Skill Bundles — a single @bundle selector expands to a full set of skills.
Want to generate a skill from your own repo or docs? See Learn a Skill from Sources — one command turns code/docs/PDFs into a grounded SKILL.md.
Graceful fallback for missing tools? Use fallback_for_tools in a skill’s frontmatter to offer the skill only when a real tool is absent. See Skill Fallback.

Quick Start

1

Simple Usage

Pass skill directory paths to skills:
2

With Configuration

Use SkillsConfig for auto-discovery from multiple directories:

How It Works

Skills use three levels of progressive disclosure:
LevelWhat LoadsTokens
1 — MetadataName + description (at startup)~100
2 — InstructionsFull SKILL.md body (when activated)under 5,000
3 — ResourcesScripts, references, assets (on demand)Variable

SKILL.md Format

Each skill is a directory containing a SKILL.md file:

Required Fields

FieldConstraints
name1–64 chars, lowercase, hyphens only, matches directory name
description1–1024 chars — tells the agent when to use this skill

Optional Fields

FieldDescription
licenseLicense identifier (e.g., Apache-2.0, MIT)
compatibilityCompatibility notes (max 500 chars)
metadataKey-value map for custom properties
allowed-toolsSpace-delimited list of tools the skill requires

Configuration Options

SkillsConfig SDK Reference

Full parameter reference for SkillsConfig
The most common options at a glance:
OptionTypeDefaultDescription
pathsList[str][]Direct skill directory paths to load
dirsList[str][]Directories to scan for skill subdirectories
auto_discoverboolFalseAuto-discover from default locations (~/.praisonai/skills/, etc.)

Default Discovery Locations

Skills auto-discovered (in order of precedence):
  1. ./.praisonai/skills/ or ./.claude/skills/
  2. ~/.praisonai/skills/
  3. /etc/praison/skills/

Common Patterns

Single Skill

Multiple Skills from Directory

Creating a SKILL.md

This creates the directory structure and template SKILL.md you can fill in.

Best Practices

The description field tells the agent when to activate the skill. Write it as a trigger sentence: “Use this skill when the user asks to process PDF files” — not just “Handles PDFs”.
Level 2 instructions inject into the agent’s context. Keep them under 5,000 tokens and focused on the specific task — don’t repeat general knowledge the LLM already has.
Reference documentation, example data, and large scripts belong in references/ or scripts/ (Level 3). They load only when explicitly needed, keeping context lean.
The directory name must exactly match the name field in SKILL.md. Use praisonai skills validate --path ./my-skill to catch mismatches before deploying.

Group Skills into Bundles

Bundle multiple skills into a named set and select them with a single @name selector.
Create a bundles/backend-dev.yaml in your skills directory to define the bundle:
See Skill Bundles for the full guide.

Skill Bundles

Group skills into named bundles and select with @name

Skill Invocation

Slash commands, argument substitution, and invocation policy

Skill Manage

Let agents create and edit skills with human approval

Skills vs Tools

When to use SKILL.md knowledge vs executable tools

Knowledge

Give agents access to documents and vector search