# Skills and Extensibility

**Modular Capabilities**

The core intelligence of Clawd Bot is generic. Its specific powers come from Skills. A Skill is a modular unit of functionality that gives the agent the ability to perform a specific action.

**Anatomy of a Skill**\
A skill consists of two primary components: the Schema and the Handler.

The Schema is a definition file, typically in JSON or YAML format, that describes the skill to the Large Language Model. It includes the name of the function, a natural language description of what it does, and a strict definition of the parameters it accepts. This ensures the AI knows exactly how to invoke the tool.

The Handler is the executable code that performs the logic. This can be written in JavaScript, TypeScript, or Python. It receives the parameters from the agent, executes the logic, and returns a result string.

**The Skill Registry**\
Clawd Bot maintains a registry of available skills. When the application starts, it scans the local skills directory and registers the defined schemas.

**Dynamic Tool Selection**\
To manage context window limits, Clawd Bot does not load every possible skill for every request. It employs a retrieval system to dynamically select the most relevant skills based on the user query. If a user talks about music, the Spotify skill is injected into the context. If the user discusses code, the GitHub and File System skills are prioritized.

This modular architecture allows developers to extend Clawd Bot indefinitely. You can write a skill to control your smart home lights, manage a database, or interact with proprietary internal APIs, simply by defining the schema and the handler code.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clawdtoken.xyz/3-concepts/skills-and-extensibility.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
