Skills

Мастерская Skills

Status: proposal

Skill Workshop — управляемый механизм OpenClaw для создания и обновления Skills рабочего пространства. Агенты и операторы никогда не записывают SKILL.md напрямую через этот механизм — они создают предложение (ожидающий черновик с содержимым, привязкой к целевому объекту, состоянием сканера, хешами и метаданными отката), которое становится действующим Skill только после применения.

Skill Workshop записывает только Skills рабочего пространства. Он никогда не затрагивает встроенные Skills, плагины, ClawHub, дополнительные корни, управляемые Skills, Skills личных агентов или системные Skills.

Как это работает

  • Сначала предложение: сгенерированное содержимое сохраняется как PROPOSAL.md, а не SKILL.md.
  • Применение — единственная операция записи в действующий Skill: создание, обновление и редактирование никогда не изменяют активные Skills.
  • В пределах рабочего пространства: создаваемые Skills направляются в корень skills/ рабочего пространства; обновлять можно только доступные для записи Skills рабочего пространства.
  • Без перезаписи: создание завершается ошибкой, если целевой Skill уже существует.
  • Привязка по хешу: предложения обновления привязываются к текущему хешу целевого объекта и переходят в состояние stale, если действующий Skill изменяется до применения.
  • Проверка сканером: перед записью применение повторно запускает сканер безопасности.
  • Возможность восстановления: перед изменением действующих файлов применение записывает метаданные отката.
  • Единообразные интерфейсы: чат, CLI и Gateway вызывают один и тот же сервис.

Жизненный цикл

text
создание/обновление -> ожидаетредактирование      -> ожидаетприменение          -> примененоотклонение          -> отклоненокарантин            -> помещено в карантинизменение цели      -> устарело

Редактировать, применять, отклонять или помещать в карантин можно только предложение pending.

Управление жизненным циклом

Gateway отслеживает совокупное использование Skills в общей базе данных состояния. Раз в день он проверяет Skills, созданные и применённые через Skill Workshop. Skills, не использовавшиеся более 30 дней, переходят в состояние stale; через 90 дней они переходят в состояние archived и не включаются в новые снимки Skills агентов. Файлы архивированных Skills остаются на диске без изменений. Созданные вручную Skills никогда не подвергаются такому управлению; в управление жизненным циклом включаются только Skills, созданные из предложений Skill Workshop.

Закреплённые Skills не участвуют в переходах жизненного цикла. Устаревший Skill возвращается в состояние active после использования и следующего запуска проверки. Архивированные Skills возвращаются только посредством явного восстановления:

Переходы жизненного цикла и восстановление применяются к новым сеансам; выполняющиеся сеансы сохраняют текущий снимок Skills.

bash
openclaw skills curator statusopenclaw skills curator pin <skill>openclaw skills curator unpin <skill>openclaw skills curator restore <skill>

Все команды управления принимают --json. Команда состояния также сообщает о детерминированно обнаруженных кандидатах на пересечение, но только как о рекомендациях; она никогда не объединяет Skills и не вызывает модель.

Чат

Попросите агента создать нужный Skill; он вызовет skill_workshop и вернёт идентификатор предложения.

Обучение на основе недавней работы

Используйте /learn, чтобы преобразовать текущий разговор или указанные источники в одно предложение Skill, составленное согласно стандартам:

text
/learn/learn docs/runbook.md и https://example.com/guide; сосредоточься на восстановлении

Если запрос отсутствует, /learn просит агента выделить повторно используемый рабочий процесс из текущего разговора. Если запрос указан, агент рассматривает пути, URL, вставленные заметки и ссылки на разговор как источники, соблюдая требования к направленности, области действия и именованию. Он собирает источники с помощью имеющихся инструментов, а затем вызывает skill_workshop с action: "create".

Полученное предложение остаётся в состоянии pending; /learn никогда не применяет его. Проверьте и примените его через обычный процесс утверждения или с помощью openclaw skills workshop.

Создание:

text
Создай Skill с именем morning-catchup, который выполняет мою стандартную обработку входящих по понедельникам.

Обновление существующего Skill рабочего пространства:

text
Обнови trip-planning, чтобы он также проверял схемы мест перед бронированием.

Последовательное улучшение ожидающего предложения:

text
Покажи предложение morning-catchup.Измени его, чтобы он также отмечал всё, что помечено как срочное.Примени предложение morning-catchup.

Инициированные агентом apply, reject и quarantine по умолчанию показывают запрос на подтверждение. Установите skills.workshop.approvalPolicy в "auto", чтобы пропускать его в доверенных средах.

В запросе указываются идентификатор предложения и целевой Skill, а также показываются описание предложения, количество вспомогательных файлов и размер основного содержимого. Время ожидания подтверждения ограничено, чтобы операция завершилась до срабатывания сторожевого таймера инструмента агента. Если решение не поступает до истечения срока запроса, действие жизненного цикла не выполняется: предложение остаётся ожидающим и неизменным. Примите решение позже в интерфейсе Skill Workshop или выполните openclaw skills workshop apply|reject|quarantine <proposal-id>. Агентам не следует циклически повторять действие жизненного цикла после истечения срока его подтверждения.

