Содержание
  1. Механизм: что читается при старте
  2. Каталоги и приоритет
  3. Готовый SKILL.md
  4. Внешние пути и URL
  5. Как проверить, что навык загружен
  6. Навык, правило, инструкция, режим
  7. Пять ошибок загрузки
  8. Shell-команды: доверие и выключатель
  9. Частые вопросы
Гайды

Как настроить Skills в Kilo Code

26 октября 2026 · 10 минут чтения

Настроить Skills в Kilo Code — значит положить папку с файлом SKILL.md в каталог навыков, заполнить frontmatter с полями name и description и убедиться, что агент видит навык. В документации проекта навык описан как папка с инструкциями, которые агент подгружает по совпадению задачи. Ниже — каталоги, готовый SKILL.md, внешние пути, проверка и разбор ошибок.

Механизм: что читается при старте

В документации проекта рабочий цикл навыка разбит на три шага. Сначала идёт обнаружение: при инициализации Kilo Code сканирует заданные каталоги и читает только метаданные — name, description и путь к файлу. Полные инструкции на этом этапе в контекст не попадают. Затем метаданные релевантных навыков включаются в системный промпт активного режима: агент видит список доступных навыков с описаниями. И только потом, когда агент решит, что задача совпадает с описанием, он читает полный SKILL.md и следует инструкциям, при необходимости подгружая связанные файлы или выполняя встроенный код.

Решение о применении принимает сама модель. В документации сказано, что поиск по ключевым словам и семантический поиск здесь не используются: агент оценивает запрос против всех доступных описаний и определяет, подходит ли одно из них однозначно. Отсюда три практических следствия. Формулировка description важна — пишите её так, как пользователи формулируют задачи. Явный вызов работает всегда: фраза «use the api-design skill» запускает навык, потому что агент видит его имя. Размытые описания дают неуверенное совпадение, поэтому указывайте, когда навык применять.

Навыки делятся на общие, доступные во всех режимах, и привязанные к режиму — например, к code или architect. Новая платформа не использует отдельные каталоги под режимы: все навыки попадают в общий пул, а разграничение делается через description во frontmatter. Если навык нужен только в определённых ситуациях, это описывается словами в описании.

Каталоги и приоритет

Навыки загружаются из нескольких мест, что позволяет держать личные и проектные инструкции раздельно. Глобальные навыки лежат в каталоге .kilo в домашней папке: на Mac и Linux это ~/.kilo/skills/, на Windows — \Users\.kilo\skills. Проектные навыки лежат в .kilo/skills/ внутри проекта. Для переноса личных навыков между проектами документация предлагает устанавливать их в ~/.agents/skills//SKILL.md: Kilo находит этот пользовательский каталог по умолчанию, без записи в skills.paths и без плагина регистрации.

Уровень Путь Когда применять
Глобальный ~/.kilo/skills/ Личные навыки для всех проектов
Проектный .kilo/skills/ Соглашения конкретного репозитория
Совместимость ~/.agents/skills/ и .agents/skills/ Открытый стандарт агентов, загружается по умолчанию
Совместимость ~/.claude/skills/ и .claude/skills/ Claude Code Compatibility включена
Внешний skills.paths в kilo.jsonc Общий каталог вне проекта
Удалённый skills.urls в kilo.jsonc Навыки по URL с манифестом index.json

При совпадении имён проектные навыки из .kilo/skills/ имеют приоритет над глобальными из ~/.kilo/skills/. Навыки из каталогов совместимости и дополнительных путей загружаются вместе с проектными и глобальными. Каждый загруженный навык доступен и как слэш-команда: меню / показывает навыки отдельной группой Skills. Если имя навыка совпадает с именем кастомной команды или MCP-промпта, команда сохраняет /name, а навык получает вид /name:skill — оба остаются доступны.

Каталог .claude/skills/ подхватывается только при включённой Claude Code Compatibility; без неё этот путь не даёт навыков. Каталог ~/.agents/skills/ относится к открытому стандарту агентов и загружается по умолчанию.

Официальная справка Kilo Code по Skills: https://kilo.ai/docs/customize/skills

Готовый SKILL.md

Файл SKILL.md состоит из YAML-frontmatter и markdown-инструкций. Обязательных полей два. name — до 64 символов, только строчные буквы, цифры и дефисы, без дефиса в начале и конце. description — до 1024 символов, описывает, что навык делает и когда его применять. Необязательные поля: license, compatibility, metadata. Раздел Name Matching Rule требует совпадения name с именем родительского каталога. Ниже в Troubleshooting та же справка противоречит этому требованию. Для переносимого примера используйте одинаковое имя папки и name: так он удовлетворяет более строгому варианту.

