Skills

Майстерня Skills

Status: proposal

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

Skill Workshop записує лише Skills робочого простору. Він ніколи не змінює вбудовані Skills, Skills плагінів, ClawHub, додаткових коренів, керовані Skills, Skills особистих агентів або системні Skills.

Як це працює

  • Спочатку пропозиція: згенерований вміст зберігається як PROPOSAL.md, а не SKILL.md.
  • Застосування — єдиний запис до активної версії: створення, оновлення та редагування ніколи не змінюють активні Skills.
  • У межах робочого простору: створення спрямовуються до кореня skills/ робочого простору; оновлення дозволені лише для доступних для запису Skills робочого простору.
  • Без перезаписування: створення завершується помилкою, якщо цільова Skills уже існує.
  • Прив’язка до хешу: пропозиції оновлення прив’язуються до поточного хешу цілі та переходять у стан stale, якщо активна Skills змінюється до застосування.
  • Контроль сканером: перед записом застосування повторно запускає сканер безпеки.
  • Можливість відновлення: перед зміною активних файлів застосування записує метадані відкочування.
  • Узгоджені інтерфейси: чат, CLI та Gateway викликають ту саму службу.

Життєвий цикл

text
створення/оновлення -> очікуванняредагування         -> очікуваннязастосування        -> застосовановідхилення          -> відхиленокарантин            -> на карантинізміна цілі          -> застаріло

Редагувати, застосовувати, відхиляти або поміщати на карантин можна лише пропозицію зі станом pending.

Керування життєвим циклом

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

Закріплені Skills не проходять переходи життєвого циклу. Застаріла Skills повертається до стану active після використання та наступного проходу перевірки. Архівовані Skills повертаються лише через явне відновлення:

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

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

Усі команди куратора приймають --json. Команда стану також повідомляє про детерміновані кандидати на перекриття лише як пропозиції; вона ніколи не об’єднує Skills і не викликає модель.

Чат

Попросіть агента створити потрібну Skills; він викличе skill_workshop і поверне ідентифікатор пропозиції.

Навчання на основі нещодавньої роботи

Використовуйте /learn, щоб перетворити поточну розмову або названі джерела на пропозицію Skills, сформовану відповідно до стандартів:

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

Без запиту /learn просить агента виокремити придатний для повторного використання робочий процес із поточної розмови. За наявності запиту агент розглядає шляхи, URL-адреси, вставлені нотатки та посилання на розмову як джерела, дотримуючись вимог щодо фокуса, обсягу та іменування. Він збирає джерела за допомогою наявних інструментів, а потім викликає skill_workshop з action: "create".

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

Створення:

text
Створи Skills під назвою morning-catchup, яка виконує мою понеділкову процедуру роботи з вхідними повідомленнями.

Оновлення наявної Skills робочого простору:

text
Онови trip-planning, щоб перед бронюванням також перевіряти схеми місць.

Ітеративне доопрацювання пропозиції в очікуванні:

text
Покажи мені пропозицію morning-catchup.Відредагуй її, щоб вона також позначала все з позначкою терміновості.Застосуй пропозицію morning-catchup.

Ініційовані агентом apply, reject і quarantine типово виконуються без додаткового запиту на затвердження. Установіть skills.workshop.approvalPolicy у значення "pending", щоб вимагати затвердження оператором перед цими діями.

Коли затвердження обов’язкове, запит указує ідентифікатор пропозиції та цільову Skills, а також показує опис пропозиції, кількість допоміжних файлів і розмір основного вмісту. Час запитів на затвердження обмежено так, щоб вони завершилися до спрацювання сторожового таймера інструмента агента. Якщо рішення не надійшло до завершення строку дії запиту, дія життєвого циклу не виконується: пропозиція залишається в очікуванні без змін. Рішення можна ухвалити пізніше в інтерфейсі Skill Workshop або виконати openclaw skills workshop apply|reject|quarantine <proposal-id>. Агенти не повинні циклічно повторювати дію життєвого циклу, строк дії якої завершився.

CLI

bash
# Створенняopenclaw skills workshop propose-create \  --name morning-catchup \  --description "Щоденне опрацювання вхідних повідомлень: сортування, архівування, виокремлення, створення чернеток, планування" \  --proposal ./PROPOSAL.md # Оновлення наявної Skills робочого простору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 із метаданими frontmatter, призначеними лише для пропозиції:

markdown
---name: "morning-catchup"description: "Щоденне опрацювання вхідних повідомлень: сортування, архівування, виокремлення, створення чернеток, планування"status: proposalversion: "v1"date: "2026-05-30T00:00:00.000Z"---

Під час застосування Skill Workshop записує активний SKILL.md і видаляє поля, призначені лише для пропозиції: status, version пропозиції та date пропозиції.

Допоміжні файли

