/ examples / skills / basic_skill_usage.py
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)