Ниже — пример навыка для чек-листа код-ревью. Каталог: ~/.kilo/skills/code-review-checklist/, файл внутри — SKILL.md.

MARKDOWN27 строк
---
name: code-review-checklist
description: Проверка пул-реквеста по чек-листу. Использовать, когда пользователь просит провести код-ревью, проверить диф или оценить изменения перед мержем.
---

# Чек-лист код-ревью

Пройди по изменениям и отметь каждый пункт.

## Границы изменений
- Изменение решает одну задачу.
- Нет посторонних правок форматирования в том же дифе.

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

## Обработка ошибок
- Внешние вызовы обёрнуты в обработку ошибок.
- Ошибки не проглатываются молча.

## Тесты
- Новое поведение покрыто тестом.
- Тест падает без изменения кода.

## Формат ответа
Верни список: пункт, статус, комментарий со ссылкой на строку.

Дополнительно в каталоге навыка можно держать scripts/ для исполняемого кода, references/ для документации и assets/ для шаблонов. Эти файлы упоминаются в инструкциях, и агент читает их по мере надобности. SKILL.md остаётся единственным обязательным файлом.

Внешние пути и URL

Дополнительные расположения и удалённые URL настраиваются в kilo.jsonc — проектном или глобальном:

JSONC6 строк
{
  "skills": {
    "paths": ["/path/to/shared/skills", "~/my-skills", "relative/skills"],
    "urls": ["https://example.com/.well-known/skills/"]
  }
}

Ключ skills.paths принимает абсолютные пути, пути от домашней папки через ~/ и пути относительно корня проекта. Ключ skills.urls принимает адреса удалённых каталогов, отдающих манифест index.json. Путь, начинающийся с / или \ без буквы диска, сначала пробуется как абсолютный; если такого каталога нет, Kilo разрешает его относительно корня проекта, поэтому /.github/skills и .github/skills загружают одни и те же навыки репозитория. Навыки, подхваченные через этот запасной вариант, считаются проектными.

Удалённый сервер отдаёт index.json с массивом skills. В каждом объекте навыка указываются name и files, включающий SKILL.md; version — необязательная строка для обновления кэша. Файлы скачиваются по пути {url}/{skill-name}/{file}. При изменении содержимого или списка файлов удалённого навыка меняйте version: при следующем переобнаружении — по /reload или в новой сессии — Kilo скачает новую версию целиком и атомарно заменит кэш. Если скачивание не удалось, остаётся предыдущая кэшированная версия.

С доверием связаны два правила. Пути, объявленные только в проектном конфиге, остаются недоверенными: их SKILL.md и ссылки вида {file:…} должны лежать внутри проекта, даже если путь абсолютный или начинается с ~/. Внешние файлы не загрузятся с сообщением blocked file reference outside project config scope, и выдача разрешения external_directory доверенным такой путь не делает. Чтобы грузить навыки из-за пределов проекта, объявляйте их skills.paths в пользовательском конфиге, например в ~/.config/kilo/kilo.jsonc.

Как проверить, что навык загружен

Обнаружение навыков происходит при старте сессии. В CLI навыки загружаются при запуске новой сессии или команды kilo run. В расширении VS Code — когда расширение подключается к серверу CLI. Навыки пересканируются в начале каждой новой сессии; чтобы подхватить добавленные или изменённые навыки без перезапуска, используйте /reload.

Проверка идёт в три шага. Первый: выполните /reload или начните новую сессию. Второй: спросите агента напрямую — документация предлагает формулировки «Do you have access to skill X?», «Is the skill called X loaded?», «What skills do you have available?». Ответ агента о загруженности навыка описан как самый надёжный способ проверки после добавления навыка или перезагрузки VS Code. Третий: когда агент применит навык, он вызовет инструмент skill с именем навыка — ищите этот вызов в диалоге; вывод инструмента содержит полный текст навыка, вставленный в контекст.

Если агент подтверждает доступность, навык готов к работе. Если нет — переходите к диагностике ниже.

Навык, правило, инструкция, режим

Четыре механизма Kilo Code решают разные задачи, и путаница между ними — частая причина того, что инструкция «не работает».

Механизм Что задаёт Критерий выбора
Навык Папка с SKILL.md, подгружается по совпадению description Нужна процедура, которая включается под конкретную задачу
Правило Проектные правила, дополняющие навыки Нужно постоянное ограничение для репозитория
Кастомная инструкция Глобальные инструкции против инструкций на основе навыка Нужна общая рамка поведения агента
Режим Кастомный режим, использующий конкретные навыки Нужен набор возможностей под роль, например architect

