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

# Skills

> Read and write the procedures an agent loads on demand.

A skill is a written procedure the agent loads when the task matches its description. It is a folder: a markdown body plus optional reference files. See [Skills](/agents/skills) for the concept.

## list\_skills

<ParamField body="agentId" type="string" required />

Returns each skill with its `slug`, `name`, `description` and the list of reference `files` it carries.

## get\_skill

Reads one skill in full: its body and its reference files.

<ParamField body="agentId" type="string" required />

<ParamField body="slug" type="string" required />

## upsert\_skill

Creates a skill, or replaces the one with the same name.

<ParamField body="agentId" type="string" required />

<ParamField body="name" type="string" required>
  The skill name. The slug is derived from it.
</ParamField>

<ParamField body="body" type="string" required>
  The procedure, in markdown.
</ParamField>

<ParamField body="description" type="string">
  What makes the agent decide to load this skill, so state when to use it. This is the only line the agent sees before opening the skill.
</ParamField>

<ParamField body="slug" type="string">
  The existing skill to update, when the name is changing too. Without it, a new name creates a second skill.
</ParamField>

<ParamField body="files" type="object[]">
  Reference documents the body can point to, which keeps the body short. Each entry needs `path` and `content`. Files already on the skill and not listed again are kept.
</ParamField>

```json Request arguments theme={"system"}
{
  "agentId": "…",
  "name": "Weekly report",
  "description": "Use when asked for the weekly numbers, on Monday or on demand.",
  "body": "1. Query the `sales` table for the last 7 days\n2. Follow `references/format.md`\n3. Send the report to the shared space",
  "files": [{ "path": "references/format.md", "content": "# Report format\n…" }]
}
```

The whole skill is written in one atomic swap. If the call fails, nothing changed.

## delete\_skill

Deletes a skill and its reference files.

<ParamField body="agentId" type="string" required />

<ParamField body="slug" type="string" required />

<ParamField body="confirm" type="boolean" required>
  Must be `true`.
</ParamField>
