Import an existing Hermes/OpenClaw skill into your PraisonAI project:
from praisonaiagents import Agentfrom praisonaiagents.skills import discover_skills# Discover skills from custom directoryskills = discover_skills(["/path/to/hermes-skills"])agent = Agent( name="SkillAgent", instructions="Use imported skills to help users", skills=skills)agent.start("Process this data using available skills")
2
With Validation
Validate and safely import skills with error handling:
from praisonaiagents import Agentfrom praisonaiagents.skills import validate, load_skill# Validate skill before importskill_path = "/path/to/hermes-skills/data-processor"errors = validate(skill_path)if not errors: skill = load_skill("data-processor", ["/path/to/hermes-skills"]) agent = Agent( name="ValidatedAgent", instructions="Use validated skills only", skills=[skill] if skill else [] )else: print(f"Skill validation failed: {errors}")
# Good: Namespaced skill names"hermes/data-processor""openclaw/file-manager""custom/my-skill"# Bad: Generic names that conflict"processor""manager""skill"
Security Isolation
Review and sanitize script execution:
from praisonaiagents.skills import validate# Always validate before importingdef safe_import(skill_path: str) -> bool: errors = validate(skill_path) if errors: print(f"Security issues: {errors}") return False # Additional security checks security_issues = security_review(skill_path) if security_issues: print(f"Security review failed: {security_issues}") return False return True
Version Management
Track skill versions and compatibility:
# Include version in skill metadatametadata = { "source": "hermes", "version": "1.2.0", "compatibility": "praisonai>=0.1.0", "imported_at": "2024-01-15T10:30:00Z"}
Testing Integration
Test skills in isolation before deployment:
def test_imported_skill(skill_name: str) -> bool: """Test imported skill functionality.""" skill = load_skill(skill_name) if not skill: return False # Create test agent test_agent = Agent( name="TestAgent", skills=[skill], instructions="Test the imported skill" ) # Run test cases test_result = test_agent.start("Execute test scenario") return "error" not in test_result.lower()