basic_skill_usage.py
1 """ 2 Basic Agent Skills Usage Example 3 4 This example demonstrates how to use Agent Skills with PraisonAI Agents. 5 Skills are modular capabilities that can be loaded and used by agents. 6 """ 7 8 from praisonaiagents import Agent, SkillManager 9 10 # Example 1: Using SkillManager directly 11 print("=" * 50) 12 print("Example 1: Using SkillManager directly") 13 print("=" * 50) 14 15 # Create a skill manager 16 manager = SkillManager() 17 18 # Discover skills from a directory 19 # This scans the directory for subdirectories containing SKILL.md files 20 skill_count = manager.discover(["./pdf-processing"], include_defaults=False) 21 print(f"Discovered {skill_count} skill(s)") 22 23 # List available skills 24 for skill in manager: 25 print(f" - {skill.properties.name}: {skill.properties.description[:50]}...") 26 27 # Generate prompt XML for system prompt injection 28 prompt_xml = manager.to_prompt() 29 print("\nGenerated prompt XML:") 30 print(prompt_xml) 31 32 # Example 2: Using skills with an Agent 33 print("\n" + "=" * 50) 34 print("Example 2: Using skills with an Agent") 35 print("=" * 50) 36 37 # Create an agent with skills 38 # Skills are lazy-loaded only when accessed 39 agent = Agent( 40 name="PDF Assistant", 41 instructions="You are a helpful assistant that can process PDF documents.", 42 skills=["./pdf-processing"], # Direct skill paths 43 ) 44 45 # Access the skill manager through the agent 46 if agent.skill_manager: 47 print(f"Agent has {len(agent.skill_manager)} skill(s) loaded") 48 49 # Get the skills prompt for system prompt injection 50 skills_prompt = agent.get_skills_prompt() 51 print("\nAgent skills prompt:") 52 print(skills_prompt) 53 54 # Example 3: Discovering skills from multiple directories 55 print("\n" + "=" * 50) 56 print("Example 3: Using skills_dirs for discovery") 57 print("=" * 50) 58 59 # Create an agent that discovers skills from directories 60 agent_with_discovery = Agent( 61 name="Multi-Skill Agent", 62 instructions="You are a versatile assistant with multiple skills.", 63 skills_dirs=["./"], # Scan current directory for skill subdirectories 64 ) 65 66 if agent_with_discovery.skill_manager: 67 print(f"Discovered {len(agent_with_discovery.skill_manager)} skill(s)") 68 for name in agent_with_discovery.skill_manager.skill_names: 69 print(f" - {name}") 70 71 print("\n" + "=" * 50) 72 print("Examples complete!") 73 print("=" * 50)