> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# add_skill

> Load and activate a skill on the agent.

[list-skills]: /docs/server-sdks/reference/python/agents/agent-base/list-skills

[skills-catalog]: /docs/server-sdks/reference/python/agents/skills

[ref-agentbase]: /docs/server-sdks/reference/python/agents/agent-base

Load and activate a skill on this agent. Skills are pluggable capability modules that
register their own tools, prompts, and configuration. The SDK ships with built-in
skills for common tasks like `datetime`, `web_search`, and `math`.

Raises `ValueError` if the skill is not found or fails to load. Use
[`list_skills()`][list-skills] to see currently loaded skills, or consult the
[skills catalog][skills-catalog] for all available built-in skills.

## **Parameters**

Registered skill name (e.g., `"datetime"`, `"web_search"`, `"math"`).

Skill-specific configuration parameters. Each skill documents its own supported
parameters.

## **Returns**

[`AgentBase`][ref-agentbase] -- Returns self for method chaining.

## **Examples**

### Add built-in skills

```python {5-6}
from signalwire import AgentBase

agent = AgentBase(name="assistant", route="/assistant")
agent.set_prompt_text("You are a helpful assistant.")
agent.add_skill("datetime")
agent.add_skill("math")
agent.serve()
```

### Skill with configuration

```python {5}
from signalwire import AgentBase

agent = AgentBase(name="assistant", route="/assistant")
agent.set_prompt_text("You are a helpful assistant.")
agent.add_skill("web_search", params={
    "api_key": "your-search-api-key",
    "max_results": 5
})
agent.serve()
```