Skip to content

Create a local skill

POST
/api/v1/world/skills
curl --request POST \
--url http://localhost:11044/api/v1/world/skills \
--header 'Content-Type: application/json' \
--header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>' \
--data '{ "description": "example", "instructions": "example", "name": "example" }'

Creates a new local skill with a SKILL.md following the Agent Skills Specification.

The skill to write to config/skills/local/<name>/SKILL.md: name (1-64 lowercase letters, digits and hyphens, not starting or ending with a hyphen; it becomes the directory name), description (at most 1024 characters, written into the frontmatter) and instructions (the markdown body). The world is refreshed on success; an existing skill of that name answers 409, an invalid name or over-long description 400

Media typeapplication/json

Body of POST /world/skills: a new local skill, written as a SKILL.md following the Agent Skills Specification

object
description
required

What the skill does and when to use it, at most 1024 characters; the SKILL.md front matter’s description

string
instructions
required

Markdown instructions the assistant follows when using the skill; the SKILL.md body

string
name
required

Skill name and directory: 1-64 lowercase letters, digits and hyphens, not starting or ending with a hyphen, e.g. research-helper

string

Example generated

{
"description": "example",
"instructions": "example",
"name": "example"
}

Skill created

Media type*/*
object
key
additional properties
string

Invalid input

Media type*/*

A refusal from the world administration surface: what went wrong, and the word error so a client reading the body need not consult the status code

object
message
required

What was refused and why, written to be shown. Names the offending value where there is one — the unknown mode, the out-of-range threshold, the invalid cron expression

string
status
required

Always error. Present because the map this replaces carried it and a consumer may branch on it

string

Example

error

Skill already exists

Media type*/*

A refusal from the world administration surface: what went wrong, and the word error so a client reading the body need not consult the status code

object
message
required

What was refused and why, written to be shown. Names the offending value where there is one — the unknown mode, the out-of-range threshold, the invalid cron expression

string
status
required

Always error. Present because the map this replaces carried it and a consumer may branch on it

string

Example

error