SKILL.md у:
- Memory зберігає факти, уподобання, сутності та попередній контекст.
- Skills зберігають повторно використовувані процедури, яких агент має дотримуватися в майбутніх завданнях.
- Skill Workshop — це місток від корисного ходу до стійкого workspace Skill, із перевірками безпеки та необов’язковим схваленням.
- як перевіряти externally sourced анімовані GIF-ресурси
- як замінювати ресурси скриншотів і перевіряти розміри
- як запускати QA-сценарій, специфічний для repo
- як налагоджувати повторюваний збій provider
- як виправляти застарілу локальну нотатку робочого процесу
- фактів на кшталт «користувачу подобається синій»
- широкої автобіографічної пам’яті
- архівації сирих транскриптів
- секретів, облікових даних або прихованого тексту prompt
- одноразових інструкцій, які не повторяться
Типовий стан
Вбудований Plugin є експериментальним і типово вимкненим, доки його не ввімкнено явно вplugins.entries.skill-workshop.
Маніфест Plugin не задає enabledByDefault: true. Типове значення enabled: true
усередині схеми конфігурації Plugin застосовується лише після того, як запис Plugin уже
було вибрано й завантажено.
Експериментальний означає:
- Plugin достатньо підтримується для opt-in тестування та dogfooding
- зберігання пропозицій, пороги reviewer і евристики захоплення можуть еволюціонувати
- рекомендований початковий режим — pending approval
- auto apply призначений для довірених персональних/workspace конфігурацій, а не для спільних або ворожих середовищ із великим обсягом вхідних даних
Увімкнення
Мінімальна безпечна конфігурація:- tool
skill_workshopдоступний - явні повторно використовувані виправлення ставляться в чергу як pending proposals
- reviewer-перевірки на основі порогів можуть пропонувати оновлення Skills
- жоден файл Skill не записується, доки pending proposal не буде застосовано
approvalPolicy: "auto" усе одно використовує той самий scanner і шлях quarantine. Він
не застосовує proposals із критичними findings.
Конфігурація
| Ключ | Типове значення | Діапазон / значення | Значення |
|---|---|---|---|
enabled | true | boolean | Вмикає Plugin після завантаження запису Plugin. |
autoCapture | true | boolean | Вмикає post-turn capture/review після успішних ходів агента. |
approvalPolicy | "pending" | "pending", "auto" | Ставити proposals у чергу або автоматично записувати безпечні proposals. |
reviewMode | "hybrid" | "off", "heuristic", "llm", "hybrid" | Вибирає явне захоплення виправлень, reviewer LLM, обидва варіанти або жоден. |
reviewInterval | 15 | 1..200 | Запускати reviewer після такої кількості успішних ходів. |
reviewMinToolCalls | 8 | 1..500 | Запускати reviewer після такої кількості спостережених викликів tools. |
reviewTimeoutMs | 45000 | 5000..180000 | Тайм-аут для вбудованого запуску reviewer. |
maxPending | 50 | 1..200 | Максимум pending/quarantined proposals на workspace. |
maxSkillBytes | 40000 | 1024..200000 | Максимальний розмір згенерованого файла skill/support. |
Шляхи захоплення
Skill Workshop має три шляхи захоплення.Пропозиції через tool
Модель може викликатиskill_workshop безпосередньо, коли бачить повторно використовувану процедуру
або коли користувач просить її зберегти/оновити Skill.
Це найявніший шлях, і він працює навіть з autoCapture: false.
Евристичне захоплення
КолиautoCapture увімкнено, а reviewMode має значення heuristic або hybrid,
Plugin сканує успішні ходи на явні фрази виправлення від користувача:
next timefrom now onremember tomake sure toalways ... use/check/verify/record/save/preferprefer ... when/for/instead/usewhen asked
- завдання з анімованими GIF ->
animated-gif-workflow - завдання зі скриншотами або ресурсами ->
screenshot-asset-workflow - завдання з QA або сценаріями ->
qa-scenario-workflow - завдання з GitHub PR ->
github-pr-workflow - резервний варіант ->
learned-workflows
LLM reviewer
КолиautoCapture увімкнено, а reviewMode має значення llm або hybrid, Plugin
запускає компактний вбудований reviewer після досягнення порогів.
Reviewer отримує:
- текст недавнього транскрипту, обмежений останніми 12 000 символів
- до 12 наявних workspace Skills
- до 2 000 символів з кожного наявного Skill
- інструкції лише у форматі JSON
disableTools: truetoolsAllow: []disableMessageTool: true
{ "action": "none" }, або одну proposal. Поле action має значення create, append або replace — надавайте перевагу append/replace, коли відповідний Skill уже існує; використовуйте create, лише коли жоден наявний Skill не підходить.
Приклад create:
append додає section + body. replace замінює oldText на newText у вказаному Skill.
Життєвий цикл proposal
Кожне згенероване оновлення стає proposal з такими полями:idcreatedAtupdatedAtworkspaceDir- необов’язковий
agentId - необов’язковий
sessionId skillNametitlereasonsource:tool,agent_endабоreviewerstatuschange- необов’язкові
scanFindings - необов’язковий
quarantineReason
pending- очікує схваленняapplied- записано в<workspace>/skillsrejected- відхилено оператором/моделлюquarantined- заблоковано критичними findings scanner
maxPending.
Довідник по tool
Plugin реєструє один agent tool:status
Порахувати proposals за станом для активного workspace.
list_pending
Перелічити pending proposals.
status:
pendingappliedrejectedquarantined
list_quarantine
Перелічити quarantined proposals.
skill-workshop: quarantined <skill>.
inspect
Отримати proposal за id.
suggest
Створити proposal. За approvalPolicy: "pending" (типово) це ставить її в чергу, а не записує.
Примусово виконати безпечний запис (apply: true)
Примусово виконати безпечний запис (apply: true)
Примусово залишити pending за auto policy (apply: false)
Примусово залишити pending за auto policy (apply: false)
Додати до названого розділу
Додати до названого розділу
Замінити точний текст
Замінити точний текст
apply
Застосувати pending proposal.
apply відмовляється застосовувати quarantined proposals:
reject
Позначити proposal як rejected.
write_support_file
Записати допоміжний файл всередині каталогу наявного або запропонованого Skill.
Дозволені каталоги верхнього рівня для допоміжних файлів:
references/templates/scripts/assets/
maxSkillBytes, скануються й записуються атомарно.
Записи Skills
Skill Workshop записує лише в:- переводяться в нижній регістр
- послідовності символів, що не входять до
[a-z0-9_-], перетворюються на- - початкові/кінцеві неалфавітно-цифрові символи видаляються
- максимальна довжина — 80 символів
- фінальна назва має відповідати
[a-z0-9][a-z0-9_-]{1,79}
create:
- якщо Skill не існує, Skill Workshop записує новий
SKILL.md - якщо він уже існує, Skill Workshop додає body до
## Workflow
append:
- якщо Skill існує, Skill Workshop додає в запитаний розділ
- якщо не існує, Skill Workshop створює мінімальний Skill, а потім додає в нього
replace:
- Skill уже має існувати
oldTextмає бути присутнім у точному вигляді- замінюється лише перший точний збіг
Модель безпеки
Skill Workshop має safety scanner для згенерованого вмістуSKILL.md і допоміжних
файлів.
Критичні findings переводять proposals у quarantine:
| Rule id | Блокує вміст, який… |
|---|---|
prompt-injection-ignore-instructions | наказує агенту ігнорувати попередні/вищі за пріоритетом інструкції |
prompt-injection-system | посилається на system prompts, developer messages або приховані інструкції |
prompt-injection-tool | заохочує обходити permission/approval для tools |
shell-pipe-to-shell | містить curl/wget, передані через pipe у sh, bash або zsh |
secret-exfiltration | схоже на спробу надіслати env/process env дані через мережу |
| Rule id | Попереджає про… |
|---|---|
destructive-delete | широкі команди в стилі rm -rf |
unsafe-permissions | використання дозволів у стилі chmod 777 |
- зберігають
scanFindings - зберігають
quarantineReason - відображаються в
list_quarantine - не можуть бути застосовані через
apply
Вказівки для prompt
Коли Skill Workshop увімкнено, він додає короткий розділ prompt, який каже агенту використовуватиskill_workshop для стійкої процедурної пам’яті.
Ці вказівки наголошують на:
- процедурах, а не фактах/уподобаннях
- виправленнях від користувача
- неочевидних успішних процедурах
- повторюваних підводних каменях
- виправленні застарілих/слабких/неправильних Skills через append/replace
- збереженні повторно використовуваної процедури після довгих циклів tools або складних виправлень
- короткому імперативному тексті Skill
- відсутності зливів транскриптів
approvalPolicy:
- режим pending: ставити suggestions у чергу; застосовувати лише після явного схвалення
- режим auto: застосовувати безпечні оновлення workspace Skills, коли їхня повторна корисність очевидна
Вартість і поведінка runtime
Евристичне захоплення не викликає модель. LLM review використовує вбудований run на активній/типовій моделі агента. Це порігозалежний механізм, тому типово він не запускається на кожному ході. Reviewer:- використовує той самий налаштований контекст provider/model, коли це можливо
- резервно використовує типові значення runtime агента
- має
reviewTimeoutMs - використовує легковагий bootstrap-контекст
- не має tools
- нічого не записує напряму
- може лише видати proposal, яка проходить звичайний scanner і шлях approval/quarantine
Робочі шаблони
Використовуйте Skill Workshop, коли користувач каже:- “next time, do X”
- “from now on, prefer Y”
- “make sure to verify Z”
- “save this as a workflow”
- “this took a while; remember the process”
- “update the local skill for this”
- має форму транскрипту
- не є імперативним
- містить шумні одноразові деталі
- не каже наступному агенту, що робити
Налагодження
Перевірте, чи завантажено Plugin:| Симптом | Ймовірна причина | Що перевірити |
|---|---|---|
| Tool недоступний | Запис Plugin не ввімкнено | plugins.entries.skill-workshop.enabled і openclaw plugins list |
| Автоматична proposal не з’являється | autoCapture: false, reviewMode: "off" або пороги не досягнуто | Config, статус proposal, логи Gateway |
| Евристика не спрацювала | Формулювання користувача не збіглося з шаблонами виправлень | Використайте явний skill_workshop.suggest або ввімкніть reviewer LLM |
| Reviewer не створив proposal | Reviewer повернув none, невалідний JSON або спрацював тайм-аут | Логи Gateway, reviewTimeoutMs, пороги |
| Proposal не застосовується | approvalPolicy: "pending" | list_pending, потім apply |
| Proposal зникла з pending | Було повторно використано duplicate proposal, спрацювало обрізання max pending або її застосовано/відхилено/quarantined | status, list_pending з фільтрами status, list_quarantine |
| Файл Skill існує, але модель його не бачить | Знімок Skill не оновився або gating Skill його виключає | openclaw skills status і придатність workspace Skill |
skill-workshop: queued <skill>skill-workshop: applied <skill>skill-workshop: quarantined <skill>skill-workshop: heuristic capture skipped: ...skill-workshop: reviewer skipped: ...skill-workshop: reviewer found no update
QA-сценарії
QA-сценарії, що підтримуються repo:qa/scenarios/plugins/skill-workshop-animated-gif-autocreate.mdqa/scenarios/plugins/skill-workshop-pending-approval.mdqa/scenarios/plugins/skill-workshop-reviewer-autonomous.md
reviewMode: "llm" і перевіряє вбудований reviewer pass.
Коли не варто вмикати auto apply
УникайтеapprovalPolicy: "auto", коли:
- workspace містить чутливі процедури
- агент працює з недовіреним вводом
- Skills спільно використовуються широкою командою
- ви ще налаштовуєте prompts або правила scanner
- модель часто обробляє ворожий web/email-контент