Skip to main content
A skill is a named Markdown fragment (an instruction or workflow) that an agent loads during a session when its description matches the task. Use a built-in skill or create your own, then attach it to an agent by name. Exact constraints: Create a skill.

Create and attach a skill

Write effective skills

  • Make the description a trigger. It is all the agent sees before loading, so phrase it as “use when…” and name the situation precisely. Vague descriptions load at the wrong time or never.
  • Keep the body self-contained. The agent reads it cold, mid-task: write a focused procedure (steps, formats, edge cases), not background.
  • Put always-on behavior in the agent’s instructions. Skills are for procedures that apply only some of the time.
  • Compose small skills. Narrow skills route better than one broad one.

Built-in skills

H maintains computer-use skills under the h/ namespace. Attach them to any agent by name. List them with GET /api/v2/skills?name=h/ (List skills), or fetch one with GET /api/v2/skills/h/{skill_name} (Retrieve a skill).

How an agent uses a skill

Attached skills are listed in the system prompt by name and description only (an <available_skills> section, with url_pattern as a hint when set). When a description looks relevant, the agent calls the built-in load_skill tool with that name, and the body enters the conversation as instructions for the next steps. A wrong name returns the closest available names, so the agent can retry. Environments bundle their own skills. Those are always in context, fixed per environment, and not configurable.