---
read_when:
    - Добавление или изменение Skills
    - Изменение ограничений Skills, списков разрешений или правил загрузки
    - Понимание приоритетов навыков и поведения снимков
sidebarTitle: Skills
summary: Skills обучают вашего агента работе с инструментами. Узнайте, как они загружаются, как работает приоритет и как настроить условия доступности, списки разрешений и внедрение переменных окружения.
title: Skills
x-i18n:
    generated_at: "2026-07-13T20:23:11Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 9eb87daab8a10caab2823e35d68293fe306d11a951e8a2b264cbbe3f2c3e8fff
    source_path: tools/skills.md
    workflow: 16
---

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

<CardGroup cols={2}>
  <Card title="Создание навыков" href="/ru/tools/creating-skills" icon="hammer">
    Создайте и протестируйте собственный навык с нуля.
  </Card>
  <Card title="Мастерская навыков" href="/ru/tools/skill-workshop" icon="flask">
    Проверяйте и утверждайте предложения навыков, подготовленные агентом.
  </Card>
  <Card title="Конфигурация навыков" href="/ru/tools/skills-config" icon="gear">
    Полная схема конфигурации `skills.*` и списки разрешённых навыков для агентов.
  </Card>
  <Card title="ClawHub" href="/ru/clawhub" icon="cloud">
    Просматривайте и устанавливайте навыки сообщества.
  </Card>
</CardGroup>

## Порядок загрузки

OpenClaw загружает навыки из следующих источников, **начиная с источника с наивысшим приоритетом**. Если навык с одним и тем же
именем встречается в нескольких местах, используется источник с наивысшим приоритетом.

| Приоритет       | Источник                         | Путь                                    |
| --------------- | -------------------------------- | --------------------------------------- |
| 1 — наивысший   | Навыки рабочей области            | `<workspace>/skills`                    |
| 2               | Навыки агента проекта             | `<workspace>/.agents/skills`            |
| 3               | Личные навыки агента              | `~/.agents/skills`                      |
| 4               | Управляемые / локальные навыки     | `~/.openclaw/skills`                    |
| 5               | Встроенные навыки                  | поставляются вместе с установкой        |
| 6 — наименьший  | Дополнительные каталоги            | `skills.load.extraDirs` + навыки плагинов |

Корневые каталоги навыков поддерживают сгруппированную структуру. OpenClaw обнаруживает навык, если
`SKILL.md` находится в любом месте внутри настроенного корневого каталога (на глубине до 6 уровней):

```text
<workspace>/skills/research/SKILL.md          ✓ найден как "research"
<workspace>/skills/personal/research/SKILL.md ✓ также найден как "research"
```

Путь к папке используется только для организации. Имя навыка и его команда с косой чертой
берутся из поля метаданных `name` (или из имени каталога, если `name`
отсутствует). Списки разрешённых навыков для агентов (см. ниже) также сопоставляются по этому `name`.

<Note>
  Собственный каталог `$CODEX_HOME/skills` в Codex CLI **не** является корневым каталогом навыков
  OpenClaw. Используйте `openclaw migrate plan codex`, чтобы получить список этих навыков, а затем
  `openclaw migrate codex`, чтобы скопировать их в рабочую область OpenClaw.
</Note>

## Навыки, размещённые на Node

Подключённый Node без графического интерфейса может публиковать навыки, установленные в его активном каталоге
навыков OpenClaw (`~/.openclaw/skills` по умолчанию; применяются переопределения окружения
профиля). Они отображаются в обычном списке навыков агента, пока Node подключён,
и исчезают после его отключения. При совпадении имён локальный навык или навык Gateway сохраняет своё имя;
навык Node получает детерминированное имя с префиксом Node.
Для навыков, размещённых на Node, в версии v1 имя каталога должно совпадать с полем метаданных
`name` навыка.

