> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Skills

> Define reusable instruction sets for your app's AI agents

<div className="dev-docs-banner">
  <div className="dev-docs-banner-content">
    <div className="dev-docs-banner-title">
      You're viewing developer documentation
    </div>

    <div className="dev-docs-banner-text">
      This documentation is for developers working with the Base44 developer platform. For information about adding skills to agents in the app editor, see <a href="/Building-your-app/AI-agents-for-apps">Setting up an AI agent</a>.
    </div>
  </div>
</div>

Agent skills are reusable instruction sets that give your [AI agents](/developers/backend/resources/agents/overview) specific behaviors, expertise, or policies, such as a refund policy or a brand voice. Agent skills are app scoped, so you define them once for your app, then attach any of them to any agent in that app.

<Note>
  These are skills for the agents running inside your app, not the [Base44 skills](/developers/backend/overview/skills) that teach AI coding assistants like Claude and Cursor how to build Base44 apps.
</Note>

## How agents use skills

Each agent selects the skills it needs by name. At runtime, the agent always sees each selected skill's description, and it loads the full instructions on demand only when it decides the skill is relevant. This keeps the agent's prompt small while giving it access to detailed instructions when needed.

You can attach up to 10 skills to a single agent, and an app can hold up to 100 skills in total.

To attach a skill to an agent, add the skill's name to the agent's `selected_skill_names` array:

```jsonc theme={null}
{
  "name": "customer_support",
  "description": "Handles customer support inquiries and ticket management",
  "instructions": "You are a friendly customer support agent.",
  "model": "anthropic/claude-sonnet-4-20250514",
  "selected_skill_names": ["refund-policy", "brand-voice"],
}
```

## Defining agent skills locally

Each skill is a single Markdown file in your `base44/agent-skills/` directory. The filename, without the `.md` extension, is the skill name. The YAML frontmatter holds the skill's `description`, and the body holds the instructions the agent follows when it uses the skill. For example:

```markdown theme={null}
---
description: How to handle refund requests and exceptions
---

When a customer asks for a refund, first check whether the order is within
the 30 day return window. If it is, approve the refund. If it is outside the
window, explain the policy politely and offer store credit instead.
```

Skill names must be lowercase and use hyphens to separate words, for example `refund-policy`. Descriptions can be up to 1024 characters, and instruction bodies up to 15000 characters.

<Tip>
  By default, skills live in `base44/agent-skills/`. You can customize the path with `agentSkillsDir` in your [project configuration](/developers/backend/overview/project-structure#config-jsonc).
</Tip>

## Deploy agent skills

Deploy agent skills with [`agent-skills push`](/developers/references/cli/commands/agent-skills-push) or [`deploy`](/developers/references/cli/commands/deploy) to push all project resources at once.

To download agent skills to your local project, use [`agent-skills pull`](/developers/references/cli/commands/agent-skills-pull).

## See also

* [`agent-skills push`](/developers/references/cli/commands/agent-skills-push): Push your local agent skills to Base44
* [`agent-skills pull`](/developers/references/cli/commands/agent-skills-pull): Sync agent skills from Base44 to your local project
* [About Agents](/developers/backend/resources/agents/overview): Configure the agents that use these skills