CLI

bash
# Созданиеopenclaw skills workshop propose-create \  --name morning-catchup \  --description "Ежедневная обработка входящих: сортировка, архивация, выделение важного, создание черновиков, планирование" \  --proposal ./PROPOSAL.md # Обновление существующего Skill рабочего пространстваopenclaw skills workshop propose-update trip-planning --proposal ./PROPOSAL.md # Просмотр списка и подробностейopenclaw skills workshop listopenclaw skills workshop inspect <proposal-id> # Редактирование до утвержденияopenclaw skills workshop revise <proposal-id> --proposal ./PROPOSAL.md # Завершениеopenclaw skills workshop apply <proposal-id>openclaw skills workshop reject <proposal-id> --reason "Дубликат"openclaw skills workshop quarantine <proposal-id> --reason "Требуется проверка безопасности"

Каждая подкоманда принимает --agent <id> (целевое рабочее пространство; по умолчанию определяется из текущего рабочего каталога, а затем используется агент по умолчанию) и --json (структурированный вывод). propose-create, propose-update и revise также принимают --goal <text> и --evidence <text>, чтобы сохранять контекст предложения вместе с --proposal.

Содержимое предложения

Пока предложение ожидает обработки, оно хранится как PROPOSAL.md со служебными полями, используемыми только для предложения:

markdown
---name: "morning-catchup"description: "Ежедневная обработка входящих: сортировка, архивация, выделение важного, создание черновиков, планирование"status: proposalversion: "v1"date: "2026-05-30T00:00:00.000Z"---

При применении Skill Workshop записывает действующий SKILL.md и удаляет поля, относящиеся только к предложению: status, version предложения и date предложения.

Вспомогательные файлы

Используйте --proposal-dir, когда предлагаемому Skill нужны файлы рядом с PROPOSAL.md:

bash
openclaw skills workshop propose-create \  --name weekly-update \  --description "Итоги пятницы: статистика, основные достижения, три главных задачи на следующую неделю" \  --proposal-dir ./weekly-update-proposal

Каталог должен содержать PROPOSAL.md. Вспомогательные файлы должны находиться в assets/, examples/, references/, scripts/ или templates/. Skill Workshop сканирует, хеширует и сохраняет их вместе с предложением, а затем записывает рядом с действующим SKILL.md только при применении.

Отклоняются следующие пути вспомогательных файлов: абсолютные пути, скрытые сегменты пути, выход за пределы каталога, пересекающиеся пути, исполняемые файлы, текст не в UTF-8, нулевые байты и пути за пределами стандартных каталогов вспомогательных файлов.

Инструмент агента

Модель использует skill_workshop с одним обязательным параметром action: create | update | revise | list | inspect | apply | reject | quarantine. Остальные параметры применяются в зависимости от действия:

Параметр Используется в Примечания
name create, inspect, revise Обязателен для create; в остальных случаях находит ожидающее предложение по имени
description create, update, revise Не более 160 байт
skill_name update Имя или ключ существующего Skill
proposal_content create, update, revise Сохраняется как PROPOSAL.md; ограничено значением skills.workshop.maxSkillBytes
support_files create, update, revise Массив { path, content }
goal, evidence create, update, revise Контекст в свободной форме
proposal_id inspect, revise, apply, reject, quarantine Целевое предложение
reason apply, reject, quarantine Необязательный
query, status, limit list Фильтрация и разбиение на страницы; максимум limit — 50, по умолчанию — 20

Агенты должны использовать skill_workshop для работы со сгенерированными Skills. Они не должны создавать или изменять файлы предложений через write, edit, exec, команды оболочки или прямые операции с файловой системой.

Предлагаемые Skills

OpenClaw обнаруживает долговременные указания, такие как «в следующий раз», «запомни» и исправления в ответ на действия, когда завершается интерактивный ход, включая неудачные ходы. На следующем ходу агент предлагает сохранить последний обнаруженный рабочий процесс через skill_workshop; пользователь решает, создавать ли предложение. Эта встроенная функция рекомендаций сама по себе не создаёт и не изменяет Skill. Включите skills.workshop.autonomous.enabled, чтобы вместо этого непосредственно создавать ожидающие предложения. В Control UI вкладка Workshop предоставляет ту же настройку в виде переключателя Самообучение в заголовке страницы и кнопки включения на пустой доске предложений.

При включённом автономном сборе OpenClaw также может выполнять консервативную проверку после успешной, существенной работы и после перехода всей системы агентов в состояние бездействия. Эта изолированная проверка может создать или изменить не более одного ожидающего предложения. Она не может обновить действующий Skill либо применить, отклонить или поместить предложение в карантин, даже если approvalPolicy имеет значение "auto".

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

Утверждение и автономность

