Skills
Skills are reusable prompt fragments that any agent can invoke with /skill-name. They keep agent definitions short and shared knowledge centralized.
A skill is a named, reusable bundle of instructions, examples, and tool hints that an agent loads on demand. Skills live in skills/{name} and are invoked inside an agent's task or message with /skill-name.
Why skills exist
Agents tend to grow long system prompts over time as you encode more rules. Skills move that knowledge out of the agent record and into stand-alone, versioned units. The agent's system prompt stays focused on its persona; the operational know-how lives in skills it pulls in only when needed.
Anatomy of a skill
interface Skill {
name: string; // slug, also the slash-command (e.g. "draft-reply")
description: string; // one-line summary
content: string; // markdown body the agent reads when invoked
examples?: string[]; // optional few-shot examples
tools?: string[]; // tools this skill expects to be available
triggers?: string[]; // patterns that auto-invoke the skill
}Invocation
Three ways a skill gets pulled in:
- Explicit — the agent message contains
/draft-reply, which expands the skill body into the conversation. - Suggested — the agent decides on its own to invoke a skill based on its
triggers. - Pre-loaded — an agent's
skillsarray always loads the listed skills' descriptions at run start.
Authoring skills
Edit skills directly in the dashboard (Skills → New Skill or click an existing one) or seed them from packages/cli/src/seeds/data/skills/. Seeding is preferred for skills that should live in source control.