Навык: Создатель навыков
skill-creator — это специализированный навык для разработки новых навыков и улучшения существующих.
Он предназначен не для обычного пользователя, а для тех, кто хочет расширять возможности Велеса: добавлять новые сценарии работы, инструкции, скрипты, справочные материалы и готовые пакеты навыков.
Когда он полезен
Основные сценарии использования:- проектирование нового специализированного навыка;
- доработка и оптимизация существующего навыка;
- корректное структурирование скриптов, справочников и ресурсов;
- упаковка навыка для переноса или повторного использования в других проектах.
Что делает этот навык
Этот навык помогает рассматривать навык не как случайный текстовый файл, а как полноценный программный модуль (пакет). Он предоставляет рекомендации по следующим вопросам:- выбор оптимальной структуры папок;
- составление качественного описания в
SKILL.md; - определение необходимости использования внешних скриптов;
- использование справочных материалов (references);
- минимизация объема контекста для экономии ресурсов;
- финальная упаковка результата.
Почему это выделено в отдельный навык
Процесс создания качественного навыка — задача нетривиальная. Необходимо учитывать:- условия активации (триггеры) навыка;
- правильное заполнение метаданных (frontmatter);
- механизмы пошаговой загрузки инструкций (progressive loading);
- разделение содержимого на основной файл (
SKILL.md) и вспомогательные каталоги.
Когда можно обратиться к нему напрямую
Примеры запросов пользователя:- «Создай навык для мониторинга курсов валют»
- «Помоги оформить новый навык для работы с API сервиса X»
- «Спроектируй универсальный навык для обработки PDF-документов»
Что важно учитывать при разработке
- Качественный навык должен быть узкоспециализированным и практичным.
- Он должен эффективно использовать существующие инструменты (tools), а не дублировать их функции.
- Краткий и точный навык всегда работает лучше, чем длинный и расплывчатый.
- Перед созданием нового навыка нужно определить область действия: общий навык рабочей области или навык конкретной личности.
- Если пользователь не указал область действия,
skill-creatorдолжен сначала спросить: это общий навык рабочей области или навык для конкретной личности? - Общие навыки рабочей области располагаются по пути
<workspace>/skills/<имя-навыка>/SKILL.md. - Навыки конкретной личности располагаются по пути
<workspace>/personalities/<id>/skills/<имя-навыка>/SKILL.mdи подключаются только когда активна эта личность. - Новый каталог навыка можно подготовить скриптом
veles/skills/skill-creator/scripts/init_skill.py. - Готовый навык можно проверить и упаковать в переносимый файл
.skillскриптомveles/skills/skill-creator/scripts/package_skill.py. - Отдельной команды
veles skills addнет. Навыки из маркетплейсов устанавливаются через шлюз, а добавленные вручную каталоги обнаруживаются в поддерживаемых расположениях. - Секретные значения нельзя записывать в навык; указывайте только имена env-переменных в
metadata. - Если переменная обязательна и без неё навык должен быть недоступен, используйте
{"veles":{"requires":{"env":["GH_TOKEN"]}}}. - Если ключ опционален, но должен появиться в панели секретов, используйте
{"veles":{"secrets":{"env":["NCBI_API_KEY"]}}}— такой секрет не блокирует доступность навыка. - Для обычных скриптов навыка предпочитайте подстановку секрета через переменную окружения: Велес передаёт значение только на время хода, а скрипт читает его обычным способом.
- Если скрипт сам читает поле
config.json, в котором может бытьSecretRef, он должен использовать помощники менеджера секретов Велеса:coerce_secret_ref,resolve_secret_refи при необходимостиEncryptedValuesStore. Нельзя разбирать или расшифровывать файлы секретов напрямую. - Несекретные параметры — адреса серверов, порты, имена ящиков, флаги поведения и отображаемые имена — должны оставаться обычной конфигурацией.
config.json со свойством veles:
number и string. Значения сохраняются в skills.entries.<имя-навыка>.config; сам файл навыка содержит только описание формы и значения по умолчанию.
