Custom Skills
Custom skills are reusable playbooks: markdown SKILL.md files an agent loads on demand when a task matches. Each is a short description (when to use it) plus a markdown body (the steps). The agent sees every visible skill's name + description and pulls in the full body only when it's relevant, so you can teach a repeatable workflow once and have it apply across runs.
How skills work
- You author a skill via the API/SDK (or an agent authors one itself during a run)
- At the start of each run, the skills visible to that agent are materialized into its workspace
- When the task matches a skill's
description, the agent loads thebodyand follows it
A skill created mid-run applies from the next run (skills load at process start), just like memories. v1 is markdown-only. A skill guides the agent; every real tool call it suggests still goes through the normal permission gate.
Scope
A skill is scoped like memory:
- account (default): visible to all your agents.
- teammate: visible to one agent only (pass
scope="teammate"andteammate_id).
When an account skill and an agent-scoped skill share a slug, the agent-scoped one wins for that agent.
Create a skill
The slug (the SKILL.md handle) is derived from name server-side and stays stable across renames. To scope a skill to one agent, pass scope="teammate" and teammate_id:
Manage skills
The slug is immutable; rename, edit the body, disable (stops loading it without deleting), or delete:
The source field is "user" for skills you author, or "agent" for skills an agent authored itself (shown with a "Created by agent" badge in the app).
Per-end-user skills (multi-tenancy)
Pass user_id to scope a skill to one of your end-users. Isolation is strict: an end-user's runs see only that end-user's skills, never your account-level ones. When you pass user_id to get/update/delete, it must match the skill's end-user or you get a 404.
Agent-authored skills (built-in tool)
When an agent notices a workflow it'll need again, it can codify it as a skill mid-run via its built-in create_skill tool: accountable self-improvement, the same shape as saved memories. Agent-authored skills are not auto-approved. In approval mode the owner approves the create_skill call like any tool, and every agent-authored skill is editable, disable-able, and deletable in Settings → Apps (it carries source: "agent"). The skill applies from the agent's next run.
Limits
- Name: max 200 characters
- Description: max 500 characters (this is what tells an agent the skill is relevant; keep it specific and trigger-oriented)
- Body: max 20,000 characters (markdown only in v1, no bundled scripts/assets)
- Per account: max 50 skills per
user_idscope - Scoping: account (all agents) or teammate (one agent); strictly isolated per
user_id
Next: Memories · Custom tools · Users