Запись навыка содержит адрес Node. Его файлы, относительные ссылки и
исполняемые файлы находятся на Node, поэтому загружайте и выполняйте его с помощью
`exec host=node node=<node-id>`. После изменения файлов навыка перезапустите хост Node.
Сведения о сопряжении и способах отключения см. в разделе [Node](/ru/nodes#node-hosted-skills).

## Навыки отдельного агента и общие навыки

В конфигурациях с несколькими агентами у каждого агента есть собственная рабочая область. Используйте путь,
соответствующий требуемой области видимости:

| Область               | Путь                         | Кому доступен                            |
| --------------------- | ---------------------------- | ---------------------------------------- |
| Отдельный агент       | `<workspace>/skills`         | Только этому агенту                      |
| Агент проекта         | `<workspace>/.agents/skills` | Только агенту этой рабочей области       |
| Личный агент          | `~/.agents/skills`           | Всем агентам на этом компьютере          |
| Общие управляемые     | `~/.openclaw/skills`         | Всем агентам на этом компьютере          |
| Дополнительные каталоги | `skills.load.extraDirs`      | Всем агентам на этом компьютере          |

## Списки разрешённых навыков для агентов

**Расположение** навыка (приоритет) и **видимость** навыка (какой агент может его использовать)
управляются отдельно. Используйте списки разрешённых навыков, чтобы ограничить навыки, доступные агенту,
независимо от источника их загрузки.

```json5
{
  agents: {
    defaults: {
      skills: ["github", "weather"], // общая базовая конфигурация
    },
    list: [
      { id: "writer" }, // наследует github, weather
      { id: "docs", skills: ["docs-search"] }, // полностью заменяет значения по умолчанию
      { id: "locked-down", skills: [] }, // без навыков
    ],
  },
}
```

<AccordionGroup>
  <Accordion title="Правила списков разрешённых навыков">
    - Не указывайте `agents.defaults.skills`, чтобы по умолчанию не ограничивать никакие навыки.
    - Не указывайте `agents.list[].skills`, чтобы наследовать `agents.defaults.skills`.
    - Задайте `agents.list[].skills: []`, чтобы не предоставлять этому агенту никаких навыков.
    - Непустой список `agents.list[].skills` является **окончательным** набором — он не
      объединяется со значениями по умолчанию.
    - Итоговый список разрешённых навыков применяется при формировании промпта, обнаружении
      команд с косой чертой, синхронизации песочницы и создании снимков навыков.
    - Это не граница авторизации оболочки хоста. Если тот же агент может
      использовать `exec`, ограничьте эту оболочку отдельно с помощью песочницы, изоляции
      пользователей ОС, списков запрещённых и разрешённых команд выполнения и отдельных учётных данных для каждого ресурса.
  </Accordion>
</AccordionGroup>

## Плагины и навыки

Плагины могут поставлять собственные навыки, перечисляя каталоги `skills` в
`openclaw.plugin.json` (пути указываются относительно корневого каталога плагина). Навыки плагина загружаются,
когда плагин включён. Например, плагин браузера поставляет навык
`browser-automation` для многоэтапного управления браузером.

Каталоги навыков плагинов объединяются на том же уровне с низким приоритетом, что и
`skills.load.extraDirs`, поэтому встроенный, управляемый, агентский навык или навык рабочей области
с тем же именем переопределяет их. Управляйте применимостью самого навыка плагина с помощью
`metadata.openclaw.requires` в его метаданных, как и для любого другого навыка.

Полное описание системы плагинов см. в разделах [Плагины](/ru/tools/plugin) и [Инструменты](/ru/tools).

## Мастерская навыков

[Мастерская навыков](/ru/tools/skill-workshop) — это очередь предложений между агентом
и активными файлами навыков. Когда агент обнаруживает работу, пригодную для повторного использования, он создаёт
предложение вместо непосредственной записи в `SKILL.md`. Вы проверяете и утверждаете
предложение до внесения каких-либо изменений.

```bash
openclaw skills workshop list
openclaw skills workshop inspect <proposal-id>
openclaw skills workshop apply <proposal-id>
```

Полное описание жизненного цикла, справочник CLI
и конфигурацию см. в разделе [Мастерская навыков](/ru/tools/skill-workshop).

## Установка из ClawHub

[ClawHub](https://clawhub.ai) — это общедоступный реестр навыков. Используйте команды
`openclaw skills` для установки и обновления или CLI `clawhub` для
публикации и синхронизации.

| Действие                                      | Команда                                                |
| --------------------------------------------- | ------------------------------------------------------ |
| Установить навык в рабочую область            | `openclaw skills install @owner/<slug>`                |
| Установить из репозитория Git                 | `openclaw skills install git:owner/repo@ref`           |
| Установить локальный каталог навыка           | `openclaw skills install ./path/to/skill --as my-tool` |
| Установить для всех локальных агентов         | `openclaw skills install @owner/<slug> --global`       |
| Обновить все навыки рабочей области           | `openclaw skills update --all`                         |
| Обновить общий управляемый навык              | `openclaw skills update @owner/<slug> --global`        |
| Обновить все общие управляемые навыки         | `openclaw skills update --all --global`                |
| Проверить контур доверия навыка                | `openclaw skills verify @owner/<slug>`                 |
| Вывести созданную карточку навыка              | `openclaw skills verify @owner/<slug> --card`          |
| Опубликовать / синхронизировать через CLI ClawHub | `clawhub sync --all`                                   |

<AccordionGroup>
  <Accordion title="Сведения об установке">
    `openclaw skills install` по умолчанию устанавливает навык в каталог `skills/`
    активной рабочей области. Добавьте `--global`, чтобы установить его в общий
    каталог `~/.openclaw/skills`, доступный всем локальным агентам, если их списки
    разрешённых навыков не ограничивают доступ.

    При установке из Git и локального источника ожидается наличие `SKILL.md` в корне источника. Идентификатор берётся
    из `name` метаданных `SKILL.md`, если значение допустимо, иначе используется
    имя каталога или репозитория. Для переопределения используйте `--as <slug>`.
    `openclaw skills update` отслеживает только установки из ClawHub — для обновления источников Git или
    локальных источников установите их повторно.

  </Accordion>
  <Accordion title="Проверка и сканирование безопасности">
    `openclaw skills verify @owner/<slug>` запрашивает у ClawHub
    контур доверия `clawhub.skill.verify.v1` навыка. Установленные навыки ClawHub проверяются
    по версии и реестру, записанным в `.clawhub/origin.json`.
    Идентификаторы без имени владельца по-прежнему принимаются для уже установленных или однозначно определяемых навыков, но
    ссылки с указанием владельца устраняют неоднозначность издателя.

    Перед установкой на страницах навыков ClawHub отображается состояние последнего сканирования безопасности,
    а отдельные страницы содержат сведения о VirusTotal, ClawScan и статическом анализе. Команда
    завершается с ненулевым кодом, если ClawHub помечает проверку как неуспешную. Издатели
    устраняют ложные срабатывания через панель управления ClawHub или
    `clawhub skill rescan @owner/<slug>`.

  </Accordion>
  <Accordion title="Установка из частных архивов">
    Клиенты Gateway, которым требуется доставка не через ClawHub, могут подготовить ZIP-архив навыка
    с помощью `skills.upload.begin`, `skills.upload.chunk` и `skills.upload.commit`,
    а затем установить его с помощью `skills.install({ source: "upload", ... })`. Этот путь
    по умолчанию отключён и требует `skills.install.allowUploadedArchives: true` в
    `openclaw.json`. Для обычной установки из ClawHub этот параметр не требуется.
  </Accordion>
</AccordionGroup>

## Безопасность

<Warning>
  Считайте сторонние навыки **недоверенным кодом**. Прочитайте их перед включением.
  Для недоверенных входных данных и опасных инструментов предпочитайте запуск в песочнице. Сведения
  о средствах управления на стороне агента см. в разделе [Песочница](/ru/gateway/sandboxing).
</Warning>

<AccordionGroup>
  <Accordion title="Ограничение путей">
    Обнаружение навыков рабочей области, агента проекта и дополнительных каталогов принимает только корневые каталоги
    навыков, разрешённый реальный путь которых остаётся внутри настроенного корневого каталога, если только
    `skills.load.allowSymlinkTargets` явно не определяет целевой корневой каталог как доверенный.
    Мастерская навыков выполняет запись через такие доверенные цели, только если
    включён `skills.workshop.allowSymlinkTargetWrites`.
    Управляемый каталог `~/.openclaw/skills` и личный каталог `~/.agents/skills` могут содержать
    папки навыков, являющиеся символическими ссылками, но реальный путь каждого `SKILL.md` всё равно должен оставаться
    внутри его разрешённого каталога навыка.
  </Accordion>
  <Accordion title="Политика установки оператора">
    Настройте `security.installPolicy` для выполнения доверенной локальной команды политики
    перед продолжением установки навыка. Политика получает метаданные и путь к подготовленному
    источнику, применяется к ClawHub, загруженным архивам, Git, локальным источникам, обновлениям и
    путям установки зависимостей и запрещает операцию, если команда не может вернуть
    допустимое решение.
  </Accordion>
  <Accordion title="Область внедрения секретов">
    `skills.entries.*.env` и `skills.entries.*.apiKey` внедряют секреты в
    процесс **хоста** только на время текущего хода агента, но не в песочницу. Не включайте
    секреты в промпты и журналы.
  </Accordion>
</AccordionGroup>

Более широкую модель угроз и контрольные списки безопасности см. в разделе
[Безопасность](/ru/gateway/security).

## Формат SKILL.md

Каждый навык должен содержать как минимум `name` и `description` в метаданных:

```markdown
---
name: image-lab
description: Создание или редактирование изображений с помощью процесса обработки изображений, поддерживаемого провайдером
---

Когда пользователь просит создать изображение, используйте инструмент `image_generate`...
```

<Note>
  OpenClaw следует спецификации [AgentSkills](https://agentskills.io). Сначала метаданные
  разбираются как YAML; если это не удаётся, используется резервный анализатор,
  поддерживающий только одну строку. Вложенные блоки `metadata` (включая многострочные сопоставления YAML)
  преобразуются в строку JSON и повторно разбираются как JSON5, поэтому форма блока, показанная
  в разделе [Ограничение доступности](#gating), работает. Используйте `{baseDir}` в теле, чтобы ссылаться на
  путь к папке навыка.
</Note>

### Необязательные ключи метаданных

<ParamField path="homepage" type="string">
  URL, отображаемый как "Website" в интерфейсе Skills для macOS. Также поддерживается через
  `metadata.openclaw.homepage`.
</ParamField>

<ParamField path="user-invocable" type="boolean" default="true">
  Когда `true`, навык доступен как вызываемая пользователем команда с косой чертой.
</ParamField>

<ParamField path="disable-model-invocation" type="boolean" default="false">
  Когда `true`, OpenClaw не включает инструкции навыка в обычный
  промпт агента. Навык по-прежнему доступен как команда с косой чертой, если `user-invocable`
  также имеет значение `true`.
</ParamField>

<ParamField path="command-dispatch" type='"tool"'>
  Если установлено значение `tool`, команда с косой чертой обходит модель и направляется
  непосредственно зарегистрированному инструменту.
</ParamField>

<ParamField path="command-tool" type="string">
  Имя инструмента, вызываемого при установленном `command-dispatch: tool`.
</ParamField>

<ParamField path="command-arg-mode" type='"raw"' default="raw">
  При направлении инструменту передаёт ему исходную строку аргументов без
  разбора ядром. Инструмент получает
  `{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }`.
</ParamField>

## Условия доступности

OpenClaw фильтрует навыки во время загрузки с помощью `metadata.openclaw` (объекта JSON5,
встроенного во frontmatter; см. примечание о разборе выше). Навык без блока
`metadata.openclaw` всегда доступен, если он не отключён явно.

```markdown
---
name: image-lab
description: Создание или редактирование изображений с помощью процесса обработки изображений на базе провайдера
metadata:
  {
    "openclaw":
      {
        "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
        "primaryEnv": "GEMINI_API_KEY",
      },
  }
---
```

<ParamField path="always" type="boolean">
  Когда `true`, навык всегда включается, а все остальные условия пропускаются.
</ParamField>

<ParamField path="emoji" type="string">
  Необязательный эмодзи, отображаемый в интерфейсе Skills для macOS.
</ParamField>

<ParamField path="homepage" type="string">
  Необязательный URL-адрес, отображаемый как "Website" в интерфейсе Skills для macOS.
</ParamField>

<ParamField path="os" type='("darwin" | "linux" | "win32")[]'>
  Фильтр платформ. Если он задан, навык доступен только в одной из указанных ОС.
</ParamField>

<ParamField path="requires.bins" type="string[]">
  Каждый исполняемый файл должен существовать в `PATH`.
</ParamField>

<ParamField path="requires.anyBins" type="string[]">
  В `PATH` должен существовать хотя бы один исполняемый файл.
</ParamField>

<ParamField path="requires.env" type="string[]">
  Каждая переменная окружения должна существовать в процессе или предоставляться через конфигурацию.
</ParamField>

<ParamField path="requires.config" type="string[]">
  Каждый путь `openclaw.json` должен иметь истинное значение.
</ParamField>

<ParamField path="primaryEnv" type="string">
  Имя переменной окружения, связанной с `skills.entries.<name>.apiKey`.
</ParamField>

<ParamField path="install" type="object[]">
  Необязательные спецификации установщиков, используемые интерфейсом Skills для macOS (brew / node / go / uv / download).
</ParamField>

<Note>
  Устаревшие блоки `metadata.clawdbot` по-прежнему принимаются при отсутствии
  `metadata.openclaw`, поэтому ранее установленные навыки сохраняют свои
  условия зависимостей и подсказки установщика. Новые навыки должны использовать
  `metadata.openclaw`.
</Note>

### Спецификации установщиков

Спецификации установщиков указывают интерфейсу Skills для macOS, как установить зависимость:

```markdown
---
name: gemini
description: Использование Gemini CLI для помощи в программировании и поиска в Google.
metadata:
  {
    "openclaw":
      {
        "emoji": "♊️",
        "requires": { "bins": ["gemini"] },
        "install":
          [
            {
              "id": "brew",
              "kind": "brew",
              "formula": "gemini-cli",
              "bins": ["gemini"],
              "label": "Установить Gemini CLI (brew)",
            },
          ],
      },
  }
---
```

<AccordionGroup>
  <Accordion title="Правила выбора установщика">
    - Если указано несколько установщиков, Gateway выбирает один предпочтительный
      вариант (brew, если он доступен, иначе node).
    - Если все установщики имеют тип `download`, OpenClaw выводит каждую запись, чтобы вы могли
      увидеть все доступные артефакты.
    - Спецификации могут включать `os: ["darwin"|"linux"|"win32"]` для фильтрации по платформе.
    - При установке через Node учитывается `skills.install.nodeManager` в `openclaw.json`
      (по умолчанию: npm; варианты: npm / pnpm / yarn / bun). Это влияет только на установку
      навыков; средой выполнения Gateway по-прежнему должен быть Node.
    - Порядок предпочтения установщиков Gateway: Homebrew → uv → настроенный менеджер Node →
      go → download.
  </Accordion>
  <Accordion title="Сведения об отдельных установщиках">
    - **Homebrew:** OpenClaw не устанавливает Homebrew автоматически и не преобразует формулы brew
      в команды системного менеджера пакетов. В контейнерах Linux без
      `brew` установщики, использующие только brew, скрыты; используйте пользовательский образ или установите
      зависимость вручную.
    - **Go:** для автоматической установки навыков OpenClaw требуется Go 1.21 или новее.
      Если `go` отсутствует, но доступен Homebrew, OpenClaw сначала устанавливает Go через
      Homebrew; в Linux без Homebrew вместо этого можно использовать `apt-get`
      от имени root или через `sudo` без запроса пароля, если обновлённый кандидат `golang-go`
      соответствует минимальной версии. Фактический `go install` для
      зависимости всегда указывает на отдельный каталог исполняемых файлов под управлением OpenClaw
      (`bin` Homebrew при новой установке, иначе `~/.local/bin`), а не на
      настроенный вами `GOBIN` — ваши переменные окружения `GOBIN`, `GOPATH` и `GOTOOLCHAIN`
      считываются, но никогда не перезаписываются.
    - **Загрузка:** `url` (обязательно), `archive` (`tar.gz` | `tar.bz2` | `zip`),
      `extract` (по умолчанию: автоматически при обнаружении архива), `stripComponents`,
      `targetDir` (по умолчанию: `~/.openclaw/tools/<skillKey>`).
  </Accordion>
  <Accordion title="Примечания о песочнице">
    `requires.bins` проверяется на **хосте** во время загрузки навыка. Если агент
    работает в песочнице, исполняемый файл также должен существовать **внутри контейнера**.
    Установите его с помощью `agents.defaults.sandbox.docker.setupCommand` или пользовательского
    образа. `setupCommand` выполняется один раз после создания контейнера и требует
    исходящего сетевого доступа, доступной для записи корневой файловой системы и пользователя root в песочнице.
  </Accordion>
</AccordionGroup>

## Переопределение конфигурации

Включайте, отключайте и настраивайте встроенные или управляемые навыки в `skills.entries` файла
`~/.openclaw/openclaw.json`:

```json5
{
  skills: {
    entries: {
      "image-lab": {
        enabled: true,
        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },
        env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },
        config: {
          endpoint: "https://example.invalid",
          model: "nano-pro",
        },
      },
      peekaboo: { enabled: true },
      sag: { enabled: false },
    },
  },
}
```

<ParamField path="enabled" type="boolean">
  `false` отключает навык, даже если он встроен или установлен. Встроенный навык `coding-agent`
  требует явного включения — установите `skills.entries.coding-agent.enabled: true`
  и убедитесь, что один из `claude`, `codex`, `opencode` или другой поддерживаемый CLI
  установлен и аутентифицирован.
</ParamField>

<ParamField path="apiKey" type='string | { source, provider, id }'>
  Вспомогательное поле для навыков, объявляющих `metadata.openclaw.primaryEnv`.
  Поддерживает строку с открытым текстом или объект SecretRef.
</ParamField>

<ParamField path="env" type="Record<string, string>">
  Переменные окружения, внедряемые на время выполнения агента. Внедряются только в том случае,
  если переменная ещё не задана в процессе.
</ParamField>

<ParamField path="config" type="object">
  Необязательный набор пользовательских полей конфигурации для отдельного навыка.
</ParamField>

<ParamField path="allowBundled" type="string[]">
  Необязательный список разрешённых только для **встроенных** навыков. Если он задан, доступны только
  встроенные навыки из списка. Управляемые навыки и навыки рабочей области не затрагиваются.
</ParamField>

<Note>
  По умолчанию ключи конфигурации соответствуют **имени навыка**. Если навык определяет
  `metadata.openclaw.skillKey`, вместо этого используйте данный ключ в `skills.entries`.
  Имена с дефисами заключайте в кавычки: JSON5 допускает ключи в кавычках.
</Note>

## Внедрение переменных окружения

Когда начинается выполнение агента, OpenClaw:

<Steps>
  <Step title="Читает метаданные навыков">
    OpenClaw определяет итоговый список навыков для агента, применяя правила доступности,
    списки разрешённых элементов и переопределения конфигурации.
  </Step>
  <Step title="Внедряет переменные окружения и ключи API">
    `skills.entries.<key>.env` и `skills.entries.<key>.apiKey` применяются к
    `process.env` на время выполнения.
  </Step>
  <Step title="Формирует системный промпт">
    Доступные навыки компилируются в компактный блок XML и внедряются в
    системный промпт.
  </Step>
  <Step title="Восстанавливает окружение">
    После завершения выполнения исходное окружение восстанавливается.
  </Step>
</Steps>

<Warning>
  Внедрение переменных окружения относится к выполнению агента на **хосте**, а не в песочнице. Внутри
  песочницы `env` и `apiKey` не действуют. Инструкции
  по передаче секретов в запуски в песочнице см. в разделе
  [Конфигурация навыков](/ru/tools/skills-config#sandboxed-skills-and-env-vars).
</Warning>

Для встроенного бэкенда `claude-cli` OpenClaw также материализует тот же
снимок доступных навыков как временный плагин Claude Code и передаёт его через
`--plugin-dir`. Другие бэкенды CLI используют только каталог промпта.

## Снимки и обновление

OpenClaw создаёт снимок доступных навыков **при запуске сеанса** и повторно использует этот
список для всех последующих ходов в сеансе. Изменения навыков или конфигурации
вступают в силу в следующем новом сеансе.

Навыки обновляются посреди сеанса в двух случаях:

- Наблюдатель навыков обнаруживает изменение `SKILL.md`.
- Подключается новый доступный удалённый узел.

Обновлённый список используется в следующем ходе агента. Если итоговый список
разрешённых для агента элементов изменяется, OpenClaw обновляет снимок, чтобы видимые навыки
соответствовали ему.

<AccordionGroup>
  <Accordion title="Наблюдатель навыков">
    По умолчанию OpenClaw отслеживает папки навыков и обновляет снимок при изменении
    файлов `SKILL.md`. Настройка выполняется в `skills.load`:

    ```json5
    {
      skills: {
        load: {
          extraDirs: ["~/Projects/agent-scripts/skills"],
          allowSymlinkTargets: ["~/Projects/manager/skills"],
          watch: true, // по умолчанию
          watchDebounceMs: 250, // по умолчанию
        },
      },
    }
    ```

    Используйте `allowSymlinkTargets` для намеренно созданных структур с символическими ссылками, в которых ссылка
    на корень навыка указывает за пределы настроенного корня, например
    `<workspace>/skills/manager -> ~/Projects/manager/skills`.
    Включайте `skills.workshop.allowSymlinkTargetWrites` только в том случае, если Skill Workshop
    также должен применять предложения через эти доверенные пути с символическими ссылками.

  </Accordion>
  <Accordion title="Удалённые узлы macOS (Gateway в Linux)">
    Если Gateway работает в Linux, но подключён **узел macOS**, на котором разрешён
    `system.run`, OpenClaw может считать доступными навыки только для macOS, если
    необходимые исполняемые файлы присутствуют на этом узле. Агент должен запускать такие
    навыки через инструмент `exec` с `host=node`.

    Автономные узлы **не** делают видимыми навыки, доступные только удалённо. Если узел перестаёт
    отвечать на проверки исполняемых файлов, OpenClaw очищает кеш совпадений исполняемых файлов.

  </Accordion>
</AccordionGroup>

## Влияние на количество токенов

Когда навыки доступны, OpenClaw внедряет компактный блок XML в системный
промпт. Затраты детерминированы и линейно растут с каждым навыком:

- **Базовые накладные расходы** (только если доступен хотя бы 1 навык): фиксированный блок вводного
  текста и обёртка `<available_skills>`.
- **На каждый навык:** ~97 символов + длина полей `name`, `description` и `location`.
- Экранирование XML преобразует `& < > " '` в сущности, добавляя несколько символов при каждом
  вхождении.
- При ~4 символах на токен 97 символов ≈ 24 токена на навык без учёта длины полей.

Если итоговый блок превысит настроенный бюджет промпта
(`skills.limits.maxSkillsPromptChars`), OpenClaw сначала сохраняет столько идентификаторов
навыков (имя, расположение и версию), сколько помещается в компактном формате
без описаний. Затем оставшийся бюджет используется для сокращённых описаний. Если
бюджета на описания не осталось, они опускаются. Когда требуется компактное
форматирование или усечение списка, в промпт включается примечание со ссылкой на
`openclaw skills check`.

Делайте описания краткими и информативными, чтобы минимизировать объём промпта.

## См. также

<CardGroup cols={2}>
  <Card title="Создание навыков" href="/ru/tools/creating-skills" icon="hammer">
    Пошаговое руководство по созданию собственного навыка.
  </Card>
  <Card title="Мастерская навыков" href="/ru/tools/skill-workshop" icon="flask">
    Очередь предложений навыков, подготовленных агентами.
  </Card>
  <Card title="Конфигурация навыков" href="/ru/tools/skills-config" icon="gear">
    Полная схема конфигурации `skills.*` и списки разрешений агентов.
  </Card>
  <Card title="Команды с косой чертой" href="/ru/tools/slash-commands" icon="terminal">
    Как регистрируются и маршрутизируются команды навыков с косой чертой.
  </Card>
  <Card title="ClawHub" href="/ru/clawhub" icon="cloud">
    Просматривайте и публикуйте навыки в общедоступном реестре.
  </Card>
  <Card title="Плагины" href="/ru/tools/plugin" icon="plug">
    Плагины могут поставлять навыки вместе с инструментами, которые они документируют.
  </Card>
</CardGroup>