Використовуйте --proposal-dir, коли запропонованій Skills потрібні файли поруч із 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 Назва або ключ наявної Skills
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; користувач вирішує, чи створювати пропозицію. Ця вбудована пропозиція сама по собі не створює й не змінює Skills. Увімкніть skills.workshop.autonomous.enabled, щоб натомість безпосередньо створювати пропозиції в очікуванні. У Control UI вкладка Workshop пропонує те саме налаштування як перемикач Самонавчання в заголовку сторінки та як кнопку ввімкнення на порожній дошці пропозицій.

Сканування минулих сеансів

Control UI може переглядати давнішу роботу без увімкнення автономного самонавчання. Відкрийте Plugins → Workshop і виберіть Знайти ідеї для Skills. Сканування починається з найновіших придатних сеансів і перевіряє обмежене вікно змістовної роботи. Воно пропускає сеанси Cron, Heartbeat, хуків, підлеглих агентів, ACP, сеанси, що належать плагінам, і внутрішні сеанси перевірки, а також розмови, у яких модель виконала менше шести ходів.

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

Одне сканування може створити або відредагувати не більше трьох пропозицій в очікуванні. Воно не може застосовувати, відхиляти, поміщати на карантин або редагувати активну Skills. Workshop показує сукупне охоплення, наприклад Переглянуто 20 сеансів · 18 червня–сьогодні · Знайдено 2 ідеї. Виберіть Сканувати давнішу роботу, щоб продовжити від збереженого курсора найстарішого сеансу. Після вичерпання доступної історії дія змінюється на Сканувати нову роботу.

Історичний перегляд виконується вручну, навіть коли skills.workshop.autonomous.enabled має значення false. Кожне натискання запускає виконання моделі, тому застосовуються тарифи постачальника та умови оброблення даних. Курсор і показники охоплення зберігаються у спільній базі даних стану OpenClaw; вміст транскрипту не копіюється до стану сканування.

Коли автономне збирання ввімкнено, OpenClaw також може виконувати консервативний перегляд після успішної, значної роботи та після переходу всієї агентної системи в стан бездіяльності. Цей ізольований перегляд може створити або переглянути щонайбільше одну пропозицію, що очікує на розгляд. Він не може оновлювати активну навичку або застосовувати, відхиляти чи поміщати пропозицію на карантин, навіть коли approvalPolicy має значення "auto".

Докладніше про ввімкнення, критерії відповідності, конфіденційність і витрати, порогове значення для пропозицій та усунення несправностей див. у розділі Самонавчання.

Схвалення та автономність

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

Автономне збирання розпізнає перспективні правила (наприклад, «відтепер») і реактивні виправлення (наприклад, «це не те, про що я просив»). Воно групує нові інструкції за темами, створюючи до трьох пропозицій за один хід, спрямовує збіги словника до наявних навичок робочого простору з правом запису та переглядає власну пропозицію, що очікує на розгляд, коли інше виправлення стосується тієї самої навички.

Для успішної значної роботи без явного виправлення ізольований запуск вибраної моделі визначає, чи досягає завершена траєкторія консервативного порога для пропозиції. Моделі переднього плану не пропонують навчатися до надання відповіді. Фоновий рецензент зберігає запуск переднього плану як походження пропозиції, не має доступу до загальних інструментів агента та не може ухвалювати рішення щодо життєвого циклу. Перегляд починається лише тоді, коли середовище виконання переднього плану повідомляє як точну фактично вибрану модель, так і те, що skill_workshop справді був доступний. Тому обмежувальна або невідома політика інструментів безпечним чином блокує дію та не створює пропозиції.

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

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

Методи Gateway

Метод Область дії
skills.proposals.list operator.read
skills.proposals.inspect operator.read
skills.proposals.historyStatus operator.read
skills.proposals.historyScan operator.admin
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, для інтерфейсів, які просять агента переглянути вміст, а не надсилати буквальний новий вміст.

historyStatus і historyScan — допоміжні методи Control UI. historyScan приймає direction: "older" | "newer"; він завжди залишає результати як пропозиції, що очікують на розгляд.

Зберігання

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: пропозиція навички, що очікує на розгляд.
  • rollback.json: метадані відновлення, записані до того, як застосування змінить активні файли.

Обмеження

Обмеження Значення
Опис 160 байтів
Тіло пропозиції skills.workshop.maxSkillBytes (типово 40,000; жорстка верхня межа 1 MiB)
Допоміжні файли 64 на пропозицію
Розмір допоміжного файлу 256 KiB кожен, загалом 2 MiB
Пропозиції, що очікують на розгляд і перебувають на карантині 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 лише для навмисно спільних кореневих каталогів навичок.
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; тепер ця команда пояснює, що Майстерня навичок вбудована, і за потреби виводить ту саму підказку щодо політики.

Пов’язані матеріали

Was this useful?
On this page

On this page