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
descriptiona 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
bodyself-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 theh/ 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 byname 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.