Quick Example
Creating a Skill
Inline (Instance-Based)
Pass tools and instructions directly:Class-Based (Reusable)
SubclassSkill for configurable, reusable skills with lifecycle hooks:
@tool are auto-discovered — no need to pass them explicitly.
Skill Constructor
str
Skill identifier. Defaults to the class name.
str
Domain expertise text injected into the system prompt. Override
get_instructions() for dynamic content.List[Function]
Explicit list of tool functions. If not provided, tools are auto-discovered from
@tool-decorated methods.Dict[str, Any]
Shared configuration accessible via
self.dependencies in methods and tools.Lifecycle Hooks
Combining Multiple Skills
Skills compose naturally — their tools and instructions are merged:What’s Next
Built-in Skills
8 ready-to-use skills: Calculator, DateTime, Shell, WebSearch, and more.
Skill Registry
Manage large collections of markdown-based skills with eager/lazy loading.