Concept guide
OpenClaw skills:
the building blocks of useful agents.
An OpenClaw agent without skills is a chatbot. An OpenClaw agent with the right skills is a coworker. This page covers what skills are, how they're authored, the most common ones you'll use, what Provision ships out of the box, and how to think about adding your own.
What an OpenClaw skill actually is
At its smallest, a skill is a function the agent can call. At its largest, a skill is a multi-step recipe — "build me a competitive matrix," "triage today's inbound," "personalize this outbound for the lead" — that bundles prompt engineering, tool sequencing, and error handling into a single unit. The agent reasons over which skill to invoke and when, the skill handles the multi-step execution.
Conceptually skills sit between two layers. Below them is the tool layer — primitives like "HTTP GET this URL," "render this page," "send this email." Above them is the agent's reasoning layer — the part that decides which skill to use, with what arguments, in what order. Skills are the level where most useful capability gets packaged for reuse.
Each skill has a declared name, description, input schema, and output schema. The agent reads the skill manifest to decide whether to invoke it for a given task. Good skill descriptions are written for the agent (specific, scoped, non-overlapping) — bad ones cause the agent to pick the wrong tool or fail to find the right one.
The skills Provision agents ship with
Out of the box, every Provision agent has access to this set of curated, production-tested skills. You don't configure them — the agent picks the right one based on the task.
Authoring your own skill
The reason most teams want custom skills isn't exotic capabilities — it's connecting agents to internal systems. Your CRM. Your data warehouse. A proprietary scoring model. A billing system. The goal of a custom skill is to wrap one concrete internal capability so your Provision agents can use it the same way they use the built-in ones.
The pattern is: write a small handler that calls your internal API, declare an input/output schema, give it a name and description the agent will read. Upload it through the Provision dashboard. The skill becomes available to your team's agents without redeploys.
Best practices that consistently matter:
- Narrow scope. One skill, one job. \"Get customer record\" beats \"interact with CRM.\"
- Specific descriptions. The agent reads the description to decide when to invoke. \"Get customer by email\" is better than \"customer lookup.\"
- Structured outputs. Return JSON, not free text. The agent uses the structure for follow-up reasoning.
- Idempotent where possible. Skills get retried. Side-effects should be safe to repeat.
- Clear failure modes. Return errors with enough detail for the agent to recover (\"customer not found\" vs \"unauthorized\" vs \"timeout\").
OpenClaw skills vs MCP
These get conflated. The distinction: MCP (Model Context Protocol) is a wire-format protocol for tool/data exposure; skills are the higher-level packaging. An OpenClaw skill can be implemented as an MCP server so other MCP-aware clients can use it. An OpenClaw agent can call out to MCP servers as one of its tool sources. The two layers are complementary, not competing.
The pragmatic rule: if you're building a capability for your team's Provision agents to use, build it as an OpenClaw skill. If you're building a capability you want the broader ecosystem (Cursor, Cline, other agents) to use, expose it through MCP — and optionally wrap it as an OpenClaw skill on the Provision side.
FAQ
Try the curated skill set live.
All Provision agents come with the production-tested skill loadout. Add your own anytime.