Design Principles
The skill SDK is designed to be pythonic—you should be able to read a skill and immediately understand what it does.1. The Agent Reads Your Code
The AI agent understands your skill through its Python signature:execute(target: str, speed: float = 0.5) and knows exactly how to call your skill. Type hints matter—they’re your API contract with the AI.
2. One-Line Declarations
Dependencies are declared as class attributes, not boilerplate in__init__:
3. Direct Access
Once declared, use your dependencies as normal Python attributes:The Skill Class
Every code-defined skill extendsSkill and implements these methods:
| Method | Purpose |
|---|---|
| name | Unique identifier the agent uses to call this skill. |
| guidelines() | Natural language instructions for when and how to use the skill. |
| execute() | The actual behavior. The signature defines the skill parameters. |
| cancel() | Clean shutdown when the user or agent interrupts. |
Skill Results
Return a tuple of(message, status) from execute():
| Status | Meaning |
|---|---|
| SUCCESS | Skill completed its task. |
| FAILURE | Something went wrong. |
| CANCELLED | Skill was interrupted via cancel(). |
Feedback
Send progress updates during long-running skills. The agent reads feedback in real-time and can act on it—for example, canceling the skill or triggering another one immediately:Next Steps
- Navigation Interfaces — Mobility control, rotation, velocity commands
- Body Control Interfaces — Arm manipulation, head movement, IK
- Robot State — Camera, odometry, map, sensor data
- Physical Skill Examples — Full-body behaviors combining navigation + manipulation
- Digital Skills — APIs, email, web services

