Як створити Agent Skill: SKILL.md, тести й безпечний rollout
Практичний посібник зі створення Agent Skill: як вибрати вузьку місію, написати SKILL.md, організувати references і scripts, перевірити activation, результат, переносимість, дозволи та rollback.
Зміст статті
- 01Коротка відповідь: почніть із повторюваної роботи, а не з великого prompt
- 02Визначте контракт skill до створення папки
- 03Напишіть frontmatter, який проходить spec і знаходить правильні задачі
- 04Структуруйте SKILL.md для progressive disclosure
- 05Додайте checks, stop conditions і evidence до кожного ризикового кроку
- 06Тестуйте activation, instruction following і outcome окремо
- 07Перевірте переносимість і supply chain до promotion
- 08Rollout і rollback: versioned skill є release artifact
Передумови
Коротка відповідь: почніть із повторюваної роботи, а не з великого prompt
Хороший Agent Skill кодує одну зв'язну процедуру, яку агент має знаходити за описом, виконувати за перевірюваними кроками й завершувати визначеним артефактом. Почніть із реальної задачі, де вже відомі вхідні дані, правильна послідовність, типові помилки та критерій приймання. Якщо інструкція лише повторює загальні знання моделі або намагається керувати цілим відділом, її важко активувати точно й ще важче тестувати.
Мінімальний skill — папка з файлом SKILL.md. У YAML frontmatter обов'язкові name і description; Markdown body містить інструкції. Scripts, references та assets додавайте лише коли вони дають потрібний код, детальну довідку або шаблон. Skill описує метод роботи, але не видає business authority: filesystem, shell, network, MCP tools і зовнішні записи все одно обмежують client, sandbox, policy та цільова система.
- Одна місія → один перевірюваний результат.
- Description → коли активувати й коли не активувати.
- Body → кроки, перевірки, stop conditions та формат відповіді.
- References/scripts → лише матеріал, який потрібен не в кожному run.
- Authority → окрема policy, а не текстова обіцянка в SKILL.md.
architecture
Карта системи: Як створити Agent Skill: SKILL.md, тести й безпечний rollout
timeline
Контрольні точки для практичного застосування
- Одна місія → один перевірюваний результат.
Контрольна теза з матеріалу статті.
- Description → коли активувати й коли не активувати.
Контрольна теза з матеріалу статті.
- Body → кроки, перевірки, stop conditions та формат відповіді.
Контрольна теза з матеріалу статті.
- References/scripts → лише матеріал, який потрібен не в кожному run.
Контрольна теза з матеріалу статті.
- Authority → окрема policy, а не текстова обіцянка в SKILL.md.
Контрольна теза з матеріалу статті.
- agent-skill-evaluation-checklist
Визначте контракт skill до створення папки
Запишіть mission card: користувач, trigger, inputs, outputs, dependencies, дозволені й заборонені дії, failure state, evidence та owner. Вузький release-review skill може приймати diff і policy, а повертати verdict із посиланнями на порушені правила. Формулювання «допомагає з розробкою» не дає ні стабільного trigger, ні acceptance test. Межа також має пояснювати, які суміжні задачі належать іншому skill або звичайній розмові.
Виділіть deterministic steps. Schema validation, пошук точного файла, арифметика та policy checks краще виконувати кодом або інструментом, а не просити модель імпровізувати. Модель корисна для зіставлення контексту, аналізу неоднозначності й підготовки пояснення. Якщо процедура потребує live data або side effect, опишіть потрібну capability, але підключайте її через окремий tool чи MCP contract із server-side authorization.
Напишіть frontmatter, який проходить spec і знаходить правильні задачі
За поточною специфікацією name має збігатися з назвою батьківської папки, містити лише lowercase літери, цифри й дефіси, не починатися або закінчуватися дефісом і не містити подвійного дефіса. Description має пояснювати і capability, і умови використання. License, compatibility та metadata є опційними; allowed-tools позначено experimental, тому не покладайтеся на нього як на переносимий security control.
Побудуйте activation table до шліфування тексту: п'ять явних позитивних запитів, п'ять близьких негативних і п'ять неоднозначних. Додайте до description слова, які розрізняють ці групи, але не перетворюйте його на список усіх можливих фраз. Після зміни description повторіть suite: metadata завантажується на discovery stage, тому поганий опис може зламати skill ще до читання body.
- Positive trigger → skill потрібен і має завантажитися.
- Near-negative → тема схожа, але місія інша.
- Ambiguous → агент уточнює замість самовільної дії.
- Collision → два skills претендують на один запит; межу треба звузити.
Структуруйте SKILL.md для progressive disclosure
Після активації весь SKILL.md конкурує за context window із запитом, історією та tool results. Тримайте в body лише завжди потрібний маршрут: prerequisites, послідовність, decision points, перевірки, failure handling і output contract. Специфікація рекомендує SKILL.md менш як 500 рядків, а creation guidance — орієнтир до 5 000 tokens. Це не ціль заповнення: коротший точний файл кращий за енциклопедію.
Виносьте довгі API notes, policy tables і domain examples у focused references та явно пишіть, коли їх читати. Не давайте абстрактне «дивись references/»: назвіть файл і trigger. Scripts повинні мати документовані dependencies, deterministic inputs, зрозумілі помилки й безпечні defaults. Assets зберігають шаблони чи output scaffolds; вони не повинні приховувати executable instructions від reviewer.
Додайте checks, stop conditions і evidence до кожного ризикового кроку
Інструкція має розрізняти read, propose і execute. Перед записом визначте source of truth, точний target, authority check, approval boundary та postcondition. Для batch або destructive operation спочатку створіть structured plan, звірте його з джерелом істини, а вже потім виконуйте. Невідомий target, відсутній credential, суперечлива policy або непідтверджений стан повинні завершуватися явним блокером, а не правдоподібною здогадкою.
Опишіть receipt без секретів: input revision, skill digest, client/model, завантажені references, tool calls, policy verdict, validation result і фінальний артефакт. Timeout після можливої зовнішньої дії переводить операцію в unknown: спочатку read-back і reconciliation, потім рішення про retry. SKILL.md може нагадати цей порядок, але idempotency, permissions і kill switch мають примусово реалізовуватися нижчим execution layer.
Тестуйте activation, instruction following і outcome окремо
Static validation перевіряє frontmatter і структуру, але не поведінку. Запустіть три suites. Discovery suite вимірює правильне спрацювання та false activation. Instruction suite перевіряє, чи агент прочитав потрібний reference, зберіг constraints і зупинився на забороненій дії. Outcome suite порівнює artifact або authoritative final state з acceptance criteria. Гарна фінальна відповідь не компенсує пропущений check або зайвий side effect у trajectory.
Fixtures мають охоплювати happy path, missing input, stale reference, malformed file, unavailable tool, prompt injection усередині документа, permission denial, timeout і client without an optional feature. Повторюйте stochastic runs і зберігайте failures, а не лише найкращий приклад. Model grader може оцінити ясність, але filename, schema, test result, дозволи та final state перевіряйте deterministic assertions.
- Lint → format, name, links і required files.
- Activation → positive, negative, ambiguous і collision prompts.
- Execution → trajectory, tool envelope та failure transitions.
- Outcome → артефакт, citations і authoritative state.
- Regression → та сама suite після зміни skill, client, model або tool.
Перевірте переносимість і supply chain до promotion
Сумісність із форматом не гарантує однакової поведінки. Clients відрізняються discovery paths, metadata support, tool names, sandbox, approval UX і context compaction. Створіть portability manifest із skill digest, required files, expected tools, environment assumptions, forbidden effects, fixtures та підтриманими client/version. Запустіть один corpus у кожному цільовому harness і порівнюйте verified outcome, а не стиль тексту.
Для стороннього skill фіксуйте source URL, license, reviewed commit або digest, maintainer, dependencies, scripts, network destinations, requested credentials, data classes і expiry. Review diff при кожному update. Unreviewed package запускайте без секретів у disposable sandbox; production promotion потребує pinned version, code review, malware/dependency checks, bounded permissions і власної eval suite. Популярність репозиторію не є security evidence.
Rollout і rollback: versioned skill є release artifact
Promotion рухається від local lint і offline fixtures до disposable sandbox, read-only canary та лише потім до bounded writes з approval. Release record містить owner, mission, digest, client/model, dependencies, permissions, eval revision, results, reviewer, rollout scope і expiry. Спостерігайте activation rate за slices, false activations, constraint violations, tool errors, verified task success, human corrections і incident signals без копіювання sensitive inputs у telemetry.
Rollback повинен вимикати discovery entry або повертати known-good digest незалежно від того, чи агент може прочитати нову інструкцію. Після side effect окремо reconcile-іть зовнішній стан; повернення Markdown не скасовує вже виконану дію. Retire skill, коли owner зник, procedure змінилася, залежність більше не підтримується або інший skill канонічно володіє intent. Archive зберігає evidence, але retired version не лишається активним випадково.
Практичні приклади
Приклад: skill для release review
Skill активується лише для release candidate, читає repository policy з названого reference, перевіряє diff і CI receipts та повертає structured PASS/BLOCK verdict. Він не має merge tool. Fixtures містять чистий release, пропущену migration, malicious instruction у changelog, відсутній policy file і близький негативний запит про звичайний code review.
Приклад: invoice-exception skill із MCP
SKILL.md задає triage та required evidence, а read-only MCP tools отримують invoice і purchase order. Write відкривається окремою policy лише після exact approval. Eval перевіряє неправильний tenant, stale invoice, timeout after commit і duplicate request; rollback skill не підміняє reconciliation у фінансовій system of record.
FAQ
Які поля обов'язкові в SKILL.md?
Поточна Agent Skills specification вимагає YAML frontmatter з name і description та Markdown body. Name має відповідати папці; інші поля й допоміжні directories є опційними або implementation-dependent.
Як перевірити, що description написано добре?
Запустіть positive, near-negative, ambiguous і collision prompts. Хороший description активує skill для його місії, не перехоплює суміжні задачі та спонукає до уточнення, коли input недостатній.
Чи можна покласти всі інструкції в один SKILL.md?
Можна, але довгий файл витрачає context на кожну активацію. Лишайте core procedure в SKILL.md, а великі довідки й шаблони завантажуйте за явними triggers через references та assets.
Чи дає allowed-tools безпечні дозволи?
Ні. Специфікація позначає поле experimental, а підтримка клієнтів різниться. Реальні permissions, sandbox, authorization, approvals та side-effect controls мають примусово діяти поза текстом skill.
Пов’язані матеріали
Практичний checklist для оцінювання Agent Skill: activation і collision tests, baseline без skill, assertions для результату й trajectory, security fixtures, переносимість, release gate та rollback evidence.
Claude Skills vs OpenAI Skills: переносимість, API та governanceПрактичне порівняння Claude Skills і OpenAI Skills: спільний формат Agent Skills, різні product surfaces, API lifecycle, sharing та execution boundaries, а також безпечний спосіб підтримувати один skill у двох екосистемах.
Agent Skills vs MCP: інструкції чи runtime-інтеграція для AI-агентаПрактичне порівняння Agent Skills і Model Context Protocol: що пакує процедурні знання, що підключає tools та data, як поєднати обидва шари, перевірити переносимість і не передати агенту зайві повноваження.
Context engineering для AI-агентів: практичний дизайн контекстуЯк проєктувати контекст AI-агента: від system prompt, tools і retrieval до пам’яті, compaction, permissions, evals та керованого rollout без бездумного заповнення context window.
Supply-chain security для AIЗахист AI supply chain охоплює код, моделі, датасети, контейнери й serving-конфігурацію: походження, підпис, сканування, ізольоване складання, policy gates, безпечний rollout та швидкий rollback.
AI agent harness: що це і як спроєктувати надійний runtimeПрактичний гайд про AI agent harness: execution loop, tools, sandbox, durable state, context assembly, permissions, checkpoints, evals, observability і recovery для довготривалих агентних задач.
Як оцінити tool calling AI-агента: практичний чеклістВідтворюваний протокол оцінювання function calling і tool use: вибір інструмента, аргументи, траєкторія, side effects, retries, фінальний стан, вартість і release gate.
Безпека AI-агентівБезпека AI-агентів — практичний розбір production-архітектури: зменшення наслідків помилкового або атакованого рішення через системні межі довіри та мінімальні повноваження. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.
Authorization у MCPAuthorization у MCP визначає, хто й за яких умов може звертатися до захищених capabilities. Стаття пояснює OAuth-базований потік, resource indicators, audience binding, consent, захист токенів і перевірку повноважень на кожній операції.
Тестування MCP-інтеграційТестування MCP-інтеграцій має перевіряти не лише happy path, а й negotiation, schema compatibility, authorization, недовірені результати та невизначені side effects. Будуємо багаторівневу стратегію від unit-тестів до end-to-end eval.
Guardrails і захист від prompt injectionЧому інструкції не є межею безпеки та як ізолювати недовірені дані, обмежувати інструменти, перевіряти вихід і тестувати прямі та непрямі атаки.
Human-in-the-loop для AIHuman-in-the-loop для AI — практичний розбір production-архітектури: залучення людини в конкретній точці ризику з достатнім контекстом для реального, а не формального контролю. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.