Skip to main content

Навык: Создатель навыков

skill-creator — это специализированный навык для разработки новых навыков и улучшения существующих. Он предназначен не для обычного пользователя, а для тех, кто хочет расширять возможности Велеса: добавлять новые сценарии работы, инструкции, скрипты, справочные материалы и готовые пакеты навыков.

Когда он полезен

Основные сценарии использования:
  • проектирование нового специализированного навыка;
  • доработка и оптимизация существующего навыка;
  • корректное структурирование скриптов, справочников и ресурсов;
  • упаковка навыка для переноса или повторного использования в других проектах.

Что делает этот навык

Этот навык помогает рассматривать навык не как случайный текстовый файл, а как полноценный программный модуль (пакет). Он предоставляет рекомендации по следующим вопросам:
  • выбор оптимальной структуры папок;
  • составление качественного описания в SKILL.md;
  • определение необходимости использования внешних скриптов;
  • использование справочных материалов (references);
  • минимизация объема контекста для экономии ресурсов;
  • финальная упаковка результата.

Почему это выделено в отдельный навык

Процесс создания качественного навыка — задача нетривиальная. Необходимо учитывать:
  • условия активации (триггеры) навыка;
  • правильное заполнение метаданных (frontmatter);
  • механизмы пошаговой загрузки инструкций (progressive loading);
  • разделение содержимого на основной файл (SKILL.md) и вспомогательные каталоги.
Именно поэтому здесь используется специальный направляющий навык (guidance), а не просто краткая инструкция.

Когда можно обратиться к нему напрямую

Примеры запросов пользователя:
  • «Создай навык для мониторинга курсов валют»
  • «Помоги оформить новый навык для работы с 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; сам файл навыка содержит только описание формы и значения по умолчанию.

Связанные страницы