Skills
Создание Skills
Skills учат агента, как и когда использовать инструменты. Каждый Skill — это каталог,
содержащий файл SKILL.md с YAML frontmatter и инструкциями в markdown.
OpenClaw загружает Skills из нескольких корней в заданном порядке приоритета.
Создайте свой первый Skill
Создайте каталог Skill
Skills находятся в папке skills/ вашего рабочего пространства. Создайте каталог для
нового Skill:
mkdir -p ~/.openclaw/workspace/skills/hello-worldДля организации можно группировать Skills в подпапках — имя Skill всё равно
задаётся frontmatter в SKILL.md, а не путём к папке:
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-worldНапишите SKILL.md
Создайте SKILL.md внутри каталога. Frontmatter определяет метаданные;
тело содержит инструкции для агента.
---name: hello-worlddescription: A simple skill that prints a greeting.--- # Hello World When the user asks for a greeting, use the `exec` tool to run: ```bashecho "Hello from your custom skill!" Правила именования:- Используйте строчные буквы, цифры и дефисы для `name`.- Синхронизируйте имя каталога и `name` во frontmatter.- `description` показывается агенту и в обнаружении slash-команд — оставляйте его в одну строку и короче 160 символов. OPENCLAW_DOCS_MARKER:stepClose: OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSLQn9GA0L7QstC10YDRjNGC0LUsINGH0YLQviBTa2lsbCDQt9Cw0LPRgNGD0LbQtdC9Ig ```bashopenclaw skills listПо умолчанию OpenClaw отслеживает файлы SKILL.md в корнях Skills. Если
наблюдатель отключён или вы продолжаете существующую сессию, запустите новую,
чтобы агент получил обновлённый список:
# From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restartПротестируйте его
Отправьте сообщение, которое должно активировать Skill:
openclaw agent --message "give me a greeting"Или откройте чат и спросите агента напрямую. Используйте /skill hello-world, чтобы
вызвать его явно по имени.
Справочник SKILL.md
Обязательные поля
| Поле | Описание |
|---|---|
name |
Уникальный slug из строчных букв, цифр и дефисов |
description |
Однострочное описание, показываемое агенту и в выводе обнаружения |
Необязательные ключи frontmatter
| Поле | По умолчанию | Описание |
|---|---|---|
user-invocable |
true |
Показывает Skill как пользовательскую slash-команду |
disable-model-invocation |
false |
Исключает Skill из системного prompt агента (он всё ещё запускается через /skill) |
command-dispatch |
— | Установите tool, чтобы направить slash-команду напрямую в инструмент, обходя модель |
command-tool |
— | Имя инструмента для вызова, когда задано command-dispatch: tool |
command-arg-mode |
raw |
Для диспетчеризации инструмента передаёт в инструмент необработанную строку аргументов |
homepage |
— | URL, показываемый как "Website" в macOS UI Skills |
Поля ограничений (requires.bins, requires.env и т. д.) см. в
Skills — Ограничения.
Использование {baseDir}
Используйте {baseDir} в теле Skill, чтобы ссылаться на файлы внутри каталога
Skill без жёстко заданных путей:
Run the helper script at `{baseDir}/scripts/run.sh`.Добавление условной активации
Ограничьте Skill так, чтобы он загружался только при доступности его зависимостей:
---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---Параметры ограничений
| Ключ | Описание |
|---|---|
requires.bins |
Все бинарные файлы должны существовать в PATH |
requires.anyBins |
Хотя бы один бинарный файл должен существовать в PATH |
requires.env |
Каждая переменная env должна существовать в процессе или конфигурации |
requires.config |
Каждый путь openclaw.json должен иметь truthy-значение |
os |
Фильтр платформы: ["darwin"], ["linux"], ["win32"] |
always |
Установите true, чтобы пропустить все ограничения и всегда включать Skill |
Полный справочник: Skills — Ограничения.
Переменные окружения и API-ключи
Привяжите API-ключ к записи Skill в openclaw.json:
{ skills: { entries: { "gemini-search": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, }, }, },}Ключ внедряется в процесс хоста только на этот ход агента. Он не попадает в песочницу — см. переменные env в песочнице.
Предложение через Skill Workshop
Для Skills, подготовленных агентом, или когда перед запуском Skill в работу нужен
операторский review, используйте предложения Skill Workshop
вместо прямой записи SKILL.md.
# Propose a brand-new skillopenclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal ./PROPOSAL.md # Propose an update to an existing skillopenclaw skills workshop propose-update hello-world \ --proposal ./PROPOSAL.md \ --description "Updated greeting skill"Используйте --proposal-dir, когда предложение включает вспомогательные файлы:
openclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal-dir ./hello-world-proposal/Каталог должен содержать PROPOSAL.md. Вспомогательные файлы можно размещать в assets/,
examples/, references/, scripts/ или templates/.
После review:
openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Полный жизненный цикл предложения см. в Skill Workshop.
Публикация в ClawHub
Убедитесь, что ваш SKILL.md заполнен полностью
Убедитесь, что заданы name, description и все поля ограничений metadata.openclaw.
Добавьте URL homepage, если у вас есть страница проекта.
Установите Skill ClawHub
Skill ClawHub документирует текущую форму команды публикации и обязательные метаданные:
openclaw skills install @openclaw/clawhub-publishОпубликуйте
clawhub publishПолный процесс см. в ClawHub — Публикация.
Рекомендации
См. также
Порядок загрузки, ограничения, allowlists и формат SKILL.md.
Очередь предложений для Skills, подготовленных агентом.
Полная схема конфигурации skills.*.
Просматривайте и публикуйте Skills в публичном registry.
Plugins могут поставлять Skills вместе с инструментами, которые они документируют.