Skip to main content

Overview

Add skills to OpenViking to extend agent capabilities. Skills can be provided as directories, files, strings, or structured data.
Skills are different from resources. Skills define agent capabilities (tools, actions, workflows), while resources contain knowledge (documents, code, media).

Method Signature

Parameters

any
required
Skill data in one of the following formats:
  • Directory path: Path to a directory containing skill definition
  • File path: Path to a skill file (Python, JSON, YAML)
  • String: Skill definition as a string
  • Dictionary: Structured skill data
boolean
default:"false"
Wait for vectorization and processing to complete before returning
float
Timeout in seconds when wait=True

Response

string
required
Either “success” or “error”
string
Viking URI where the skill was stored (e.g., viking://skills/my-skill/)
array
List of errors encountered during processing (if any)
object
Queue processing status (only present when wait=True)

Examples

Add Skill from Directory

Add Skill from File

Add Skill from Dictionary

Add Multiple Skills

Response Example

Skill Structure

A typical skill directory structure:

skill.yaml Example

Processing

When you add a skill:
  1. Validation: Skill structure and syntax are validated
  2. Storage: Skill is stored in viking://skills/ scope
  3. Indexing: Skill documentation is indexed for semantic search
  4. Registration: Skill becomes available to agents
Use wait=True to ensure the skill is fully processed before agents try to use it.