Skills

Skills are knowledge packages that enable agents to execute code and generate files in isolated sandbox environments. Unlike external tools (which you implement in your backend), skills are self-contained packages with documentation and scripts that run in secure sandboxes.

Overview

Octavus Skills provide provider-agnostic code execution. They work with any LLM provider (Anthropic, OpenAI, Google) by using explicit tool calls and system prompt injection.

How Skills Work

  1. Skill Definition: Skills are defined in the protocol's skills: section
  2. Skill Resolution: Skills are resolved from available sources (see below)
  3. Sandbox Execution: When a skill is used, code runs in an isolated sandbox environment
  4. File Generation: Files saved to /output/ are automatically captured and made available for download

Skill Sources

Skills come from two sources, visible in the Skills tab of your organization:

SourceBadge in UIVisibilityExample
OctavusOctavusAvailable to all organizationsqr-code
CustomNonePrivate to your organizationmy-company-skill

When you reference a skill in your protocol, Octavus resolves it from your available skills. If you create a custom skill with the same name as an Octavus skill, your custom skill takes precedence.

Defining Skills

Define skills in the protocol's skills: section:

yaml

Skill Fields

FieldRequiredDescription
displayNoHow to show in UI: hidden, name, description, stream (default: description)
descriptionNoCustom description shown to users (overrides skill's built-in description)

Display Modes

ModeBehavior
hiddenSkill usage not shown to users
nameShows skill name while executing
descriptionShows description while executing (default)
streamStreams progress if available

Enabling Skills

After defining skills in the skills: section, specify which skills are available for the chat thread in agent.skills:

yaml

Skill Tools

When skills are enabled, the LLM has access to these tools:

ToolPurpose
octavus_skill_readRead skill documentation (SKILL.md)
octavus_skill_listList available scripts in a skill
octavus_skill_runExecute a pre-built script from a skill
octavus_code_runExecute arbitrary Python/Bash code
octavus_file_writeCreate files in the sandbox
octavus_file_readRead files from the sandbox

The LLM learns about available skills through system prompt injection and can use these tools to interact with skills.

Example: QR Code Generation

yaml

When a user asks "Create a QR code for octavus.ai", the LLM will:

  1. Recognize the task matches the qr-code skill
  2. Call octavus_skill_read to learn how to use the skill
  3. Execute code (via octavus_code_run or octavus_skill_run) to generate the QR code
  4. Save the image to /output/ in the sandbox
  5. The file is automatically captured and made available for download

File Output

Files saved to /output/ in the sandbox are automatically:

  1. Captured after code execution
  2. Uploaded to S3 storage
  3. Made available via presigned URLs
  4. Included in the message as file parts

Files persist across page refreshes and are stored in the session's message history.

Skill Format

Skills follow the Agent Skills open standard:

  • SKILL.md - Required skill documentation with YAML frontmatter
  • scripts/ - Optional executable code (Python/Bash)
  • references/ - Optional documentation loaded as needed
  • assets/ - Optional files used in outputs (templates, images)

SKILL.md Format

yaml

Scripts Reference

scripts/generate.py

Main script for generating QR codes...

text

2. When to Use Skills vs Tools

Use Skills WhenUse Tools When
Code execution neededSimple API calls
File generationDatabase queries
Complex calculationsExternal service integration
Data processingAuthentication required
Provider-agnostic neededBackend-specific logic

3. Skill Selection

Define all skills available to this agent in the skills: section. Then specify which skills are available for the chat thread in agent.skills:

yaml

4. Display Modes

Choose appropriate display modes based on user experience:

yaml

Comparison: Skills vs Tools vs Provider Options

FeatureOctavus SkillsExternal ToolsProvider Tools/Skills
ExecutionIsolated sandboxYour backendProvider servers
ProviderAny (agnostic)N/AProvider-specific
Code ExecutionYesNoYes (provider tools)
File OutputYesNoYes (provider skills)
ImplementationSkill packagesYour codeBuilt-in
CostSandbox + LLM APIYour infrastructureIncluded in API

Uploading Custom Skills

You can upload custom skills to your organization:

  1. Create a skill following the Agent Skills format
  2. Package it as a .skill bundle (ZIP file)
  3. Upload via the platform UI
  4. Reference by slug in your protocol
yaml

Security

Skills run in isolated sandbox environments:

  • No network access (unless explicitly configured)
  • No persistent storage (sandbox destroyed after execution)
  • File output only via /output/ directory
  • Time limits enforced (5-minute default timeout)

Next Steps