AgentsSkills

claude_skills

View as MarkdownOpen in Claude

Load Claude Code-style SKILL.md files as agent tools. Each SKILL.md file in the configured directory becomes a SWAIG function, with YAML frontmatter parsed for metadata.

Tools: Dynamically created from SKILL.md files

Requirements: PyYAML

Multi-instance: Yes

skills_path
strRequired

Path to the directory containing Claude skill folders. Each subfolder must contain a SKILL.md file.

include
listDefaults to ["*"]

Glob patterns for skill folder names to include.

exclude
listDefaults to []

Glob patterns for skill folder names to exclude.

tool_prefix
strDefaults to claude_

Prefix for generated function names. Use an empty string for no prefix.

prompt_title
strDefaults to Claude Skills

Title for the prompt section that lists available skills.

prompt_intro
strDefaults to You have access to specialized skills. Call the appropriate tool when the user's question matches:

Introductory text for the prompt section.

skill_descriptions
dictDefaults to {}

Override descriptions for specific skills. Keys are skill names, values are description strings.

response_prefix
str

Text to prepend to skill results.

response_postfix
str

Text to append to skill results.

allow_shell_injection
boolDefaults to False

Enable shell command preprocessing in skill bodies. Security warning: allows arbitrary shell execution.

allow_script_execution
boolDefaults to False

Discover and list scripts/ and assets/ files in prompt sections.

ignore_invocation_control
boolDefaults to False

Override disable-model-invocation and user-invocable frontmatter flags. When True, all discovered skills are registered regardless of invocation control.

shell_timeout
intDefaults to 30

Timeout in seconds for shell injection commands.

1from signalwire import AgentBase
2
3class MyAgent(AgentBase):
4 def __init__(self):
5 super().__init__(name="assistant", route="/assistant")
6 self.set_prompt_text("You are a helpful assistant.")
7 self.add_skill("claude_skills", {
8 "skills_path": "/path/to/skills/directory",
9 "tool_prefix": "skill_"
10 })
11
12agent = MyAgent()
13agent.serve()