json5
{  skills: {    workshop: {      autonomous: {        enabled: false,      },      allowSymlinkTargetWrites: false,      approvalPolicy: "pending",      maxPending: 50,      maxSkillBytes: 40000,    },  },}
Настройка Значение по умолчанию Эффект
autonomous.enabled false Создаёт ожидающие предложения на основе явных исправлений, а после периода бездействия — на основе существенной завершённой работы, обеспечивающей повторно используемое восстановление или значительную экономию при повторном выполнении полного цикла.
allowSymlinkTargetWrites false Позволяет применять изменения через символические ссылки на Skills рабочей области, фактическая цель которых указана в skills.load.allowSymlinkTargets.
approvalPolicy "pending" "pending" требует запроса подтверждения перед инициированными агентом действиями apply, reject или quarantine. "auto" пропускает запрос (агент всё равно должен вызвать действие).
maxPending 50 Ограничивает количество ожидающих и помещённых в карантин предложений для каждой рабочей области (1-200).
maxSkillBytes 40000 Ограничивает размер тела предложения в байтах (1024-200000).

Автономный сбор распознаёт предполагаемые правила (например, «в дальнейшем») и реактивные исправления (например, «это не то, о чём я просил»). Он группирует новые инструкции по темам, создавая до трёх предложений за один ход, направляет совпадения словаря в существующие доступные для записи Skills рабочей области и пересматривает собственное ожидающее предложение, когда другое исправление относится к тому же Skill.

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

Полное описание поведения автономной проверки и модели безопасности см. в разделе Самообучение.

Описание предложения всегда ограничено 160 байтами независимо от maxSkillBytes.

Методы Gateway

Метод Область действия
skills.proposals.list operator.read
skills.proposals.inspect operator.read
skills.proposals.create operator.admin
skills.proposals.update operator.admin
skills.proposals.revise operator.admin
skills.proposals.requestRevision operator.admin
skills.proposals.apply operator.admin
skills.proposals.reject operator.admin
skills.proposals.quarantine operator.admin
skills.curator.status operator.read
skills.curator.pin operator.admin
skills.curator.unpin operator.admin
skills.curator.restore operator.admin

requestRevision доступен только в Gateway (эквивалента в CLI или инструментах агента нет): он пересылает текстовые инструкции по редактированию в сеанс чата агента-владельца, а не заменяет PROPOSAL.md напрямую; это предназначено для интерфейсов, которые просят агента переработать содержимое, а не отправляют новое содержимое буквально.

Хранение

text
&lt;OPENCLAW_STATE_DIR&gt;/skill-workshop/  proposals.json  proposals/<proposal-id>/    proposal.json    PROPOSAL.md    rollback.json    assets/    examples/    references/    scripts/    templates/

Каталог состояния по умолчанию: ~/.openclaw.

  • proposal.json: каноническая запись предложения.
  • proposals.json: индекс для быстрого получения списка, который можно перестроить из каталогов предложений.
  • PROPOSAL.md: ожидающее предложение Skill.
  • rollback.json: метаданные восстановления, записываемые до того, как применение изменений затронет рабочие файлы.

Ограничения

Ограничение Значение
Описание 160 байт
Тело предложения skills.workshop.maxSkillBytes (по умолчанию 40 000; жёсткий предел 1 МиБ)
Вспомогательные файлы 64 на предложение
Размер вспомогательного файла 256 КиБ каждый, всего 2 МиБ
Ожидающие и помещённые в карантин предложения skills.workshop.maxPending на рабочую область (по умолчанию 50)

Устранение неполадок

Проблема Решение
Skill proposal description is too large Сократите description до 160 байт или менее.
Skill proposal content is too large Сократите тело предложения или увеличьте skills.workshop.maxSkillBytes.
Target skill changed after proposal creation Пересмотрите предложение с учётом текущей цели или создайте новое предложение.
Proposal scan failed Изучите результаты сканирования, затем пересмотрите предложение или поместите его в карантин.
untrusted symlink target Настройте skills.load.allowSymlinkTargets и включайте skills.workshop.allowSymlinkTargetWrites только для намеренно общих корневых каталогов Skills.
Support file paths must be under one of... Переместите вспомогательные файлы в assets/, examples/, references/, scripts/ или templates/.
Предложение не отображается в списке Проверьте выбранную рабочую область --agent и OPENCLAW_STATE_DIR.
Агент не может вызвать skill_workshop Проверьте активную политику инструментов и режим запуска. coding включает этот инструмент; в ограничивающих политиках tools.allow его необходимо указывать явно, а изолированные запуски должны использовать обычный сеанс агента на стороне хоста или CLI.

Диагностика политики инструментов

Когда автономный сбор включён, openclaw doctor выполняет проверку core/doctor/skill-workshop-tool-policy для агента по умолчанию. Если политика скрывает skill_workshop, предупреждение указывает первый исключающий слой конфигурации и точное изменение allow или alsoAllow, которое необходимо внести. В старых инструкциях по эксплуатации всё ещё может использоваться openclaw plugins inspect skill-workshop; теперь эта команда сообщает, что Skill Workshop встроен, и выводит ту же подсказку по политике, когда это применимо.

Связанные разделы

Was this useful?
On this page

On this page