Get Started

Skills

Packaged capabilities the model reaches for only when relevant. A skill uses progressive disclosure: only its short description is always in context; the full instructions load only when the model decides to use it. Keeps prompts small while giving agents deep, on-demand know-how.

The description is load-bearing — it's the runtime gate the model reads to decide whether to use the skill. Write it as "Use this when…". (Contrast an Instruction, whose text is always applied.)

Create a skill

import { Theazo } from 'theazo'

const theazo = new Theazo({ apiKey: process.env.THEAZO_API_KEY })

const skill = await theazo.skills.create({
  name: 'Refund processor',
  description: 'Use when a customer asks for a refund or return.', // the gate
  instructions: 'Verify the order is within 30 days, then call issue_refund with the order id.',
  toolIds: ['tool_issue_refund'],
})
FieldTypeRequiredDescription
namestringyesHuman label, unique within (platform, kind).
descriptionstringyesThe runtime gate — tells the model WHEN to use this skill. Required.
enabledbooleanDefault true.
instructionsstringyesWhat to do once invoked (loaded on use).
toolIdsstring[]Tool/MCP ids this skill may call. Default [].

Attach it to an agent

await theazo.agents.attach(agentDefinitionId, {
  customizationId: skill.id,
})

How it runs

Each attached skill is advertised to the model as a lightweight tool — just its description, so it costs almost nothing to keep in context. When the model decides the skill is relevant and calls it, its instructions are returned and loaded into the conversation. That's the "progressive disclosure": cheap to advertise, full detail only on use.

In the current release, a skill's toolIds are informational — the listed tools are available to the agent but access isn't yet scoped to only that skill. Scoping is planned.

SDK methods

theazo.skills.create(opts)SkillCreate a skill.
theazo.skills.list()Skill[]List all skills on the platform.
theazo.skills.get(id)SkillFetch one by id.
theazo.skills.update(id, opts)SkillUpdate description, instructions, or tools.
theazo.skills.delete(id)voidDelete. Blocked (409) if still attached.

See also: Instructions, Tools, Hooks.

Was this page helpful?