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

# Скиллы

## Skills в OpenClaw

Skills в OpenClaw — это механизм **инъекции знаний и инструкций** в системный промпт агента. По сути, это способ научить LLM-агента пользоваться конкретными инструментами, не хардкодя логику, а подкладывая ему контекстуальные инструкции в рантайме.

### Как это устроено

Каждый skill — это директория, содержащая файл `SKILL.md` с YAML-frontmatter и текстовыми инструкциями. OpenClaw загружает встроенные (bundled) скиллы плюс опциональные локальные переопределения, и фильтрует их на этапе загрузки в зависимости от окружения, конфигурации и наличия нужных бинарников.

Формат совместим со спецификацией **AgentSkills** (agentskills.io) — это открытый стандарт описания навыков для агентов.

Минимальный `SKILL.md` выглядит так:

```text theme={null}
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
---
(далее — текстовые инструкции для модели)
```

### Приоритет загрузки (precedence)

Скиллы загружаются из трёх мест: bundled skills (поставляются с инсталляцией), managed/local skills (`~/.openclaw/skills`) и workspace skills (`<workspace>/skills`). При конфликте имён приоритет: workspace (высший) → managed/local → bundled (низший).

Это классическая схема override, аналогичная тому, как работают конфиги в большинстве систем — позволяет пропатчить или заменить встроенный скилл, не трогая исходный пакет.

### Gating — фильтрация на этапе загрузки

Это, пожалуй, самая интересная часть с инженерной точки зрения. OpenClaw фильтрует скиллы на этапе загрузки, используя поле `metadata` (однострочный JSON) внутри frontmatter. Можно задать условия:

* `requires.bins` — список бинарников, которые должны быть в `PATH`
* `requires.env` — переменные окружения (например, API-ключи)
* `requires.config` — пути в `openclaw.json`, которые должны быть truthy
* `os` — ограничение по ОС (`darwin`, `linux`, `win32`)
* `always: true` — всегда включать скилл, игнорируя остальные гейты

Это позволяет делать conditional prompt engineering — модель получает только те инструкции, которые она реально может выполнить в текущем окружении. Нет смысла инжектить инструкции по работе с `ffmpeg`, если его нет в контейнере.

### Инъекция окружения и изоляция

Когда запускается агентский ран, OpenClaw читает метаданные скиллов, применяет `env` и `apiKey` из конфига к `process.env`, собирает системный промпт с eligible-скиллами, и восстанавливает оригинальное окружение после завершения рана. То есть секреты инжектятся **скоупленно** на время одного вызова агента — это не глобальные переменные шелла.

### Token impact

Базовый оверхед при наличии хотя бы одного скилла — 195 символов. На каждый скилл дополнительно тратится примерно 97 символов плюс длина escaped-полей name, description и location. Грубая оценка — \~24 токена на скилл только на «обёртку», плюс сами инструкции внутри. Это важно учитывать для бюджета контекстного окна, особенно если скиллов много.

### Session snapshot и hot reload

OpenClaw делает снимок eligible-скиллов при старте сессии и переиспользует этот список для последующих ходов в рамках одной сессии. При этом есть skills watcher, который мониторит изменения в `SKILL.md` и обновляет снимок — по сути, hot reload без перезапуска сессии.

### Мультиагентность

В мультиагентных сетапах у каждого агента свой workspace, то есть per-agent скиллы живут в `<workspace>/skills` конкретного агента, а shared скиллы в `~/.openclaw/skills` видны всем агентам на машине.