Практическое правило: если текст нужен всегда — это правило или инструкция; если он нужен под задачу и может быть объёмным — это навык; если меняется набор инструментов и поведение целиком — это режим. Документация связывает эти механизмы напрямую: кастомные режимы используют конкретные навыки, проектные правила дополняют навыки, а кастомные инструкции сравниваются с инструкциями на основе навыка.

Пять ошибок загрузки

Документация перечисляет частые ошибки и решения.

  1. «missing required ‘name’ field» — во frontmatter нет поля name. Добавьте name: your-skill-name.
  2. «name doesn’t match directory» — имя во frontmatter расходится с именем папки. Приведите их к точному совпадению.
  3. Навык не появляется — неверная структура каталогов. Проверьте, что путь соответствует схеме skills/skill-name/SKILL.md.
  4. SKILL.md лежит глубже уровня навыка. Файл должен находиться непосредственно внутри каталога навыка, например .kilo/skills/my-skill/SKILL.md, без дополнительной вложенности.
  5. Ошибка в путях конфига. Если используются skills.paths или skills.urls, проверьте корректность путей и адресов в kilo.jsonc.

Отдельно стоит случай недоверенного внешнего пути: файл не загружается с сообщением blocked file reference outside project config scope. Лечится переносом навыка внутрь проекта или объявлением пути в пользовательском конфиге.

Shell-команды: доверие и выключатель

Тело SKILL.md может содержать shell-команды в синтаксисе !command. Когда агент загружает навык, каждая команда выполняется, а её стандартный вывод заменяет плейсхолдер до того, как содержимое попадёт в модель. Пример из документации — навык repo-status, вставляющий вывод git status —short.

Выполнение ограничено тремя правилами. Команды работают только в навыках из доверенных расположений: глобальные каталоги ~/.kilo/skills/, ~/.agents/skills/ и ~/.claude/skills/, встроенные в Kilo Code навыки и абсолютные пути, объявленные в глобальном конфиге. Проектные навыки из .kilo/skills/ и навыки, полученные по удалённым URL, команды не выполняют — их плейсхолдеры заменяются пометкой о недоверенности. При загрузке доверенного навыка с командами все команды файла перечисляются в одном запросе разрешения до запуска: одобрение запускает их все, отказ прерывает загрузку навыка. Запрос появляется даже при общем автоодобрении bash-команд, а правило запрета на любую из команд всё равно блокирует её.

Выключатель — переменная окружения KILO_DISABLE_SKILL_SHELL: она полностью отключает выполнение встроенных команд. Команды выполняются в каталоге проекта с таймаутом на каждую, вывод обрезается перед вставкой. Плейсхолдеры внутри блоков кода считаются примерами документации и не выполняются, а вывод команд не сканируется повторно на новые плейсхолдеры.

Частые вопросы

Где хранить навык — глобально или в проекте?
Личные навыки для всех проектов кладите в ~/.kilo/skills/, соглашения конкретного репозитория — в .kilo/skills/. При совпадении имён проектный навык имеет приоритет над глобальным. Для переноса личных навыков между проектами документация предлагает каталог ~/.agents/skills//SKILL.md, который Kilo находит по умолчанию.

Почему навык не загружается после добавления?
Проверьте frontmatter: поля name и description обязательны. Убедитесь, что SKILL.md лежит непосредственно в каталоге навыка. Затем выполните /reload или начните новую сессию — навыки пересканируются в начале каждой сессии.

Как убедиться, что агент действительно видит навык?
Спросите агента напрямую: «Do you have access to skill X?» или «What skills do you have available?». Ответ агента о загруженности документация называет самым надёжным способом проверки. Дополнительно ищите в диалоге вызов инструмента skill с именем навыка.

Как подключить навыки из другого каталога или по URL?
Добавьте пути в skills.paths, а адреса — в skills.urls в kilo.jsonc. Пути принимают абсолютные значения, ~/ и относительные от корня проекта; URL должны отдавать манифест index.json. Чтобы грузить навыки из-за пределов проекта, объявляйте пути в пользовательском конфиге.

Выполняются ли shell-команды внутри навыка?
Команды в синтаксисе !command работают только в навыках из доверенных расположений: глобальные каталоги, встроенные навыки и абсолютные пути из глобального конфига. Проектные навыки и навыки по удалённым URL команды не выполняют. Перед запуском появляется запрос разрешения, а переменная KILO_DISABLE_SKILL_SHELL отключает выполнение целиком.

Читайте также

3 материала