Skills
Skills
Skills — это файлы инструкций в формате Markdown, которые объясняют агенту, как и когда использовать
инструменты. Каждый навык находится в каталоге, содержащем файл SKILL.md с YAML-
метаданными и телом в формате Markdown. OpenClaw загружает встроенные навыки и все локальные
переопределения, а при загрузке фильтрует их на основе окружения, конфигурации и
наличия исполняемых файлов.
Создайте и протестируйте собственный навык с нуля.
Проверяйте и утверждайте предложения навыков, подготовленные агентом.
Полная схема конфигурации skills.* и списки разрешённых навыков для агентов.
Просматривайте и устанавливайте навыки сообщества.
Порядок загрузки
OpenClaw загружает навыки из следующих источников, начиная с источника с наивысшим приоритетом. Если навык с одним и тем же именем встречается в нескольких местах, используется источник с наивысшим приоритетом.
| Приоритет | Источник | Путь |
|---|---|---|
| 1 — наивысший | Навыки рабочей области | <workspace>/skills |
| 2 | Навыки агента проекта | <workspace>/.agents/skills |
| 3 | Личные навыки агента | ~/.agents/skills |
| 4 | Управляемые / локальные навыки | ~/.openclaw/skills |
| 5 | Встроенные навыки | поставляются вместе с установкой |
| 6 — наименьший | Дополнительные каталоги | skills.load.extraDirs + навыки плагинов |
Корневые каталоги навыков поддерживают сгруппированную структуру. OpenClaw обнаруживает навык, если
SKILL.md находится в любом месте внутри настроенного корневого каталога (на глубине до 6 уровней):
<workspace>/skills/research/SKILL.md ✓ найден как "research"<workspace>/skills/personal/research/SKILL.md ✓ также найден как "research"Путь к папке используется только для организации. Имя навыка и его команда с косой чертой
берутся из поля метаданных name (или из имени каталога, если name
отсутствует). Списки разрешённых навыков для агентов (см. ниже) также сопоставляются по этому name.
Навыки, размещённые на Node
Подключённый Node без графического интерфейса может публиковать навыки, установленные в его активном каталоге
навыков OpenClaw (~/.openclaw/skills по умолчанию; применяются переопределения окружения
профиля). Они отображаются в обычном списке навыков агента, пока Node подключён,
и исчезают после его отключения. При совпадении имён локальный навык или навык Gateway сохраняет своё имя;
навык Node получает детерминированное имя с префиксом Node.
Для навыков, размещённых на Node, в версии v1 имя каталога должно совпадать с полем метаданных
name навыка.
Запись навыка содержит адрес Node. Его файлы, относительные ссылки и
исполняемые файлы находятся на Node, поэтому загружайте и выполняйте его с помощью
exec host=node node=<node-id>. После изменения файлов навыка перезапустите хост Node.
Сведения о сопряжении и способах отключения см. в разделе Node.
Навыки отдельного агента и общие навыки
В конфигурациях с несколькими агентами у каждого агента есть собственная рабочая область. Используйте путь, соответствующий требуемой области видимости:
| Область | Путь | Кому доступен |
|---|---|---|
| Отдельный агент | <workspace>/skills |
Только этому агенту |
| Агент проекта | <workspace>/.agents/skills |
Только агенту этой рабочей области |
| Личный агент | ~/.agents/skills |
Всем агентам на этом компьютере |
| Общие управляемые | ~/.openclaw/skills |
Всем агентам на этом компьютере |
| Дополнительные каталоги | skills.load.extraDirs |
Всем агентам на этом компьютере |
Списки разрешённых навыков для агентов
Расположение навыка (приоритет) и видимость навыка (какой агент может его использовать) управляются отдельно. Используйте списки разрешённых навыков, чтобы ограничить навыки, доступные агенту, независимо от источника их загрузки.
{ agents: { defaults: { skills: ["github", "weather"], // общая базовая конфигурация }, list: [ { id: "writer" }, // наследует github, weather { id: "docs", skills: ["docs-search"] }, // полностью заменяет значения по умолчанию { id: "locked-down", skills: [] }, // без навыков ], },}Правила списков разрешённых навыков
- Не указывайте
agents.defaults.skills, чтобы по умолчанию не ограничивать никакие навыки. - Не указывайте
agents.list[].skills, чтобы наследоватьagents.defaults.skills. - Задайте
agents.list[].skills: [], чтобы не предоставлять этому агенту никаких навыков. - Непустой список
agents.list[].skillsявляется окончательным набором — он не объединяется со значениями по умолчанию. - Итоговый список разрешённых навыков применяется при формировании промпта, обнаружении команд с косой чертой, синхронизации песочницы и создании снимков навыков.
- Это не граница авторизации оболочки хоста. Если тот же агент может
использовать
exec, ограничьте эту оболочку отдельно с помощью песочницы, изоляции пользователей ОС, списков запрещённых и разрешённых команд выполнения и отдельных учётных данных для каждого ресурса.
Плагины и навыки
Плагины могут поставлять собственные навыки, перечисляя каталоги skills в
openclaw.plugin.json (пути указываются относительно корневого каталога плагина). Навыки плагина загружаются,
когда плагин включён. Например, плагин браузера поставляет навык
browser-automation для многоэтапного управления браузером.
Каталоги навыков плагинов объединяются на том же уровне с низким приоритетом, что и
skills.load.extraDirs, поэтому встроенный, управляемый, агентский навык или навык рабочей области
с тем же именем переопределяет их. Управляйте применимостью самого навыка плагина с помощью
metadata.openclaw.requires в его метаданных, как и для любого другого навыка.
Полное описание системы плагинов см. в разделах Плагины и Инструменты.
Мастерская навыков
Мастерская навыков — это очередь предложений между агентом
и активными файлами навыков. Когда агент обнаруживает работу, пригодную для повторного использования, он создаёт
предложение вместо непосредственной записи в SKILL.md. Вы проверяете и утверждаете
предложение до внесения каких-либо изменений.
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Полное описание жизненного цикла, справочник CLI и конфигурацию см. в разделе Мастерская навыков.
Установка из ClawHub
ClawHub — это общедоступный реестр навыков. Используйте команды
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 |
Сведения об установке
openclaw skills install по умолчанию устанавливает навык в каталог skills/
активной рабочей области. Добавьте --global, чтобы установить его в общий
каталог ~/.openclaw/skills, доступный всем локальным агентам, если их списки
разрешённых навыков не ограничивают доступ.
При установке из Git и локального источника ожидается наличие SKILL.md в корне источника. Идентификатор берётся
из name метаданных SKILL.md, если значение допустимо, иначе используется
имя каталога или репозитория. Для переопределения используйте --as <slug>.
openclaw skills update отслеживает только установки из ClawHub — для обновления источников Git или
локальных источников установите их повторно.
Проверка и сканирование безопасности
openclaw skills verify @owner/<slug> запрашивает у ClawHub
контур доверия clawhub.skill.verify.v1 навыка. Установленные навыки ClawHub проверяются
по версии и реестру, записанным в .clawhub/origin.json.
Идентификаторы без имени владельца по-прежнему принимаются для уже установленных или однозначно определяемых навыков, но
ссылки с указанием владельца устраняют неоднозначность издателя.
Перед установкой на страницах навыков ClawHub отображается состояние последнего сканирования безопасности,
а отдельные страницы содержат сведения о VirusTotal, ClawScan и статическом анализе. Команда
завершается с ненулевым кодом, если ClawHub помечает проверку как неуспешную. Издатели
устраняют ложные срабатывания через панель управления ClawHub или
clawhub skill rescan @owner/<slug>.
Установка из частных архивов
Клиенты Gateway, которым требуется доставка не через ClawHub, могут подготовить ZIP-архив навыка
с помощью skills.upload.begin, skills.upload.chunk и skills.upload.commit,
а затем установить его с помощью skills.install({ source: "upload", ... }). Этот путь
по умолчанию отключён и требует skills.install.allowUploadedArchives: true в
openclaw.json. Для обычной установки из ClawHub этот параметр не требуется.
Безопасность
Ограничение путей
Обнаружение навыков рабочей области, агента проекта и дополнительных каталогов принимает только корневые каталоги
навыков, разрешённый реальный путь которых остаётся внутри настроенного корневого каталога, если только
skills.load.allowSymlinkTargets явно не определяет целевой корневой каталог как доверенный.
Мастерская навыков выполняет запись через такие доверенные цели, только если
включён skills.workshop.allowSymlinkTargetWrites.
Управляемый каталог ~/.openclaw/skills и личный каталог ~/.agents/skills могут содержать
папки навыков, являющиеся символическими ссылками, но реальный путь каждого SKILL.md всё равно должен оставаться
внутри его разрешённого каталога навыка.
Политика установки оператора
Настройте security.installPolicy для выполнения доверенной локальной команды политики
перед продолжением установки навыка. Политика получает метаданные и путь к подготовленному
источнику, применяется к ClawHub, загруженным архивам, Git, локальным источникам, обновлениям и
путям установки зависимостей и запрещает операцию, если команда не может вернуть
допустимое решение.
Область внедрения секретов
skills.entries.*.env и skills.entries.*.apiKey внедряют секреты в
процесс хоста только на время текущего хода агента, но не в песочницу. Не включайте
секреты в промпты и журналы.
Более широкую модель угроз и контрольные списки безопасности см. в разделе Безопасность.
Формат SKILL.md
Каждый навык должен содержать как минимум name и description в метаданных:
---name: image-labdescription: Создание или редактирование изображений с помощью процесса обработки изображений, поддерживаемого провайдером--- Когда пользователь просит создать изображение, используйте инструмент `image_generate`...Необязательные ключи метаданных
homepagestringURL, отображаемый как "Website" в интерфейсе Skills для macOS. Также поддерживается через
metadata.openclaw.homepage.
user-invocablebooleandefault: trueКогда true, навык доступен как вызываемая пользователем команда с косой чертой.
disable-model-invocationbooleandefault: falseКогда true, OpenClaw не включает инструкции навыка в обычный
промпт агента. Навык по-прежнему доступен как команда с косой чертой, если user-invocable
также имеет значение true.
command-dispatch"tool"Если установлено значение tool, команда с косой чертой обходит модель и направляется
непосредственно зарегистрированному инструменту.
command-toolstringИмя инструмента, вызываемого при установленном command-dispatch: tool.
command-arg-mode"raw"default: rawПри направлении инструменту передаёт ему исходную строку аргументов без
разбора ядром. Инструмент получает
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Условия доступности
OpenClaw фильтрует навыки во время загрузки с помощью metadata.openclaw (объекта JSON5,
встроенного во frontmatter; см. примечание о разборе выше). Навык без блока
metadata.openclaw всегда доступен, если он не отключён явно.
---name: image-labdescription: Создание или редактирование изображений с помощью процесса обработки изображений на базе провайдераmetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---alwaysbooleanКогда true, навык всегда включается, а все остальные условия пропускаются.
emojistringНеобязательный эмодзи, отображаемый в интерфейсе Skills для macOS.
homepagestringНеобязательный URL-адрес, отображаемый как "Website" в интерфейсе Skills для macOS.
os("darwin" | "linux" | "win32")[]Фильтр платформ. Если он задан, навык доступен только в одной из указанных ОС.
requires.binsstring[]Каждый исполняемый файл должен существовать в PATH.
requires.anyBinsstring[]В PATH должен существовать хотя бы один исполняемый файл.
requires.envstring[]Каждая переменная окружения должна существовать в процессе или предоставляться через конфигурацию.
requires.configstring[]Каждый путь openclaw.json должен иметь истинное значение.
primaryEnvstringИмя переменной окружения, связанной с skills.entries.<name>.apiKey.
installobject[]Необязательные спецификации установщиков, используемые интерфейсом Skills для macOS (brew / node / go / uv / download).
Спецификации установщиков
Спецификации установщиков указывают интерфейсу Skills для macOS, как установить зависимость:
---name: geminidescription: Использование Gemini CLI для помощи в программировании и поиска в Google.metadata: { "openclaw": { "emoji": "♊️", "requires": { "bins": ["gemini"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "gemini-cli", "bins": ["gemini"], "label": "Установить Gemini CLI (brew)", }, ], }, }---Правила выбора установщика
- Если указано несколько установщиков, 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.
Сведения об отдельных установщиках
- 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 (binHomebrew при новой установке, иначе~/.local/bin), а не на настроенный вамиGOBIN— ваши переменные окруженияGOBIN,GOPATHиGOTOOLCHAINсчитываются, но никогда не перезаписываются. - Загрузка:
url(обязательно),archive(tar.gz|tar.bz2|zip),extract(по умолчанию: автоматически при обнаружении архива),stripComponents,targetDir(по умолчанию:~/.openclaw/tools/<skillKey>).
Примечания о песочнице
requires.bins проверяется на хосте во время загрузки навыка. Если агент
работает в песочнице, исполняемый файл также должен существовать внутри контейнера.
Установите его с помощью agents.defaults.sandbox.docker.setupCommand или пользовательского
образа. setupCommand выполняется один раз после создания контейнера и требует
исходящего сетевого доступа, доступной для записи корневой файловой системы и пользователя root в песочнице.
Переопределение конфигурации
Включайте, отключайте и настраивайте встроенные или управляемые навыки в skills.entries файла
~/.openclaw/openclaw.json:
{ 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 }, }, },}enabledbooleanfalse отключает навык, даже если он встроен или установлен. Встроенный навык coding-agent
требует явного включения — установите skills.entries.coding-agent.enabled: true
и убедитесь, что один из claude, codex, opencode или другой поддерживаемый CLI
установлен и аутентифицирован.
apiKeystring | { source, provider, id }Вспомогательное поле для навыков, объявляющих metadata.openclaw.primaryEnv.
Поддерживает строку с открытым текстом или объект SecretRef.
env"Record<string,configobjectНеобязательный набор пользовательских полей конфигурации для отдельного навыка.
allowBundledstring[]Необязательный список разрешённых только для встроенных навыков. Если он задан, доступны только встроенные навыки из списка. Управляемые навыки и навыки рабочей области не затрагиваются.
Внедрение переменных окружения
Когда начинается выполнение агента, OpenClaw:
Читает метаданные навыков
OpenClaw определяет итоговый список навыков для агента, применяя правила доступности, списки разрешённых элементов и переопределения конфигурации.
Внедряет переменные окружения и ключи API
skills.entries.<key>.env и skills.entries.<key>.apiKey применяются к
process.env на время выполнения.
Формирует системный промпт
Доступные навыки компилируются в компактный блок XML и внедряются в системный промпт.
Восстанавливает окружение
После завершения выполнения исходное окружение восстанавливается.
Для встроенного бэкенда claude-cli OpenClaw также материализует тот же
снимок доступных навыков как временный плагин Claude Code и передаёт его через
--plugin-dir. Другие бэкенды CLI используют только каталог промпта.
Снимки и обновление
OpenClaw создаёт снимок доступных навыков при запуске сеанса и повторно использует этот список для всех последующих ходов в сеансе. Изменения навыков или конфигурации вступают в силу в следующем новом сеансе.
Навыки обновляются посреди сеанса в двух случаях:
- Наблюдатель навыков обнаруживает изменение
SKILL.md. - Подключается новый доступный удалённый узел.
Обновлённый список используется в следующем ходе агента. Если итоговый список разрешённых для агента элементов изменяется, OpenClaw обновляет снимок, чтобы видимые навыки соответствовали ему.
Наблюдатель навыков
По умолчанию OpenClaw отслеживает папки навыков и обновляет снимок при изменении
файлов SKILL.md. Настройка выполняется в skills.load:
{ 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
также должен применять предложения через эти доверенные пути с символическими ссылками.
Удалённые узлы macOS (Gateway в Linux)
Если Gateway работает в Linux, но подключён узел macOS, на котором разрешён
system.run, OpenClaw может считать доступными навыки только для macOS, если
необходимые исполняемые файлы присутствуют на этом узле. Агент должен запускать такие
навыки через инструмент exec с host=node.
Автономные узлы не делают видимыми навыки, доступные только удалённо. Если узел перестаёт отвечать на проверки исполняемых файлов, OpenClaw очищает кеш совпадений исполняемых файлов.
Влияние на количество токенов
Когда навыки доступны, OpenClaw внедряет компактный блок XML в системный промпт. Затраты детерминированы и линейно растут с каждым навыком:
- Базовые накладные расходы (только если доступен хотя бы 1 навык): фиксированный блок вводного
текста и обёртка
<available_skills>. - На каждый навык: ~97 символов + длина полей
name,descriptionиlocation. - Экранирование XML преобразует
& < > " 'в сущности, добавляя несколько символов при каждом вхождении. - При ~4 символах на токен 97 символов ≈ 24 токена на навык без учёта длины полей.
Если итоговый блок превысит настроенный бюджет промпта
(skills.limits.maxSkillsPromptChars), OpenClaw сначала сохраняет столько идентификаторов
навыков (имя, расположение и версию), сколько помещается в компактном формате
без описаний. Затем оставшийся бюджет используется для сокращённых описаний. Если
бюджета на описания не осталось, они опускаются. Когда требуется компактное
форматирование или усечение списка, в промпт включается примечание со ссылкой на
openclaw skills check.
Делайте описания краткими и информативными, чтобы минимизировать объём промпта.
См. также
Пошаговое руководство по созданию собственного навыка.
Очередь предложений навыков, подготовленных агентами.
Полная схема конфигурации skills.* и списки разрешений агентов.
Как регистрируются и маршрутизируются команды навыков с косой чертой.
Просматривайте и публикуйте навыки в общедоступном реестре.
Плагины могут поставлять навыки вместе с инструментами, которые они документируют.