mirror of
https://github.com/MervinPraison/PraisonAI.git
synced 2026-11-07 12:47:55 -10:00
* fix(examples): resolve syntax errors and align with consolidated-params API * fix: correct TypeError in 3 example files by using proper parameter names - Fix MemoryConfig(memory=...) → user_id=... in agent_centric_api.py - Fix Session(memory=...) → user_id=... in session-example.py - Fix build_context_for_task(memory=...) → user_id=... in memory-quality-example.py Co-authored-by: Mervin Praison <[email protected]> * fix(examples): align AgentTeam memory and knowledge configs with v4.6.52 API * fix(examples): phase-3 API alignment for consolidated params on v4.6.52 * fix(examples): phase-4 API alignment for 40 validation failures on v4.6.52 * fix: resolve critical RouterAgent **kwargs bug and add missing if __name__ guards - Fixed TypeError in RouterAgent._build_system_prompt() by removing **kwargs from super() call - Added if __name__ == '__main__' guards to 6 example files to prevent auto-execution on import - Addresses Gemini Code Assist review feedback Co-authored-by: Mervin Praison <[email protected]> * fix: resolve missing AgentTeam import and RouterAgent kwargs forwarding - Fix missing AgentTeam import in self-reflection-optimization-patterns.py - Forward kwargs properly in RouterAgent._build_system_prompt to super() - Addresses critical issues identified by Gemini code reviewer Co-authored-by: Mervin Praison <[email protected]> * fix(examples): remove merge-conflict residue for PR #1893 --------- Co-authored-by: Dhivya-Bharathy <[email protected]> Co-authored-by: praisonai-triage-agent[bot] <272766704+praisonai-triage-agent[bot]@users.noreply.github.com> Co-authored-by: Mervin Praison <[email protected]> Co-authored-by: Mervin Praison <[email protected]>
74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
"""
|
|
Basic Agent Skills Usage Example
|
|
|
|
This example demonstrates how to use Agent Skills with PraisonAI Agents.
|
|
Skills are modular capabilities that can be loaded and used by agents.
|
|
"""
|
|
|
|
from praisonaiagents import Agent, SkillManager
|
|
|
|
# Example 1: Using SkillManager directly
|
|
print("=" * 50)
|
|
print("Example 1: Using SkillManager directly")
|
|
print("=" * 50)
|
|
|
|
# Create a skill manager
|
|
manager = SkillManager()
|
|
|
|
# Discover skills from a directory
|
|
# This scans the directory for subdirectories containing SKILL.md files
|
|
skill_count = manager.discover(["./pdf-processing"], include_defaults=False)
|
|
print(f"Discovered {skill_count} skill(s)")
|
|
|
|
# List available skills
|
|
for skill in manager:
|
|
print(f" - {skill.properties.name}: {skill.properties.description[:50]}...")
|
|
|
|
# Generate prompt XML for system prompt injection
|
|
prompt_xml = manager.to_prompt()
|
|
print("\nGenerated prompt XML:")
|
|
print(prompt_xml)
|
|
|
|
# Example 2: Using skills with an Agent
|
|
print("\n" + "=" * 50)
|
|
print("Example 2: Using skills with an Agent")
|
|
print("=" * 50)
|
|
|
|
# Create an agent with skills
|
|
# Skills are lazy-loaded only when accessed
|
|
agent = Agent(
|
|
name="PDF Assistant",
|
|
instructions="You are a helpful assistant that can process PDF documents.",
|
|
skills=["./pdf-processing"], # Direct skill paths
|
|
)
|
|
|
|
# Access the skill manager through the agent
|
|
if agent.skill_manager:
|
|
print(f"Agent has {len(agent.skill_manager)} skill(s) loaded")
|
|
|
|
# Get the skills prompt for system prompt injection
|
|
skills_prompt = agent.get_skills_prompt()
|
|
print("\nAgent skills prompt:")
|
|
print(skills_prompt)
|
|
|
|
# Example 3: Discovering skills from multiple directories
|
|
print("\n" + "=" * 50)
|
|
print("Example 3: Using skills_dirs for discovery")
|
|
print("=" * 50)
|
|
|
|
# Create an agent that discovers skills from directories
|
|
agent_with_discovery = Agent(
|
|
name="Multi-Skill Agent",
|
|
instructions="You are a versatile assistant with multiple skills.",
|
|
skills=["./"], # Scan current directory for skill subdirectories
|
|
)
|
|
|
|
if agent_with_discovery.skill_manager:
|
|
print(f"Discovered {len(agent_with_discovery.skill_manager)} skill(s)")
|
|
for name in agent_with_discovery.skill_manager.skill_names:
|
|
print(f" - {name}")
|
|
|
|
print("\n" + "=" * 50)
|
|
print("Examples complete!")
|
|
print("=" * 50)
|