Skip to main content
Skills are reusable, filesystem-based resources that give your agent domain-specific expertise: workflows, context, and best practices that turn a general-purpose agent into a specialist in your product. Unlike the system prompt (always in context) or user messages (one-off instructions), skills load on demand — the agent reads a skill when the task calls for it, so skills don’t consume context until they’re needed.

Attach skills to a deployment

Attach skills when creating a deployment. A deployment supports up to 20 skills. Each entry in the skills array uses the following fields:
FieldDescription
nameRequired. Unique skill name within the deployment
sourceRequired. Where the skill is loaded from: file, inline, or url
pathfile source only. Path to a SKILL.md in the deployment’s workspace
contentinline source only. The skill markdown provided directly in the request
urlurl source only. A public URL to a SKILL.md you update independently
const deployment = await herm.deployments.create({
  customer_id: "cus_123",
  name: "Acme Creative Agent",
  system_prompt: "You are Acme's media generation agent.",
  skills: [
    {
      name: "ugc-video-creation",
      source: "file",
      path: ".prism/skills/ugc-video-creation/SKILL.md",
    },
    {
      name: "storyboarding",
      source: "inline",
      content:
        "---\nname: storyboarding\ndescription: Create shot-by-shot storyboards for short-form videos\n---\n# Storyboarding\n...",
    },
    {
      name: "social-media-visual-effects",
      source: "url",
      url: "https://example.com/skills/social-media-visual-effects/SKILL.md",
    },
  ],
});
A skill that can’t be fetched or parsed fails the request with invalid_skill. Skills can also be added, updated, and removed on a live deployment with the Skills API — changes apply to the agent’s next run.

Skill format

A skill is a SKILL.md file with frontmatter and instructions:
---
name: storyboarding
description: Create shot-by-shot storyboards for short-form videos
---

# Storyboarding

When the user asks for a storyboard:

1. Establish the video's goal, audience, and length.
2. Break the video into 3–8 shots. For each shot, specify
   duration, framing, on-screen text, and audio.
3. Save the storyboard to `storyboard.md` in the workspace.
4. Offer to generate a reference image for any shot.
The description matters: it’s how the agent decides which skill applies to the task at hand without loading the full skill into context.

Skill authoring best practices

  • One procedure per skill. “Storyboarding” and “UGC video creation” are two skills, not one.
  • Write for an operator, not a reader. Numbered steps, concrete file paths, explicit output formats.
  • Let the agent finish in the workspace. End skills with where to save the result, so outputs persist across sessions.
  • Don’t duplicate the system prompt. Identity and tone belong in system_prompt; procedures belong in skills.

Skills and self-learning

Skills set the floor, not the ceiling. With memory and dreaming enabled, agents refine how they apply your skills per customer over time — corrections a customer makes today shape how the skill runs tomorrow.