Skip to main content

Skill System

Skills extend Soul capabilities through a plugin architecture, enabling vision, voice, actuators, and custom behaviors.

Overview

The Skill System allows Souls to:
  • Load capabilities dynamically
  • Execute skills in isolated contexts
  • Share data between skills safely
  • Update skills without kernel changes

Architecture

Skill ABI (Application Binary Interface)

Capability Types

Input/Output Types

Error Handling

Creating a Skill

1. Basic Skill Structure

2. Skill Cargo.toml

3. Building & Loading

Skill Registry

The Soul Kernel provides a thread-safe skill registry for managing loaded skills:

Built-in Example Skills

1. Hello Skill

Basic greeting skill demonstrating text processing.

2. Echo Skill

Multi-format skill that echoes any input type:

Skill Development Best Practices

  1. Thread Safety - Skills must be Send + Sync
  2. Error Handling - Never panic, return proper errors
  3. Resource Management - Use initialize() and shutdown()
  4. Clear Capabilities - Declare what your skill can do
  5. Version Carefully - Use semantic versioning

Security Considerations

  • Skills run in the same process (sandboxing planned for future)
  • Validate all inputs before processing
  • Be careful with file system and network access
  • Sign skills for authenticity (future feature)

Advanced Topics

Direct Skill Registration

For built-in skills that don’t need dynamic loading:

Action Commands

Skills can return commands for physical actuators:

Skill Composition (Future)

Next Steps

Change Log

  • 2025-06-12: Updated to reflect actual Skill ABI V1 implementation from Story-2
    • Added complete trait definition with Send + Sync bounds
    • Updated capability types to match implementation
    • Added ActionCommand for actuator control
    • Updated code examples to use actual API
    • Added skill registry usage examples
    • Clarified FFI-safe implementation details