> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills Module

> Agent skills system for reusable capabilities

# Skills Module

The skills module provides a system for defining and loading reusable agent capabilities (skills) from files.

## Installation

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
pip install praisonaiagents
```

## Quick Start

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, SkillManager

# Load skills from directory
manager = SkillManager(skills_dir="./skills")
skills = manager.load_all()

agent = Agent(
    name="Assistant",
    tools=skills
)
```

## Classes

### SkillManager

Manage and load agent skills.

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import SkillManager

manager = SkillManager(
    skills_dir="./skills",
    auto_discover=True
)
```

#### Methods

| Method            | Description                    |
| ----------------- | ------------------------------ |
| `load_all()`      | Load all skills from directory |
| `load(name)`      | Load a specific skill          |
| `list()`          | List available skills          |
| `validate(skill)` | Validate a skill               |

### SkillProperties

Properties for a skill.

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import SkillProperties

props = SkillProperties(
    name="web_search",
    description="Search the web",
    parameters={"query": "string"}
)
```

### SkillMetadata

Metadata about a skill.

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import SkillMetadata

metadata = SkillMetadata(
    name="web_search",
    version="1.0.0",
    author="PraisonAI",
    tags=["search", "web"]
)
```

### SkillLoader

Load skills from various sources.

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import SkillLoader

loader = SkillLoader()
skill = loader.from_file("./skills/search.py")
skill = loader.from_url("https://example.com/skill.py")
```

## Skill File Format

Skills are Python files with a specific structure:

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# skills/web_search.py
"""
name: web_search
description: Search the web for information
version: 1.0.0
"""

def run(query: str) -> str:
    """Execute the skill."""
    # Implementation
    return f"Results for: {query}"
```

## Usage Examples

### Load Skills from Directory

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, SkillManager

manager = SkillManager(skills_dir="./my_skills")
skills = manager.load_all()

agent = Agent(
    name="Assistant",
    tools=skills
)
```

### Create Skill Programmatically

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import SkillManager, SkillProperties

manager = SkillManager()

# Register a skill
manager.register(
    name="calculator",
    func=lambda expr: eval(expr),
    properties=SkillProperties(
        description="Evaluate math expressions"
    )
)
```

## Related

* [Tools](/docs/sdk/praisonaiagents/tools/tools) - Tool system
* [Agent](/docs/sdk/praisonaiagents/agent/agent) - Agent configuration
