# Agents and skills

> Create the agent that answers in your app, write its instructions, pick its model, and give it skills, databases and knowledge bases.

An agent is what answers in your app: its instructions, its model, and the skills, databases and knowledge bases it may use. Every member can chat with it in the dashboard, and a project's end users reach it through the panel. This page covers the **Agents** and **Skills** pages of the dashboard.

## Create an agent

On **Agents**, press **New agent**, or [install a template](https://superassist.app/dashboard/templates.md) to start from a finished one.

- **Name**: lowercase letters, numbers and hyphens, up to 64 characters. Spaces become hyphens.
- **Description**: one line shown in the agents list.
- **Instructions**: what the agent is for and how it behaves. They are a Liquid template filled in at every turn, so `{{ organization.name }}` prints your organization's name. **Start from a template**, beside the label, pastes one of three starters: General assistant, Customer support or Data analyst.
- **Provider** and **Model**: Vercel AI Gateway with its catalog, or Workers AI. **Thinking before each reply** applies to the Anthropic and OpenAI models the catalog tags as reasoning, and is ignored elsewhere.

Then add what the agent may use. It reads every database you add and writes only where **Allow writes** is on. It searches every knowledge base you add. Press **Create agent**.

### What the instructions can print

| Variable            | Prints                                     |
| ------------------- | ------------------------------------------ |
| `today`             | The date in UTC, like `Monday 2026-10-05`  |
| `agent.name`        | The agent's name, with `agent.description` |
| `organization.name` | Your organization's name                   |
| `skills`            | Each skill's `name` and `description`      |
| `databases`         | Each database's `name` and `writable`      |

A missing variable prints nothing. An instructions template that doesn't parse is refused, with the line that failed.

### What every agent already has

Four rules close every prompt, whatever the instructions say, so you don't write them: answer only from the instructions, the knowledge bases, the open page and tool results; one step at a time; claim an action done only when a tool call completed it; and say what a handoff or a consequential page action will do and wait for a yes. Every thread also has the `handoff` tool. See [Handoffs](https://superassist.app/dashboard/handoffs.md).

## Try the agent

The agent's page opens on **Chat**, the same panel your app shows, with your threads on the side. A member's test chat may pick another model and can fetch URLs, which an end user's thread can't. Test chats aren't counted in a project's conversations.

**Editor** holds the form above. On extra-large screens, **Configuration** lists the skills, databases, knowledge bases and rendered instructions beside the chat.

## Saving reaches running threads

Pressing **Save changes** sends the agent's configuration to every thread, members' and end users' alike. The model, tools, skills and thinking level apply from the next turn. Changed instructions arrive as a reminder on the thread's next message.

The configuration carries a copy of each skill's text, so a skill you edit reaches an agent on that agent's next save. Open the agent and press **Save changes** after editing its skills.

## Write a skill

A skill is a procedure every agent of the organization can read. The prompt lists each of the agent's skills by name and description on every turn; the agent loads a skill's instructions only when its description fits the request. So the description decides when the skill is used, and the instructions what it does.

On **Skills**, press **New skill**:

- **Name**: the same rule as an agent's.
- **What**, **Use when** and **Not for**: one sentence each. They save together as the skill's description, one labelled line each, up to 1024 characters. **Not for** keeps the agent from loading the skill on a request that only looks like a fit; name the neighbouring skill or the agent's own job there.
- **Instructions**: Markdown. Say when the skill applies, then the steps. Plain text, not Liquid.

Then add the skill to an agent on its editor's **Skills** group. Through the API, write the three lines into `description` yourself:

```text
What: Reviews a pull request against the team checklist.
Use when: Asked to review a pull request, a diff or a branch.
Not for: Writing the fix or reviewing a design doc.
```

The nine skills of the [SaaS support template](https://superassist.app/dashboard/templates.md) are worked examples.

## Databases

A database is the organization's own SQLite store. Create one on **Databases**, then shape its tables in the explorer or with the query API. An agent with a database gets two tools: one returns its schema, and one runs a single statement. A statement that writes to a database the agent may only read is rolled back. The Free plan includes 3 databases and the Pro plan 25.
