Documentation Index
Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
Use this file to discover all available pages before exploring further.
Skills Module
The skills module provides a system for defining and loading reusable agent capabilities (skills) from files.
Installation
pip install praisonaiagents
Quick Start
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.
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.
from praisonaiagents import SkillProperties
props = SkillProperties(
name="web_search",
description="Search the web",
parameters={"query": "string"}
)
Metadata about a skill.
from praisonaiagents import SkillMetadata
metadata = SkillMetadata(
name="web_search",
version="1.0.0",
author="PraisonAI",
tags=["search", "web"]
)
SkillLoader
Load skills from various sources.
from praisonaiagents import SkillLoader
loader = SkillLoader()
skill = loader.from_file("./skills/search.py")
skill = loader.from_url("https://example.com/skill.py")
Skills are Python files with a specific structure:
# 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
from praisonaiagents import Agent, SkillManager
manager = SkillManager(skills_dir="./my_skills")
skills = manager.load_all()
agent = Agent(
name="Assistant",
tools=skills
)
Create Skill Programmatically
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"
)
)