Разработка

SkillSpector: проверка скилов AI-агентов до установки

FulcrumLab • 10.11.2026 • 4 мин чтения
SkillSpector: проверка скилов AI-агентов до установки
Сканер скилов для AI-агентов: статический разбор, смысловой проход по желанию, оценка риска 0-100 и гейт установки для CI и MCP.

Скил — это код, который вы отдаёте агенту

Когда вы ставите скил из чужого репозитория, вы отдаёте агенту набор инструкций и часто скриптов, которые он выполняет с вашими правами: читает файлы, ходит в сеть, запускает команды. Проверять это вручную тяжело: в SKILL.md под сотню строк, часть логики в скриптах, часть в описаниях, которые модель воспринимает как прямой приказ.

SkillSpector от NVIDIA — сканер, который отвечает на один вопрос: безопасно ли ставить этот скил. Код скила он не запускает, а разбирает содержимое и выдаёт отчёт с оценкой риска и списком находок.

Почему это стало проблемой

Авторы ссылаются на исследование «Agent Skills in the Wild» (Liu et al., 2026): 42 447 скилов из крупных маркетплейсов, 31 132 прошли анализ. Из них 26,1% содержат хотя бы одну уязвимость, а 5,2% показывают признаки злого умысла. Скилы с исполняемыми скриптами уязвимы в 2,12 раза чаще.

Что именно он ищет

71 паттерн, разложенный по 17 категориям. Основные:

  • Prompt injection — инструкции внутри скила, которые перебивают ваши указания агенту.
  • Anti-refusal — попытки отключить отказы модели.
  • Data exfiltration — отправка файлов, ключей и переменных окружения наружу.
  • Privilege escalation — попытки получить права выше заявленных.
  • Supply chain — опасные зависимости и подозрительные источники установки.
  • Excessive agency — свобода действий шире, чем нужно задаче.
  • Output handling, system prompt leakage, memory poisoning, tool misuse, rogue agent, trigger abuse.
  • Отдельная группа для MCP: least privilege и tool poisoning — подмена описания инструмента, чтобы агент вызвал не то.

Поверх паттернов работают поведенческий анализ AST (exec, eval, subprocess и похожие вызовы), taint tracking (путь данных от источника до опасного стока) и YARA-сигнатуры.

Как устроена проверка

Первый проход: статика

Одиннадцать статических анализаторов прогоняют все файлы скила: регулярные выражения по паттернам, разбор AST для опасных вызовов, поиск известных CVE в зависимостях через OSV.dev. Проход быстрый, ничего не исполняет и даёт высокий охват — ценою части ложных срабатываний.

Второй проход: LLM по желанию

Если включить смысловой анализ, содержимое файлов уходит выбранному провайдеру, и модель оценивает намерение скила. Важная деталь: LLM не может понизить уверенность в находке. Детерминированные находки остаются в отчёте, даже если модель с ними не согласна; те, что модель не подтвердила, помечаются как llm-unconfirmed в JSON и SARIF.

Оценка риска

Баллы складываются из находок, а скилы с исполняемыми скриптами получают множитель 1.3.

БаллыУровеньРекомендация
0–20LOWставить можно
21–50MEDIUMставить осторожно
51–80HIGHне ставить
81–100CRITICALне ставить

CRITICAL-находка даёт +50, HIGH +25, MEDIUM +10, LOW +5. То есть одна серьёзная находка уже выводит скил в зону «не ставить».

Что можно проверить и в каком виде получить отчёт

На вход принимаются папка со скилом, отдельный файл SKILL.md, git-репозиторий, zip-архив и целая коллекция скилов — например, каталог установленных скилов агента.

skillspector scan ./my-skill/
skillspector scan ./SKILL.md
skillspector scan https://github.com/user/my-skill
skillspector scan ./my-skill.zip

Отчёт выводится в терминал либо в JSON, Markdown или SARIF — последний удобен для CI и редакторов.

skillspector scan ./my-skill/ --format sarif --output report.sarif

Встраивание в работу агента

Главная практическая ценность — не разовая проверка, а гейт на установку.

  • MCP-сервер. skillspector mcp поднимает сервер, который агенты вроде Claude Code, Codex CLI и Gemini CLI вызывают как инструмент. Тогда проверка идёт внутри сессии, до установки скила.
  • OpenCode. Расширение регистрирует инструмент skillspector_scan и команду /skillspector; ставится копированием каталога .opencode в проект.
  • Pi. Пакет ставится командой pi install и даёт тот же инструмент внутри сессии.
  • CI и скрипты. Коды возврата: 0 — чисто, 1 — превышен порог или сработал строгий флаг, 2 — ошибка разбора. Этого достаточно, чтобы блокировать установку автоматически.

Что он не делает

Важно не переоценить инструмент:

  • Не песочница. Он предупреждает до установки, но не изолирует скил, который вы всё равно поставили.
  • Не исполняет код скила. Весь анализ статический, плюс чтение содержимого моделью.
  • При включённом LLM-анализе содержимое файлов уходит провайдеру. Для полностью локальной проверки есть --no-llm.
  • Проверка зависимостей отправляет на OSV.dev имена и версии пакетов; без сети используется встроенный список.
  • Слабые места: текст на неанглийском, надписи на картинках, скомпилированный или зашифрованный код, поведение в рантайме.

С чего начать

uv tool install git+https://github.com/NVIDIA/skillspector.git
skillspector scan ./my-skill/

Есть вариант без Python — сборка Docker-образа из репозитория и запуск с монтированием каталога. Для гейта в агенте — установка с дополнением [mcp] и запуск skillspector mcp.

Кому и когда это нужно

Если вы ставите скилы пачками из GitHub и маркетплейсов и не читаете каждый целиком, сканер закрывает реальную дыру. Если ваши скилы написаны вами и лежат в своём репозитории, польза ниже: свой код проще проверить глазами, а сканер пригодится как регулярный прогон в CI.

Ставить стоит: проект свежий, активно обновляется, поддерживает популярные среды и умеет работать гейтом, а не только отчётом. Ограничения описаны честно, и это хороший знак.

Готовы внедрить ИИ в свой бизнес?

Превратите идеи в действия. Получите персональные рекомендации по внедрению искусственного интеллекта и начните трансформацию уже сегодня.