Навыки и субагенты в Cursor — два способа усилить встроенного ИИ-агента: навыки дают ему специализированные умения через инструкции и скрипты, субагенты позволяют делегировать части задачи отдельным помощникам с собственным контекстом. В этом материале — что это такое, как они работают, когда что использовать и как создать свои навыки и субагенты с нуля.
Подписывайся на наш Telegram
— там разбираем Cursor, нейросети и автоматизацию по шагам.
Что такое навыки агента
Навыки агента — это открытый стандарт для расширения ИИ-агентов специализированными возможностями. Навыки инкапсулируют доменную экспертизу и рабочие процессы, которые агенты могут использовать для выполнения конкретных задач.
Навык — это переносимый, версионируемый пакет, который обучает агентов выполнению задач, специализированных под конкретную предметную область. Навыки могут включать как инструкции, так и исполняемые скрипты или код, который агенты могут запускать.
• Переносимые — навыки работают с любым агентом, который поддерживает стандарт Agent Skills.
• Версионируемые — навыки хранятся в виде файлов и могут отслеживаться в вашем репозитории или устанавливаться через ссылки на репозитории GitHub.
• Исполняемые — навыки могут включать скрипты и код, которые агенты выполняют для решения задач.
• Постепенные — навыки подгружают ресурсы по мере необходимости, что обеспечивает эффективное использование контекста.
Стандарт Agent Skills открытый; подробности — на agentskills.io. В Cursor навыки автоматически обнаруживаются в каталогах навыков и становятся доступны агенту при старте.
Как работают навыки в Cursor
Когда Cursor запускается, он автоматически обнаруживает навыки в каталогах навыков и делает их доступными в Agent. Агенту показываются доступные навыки, и он по контексту решает, когда их использовать.
Навыки также можно вызывать вручную: наберите `/` в чате Agent и выполните поиск по имени навыка.
Каталоги навыков. Навыки загружаются из следующих расположений:
| Расположение | Область действия |
|--------------|------------------|
| `.cursor/skills/` | Уровень проекта |
| `.claude/skills/` | Уровень проекта (совместимость с Claude) |
| `.codex/skills/` | Уровень проекта (совместимость с Codex) |
| `~/.cursor/skills/` | Уровень пользователя (глобально) |
| `~/.claude/skills/` | Уровень пользователя (глобально) |
| `~/.codex/skills/` | Уровень пользователя (глобально) |
Каждый навык должен быть каталогом, содержащим файл SKILL.md:
```
.cursor/
└── skills/
└── my-skill/
└── SKILL.md
```
Навыки также могут включать необязательные каталоги для скриптов, справочных материалов и ресурсов:
```
.cursor/
└── skills/
└── deploy-app/
├── SKILL.md
├── scripts/
│ ├── deploy.sh
│ └── validate.py
├── references/
│ └── REFERENCE.md
└── assets/
└── config-template.json
```
Формат файла SKILL.md
Каждый навык описывается в файле SKILL.md с YAML-фронтматтером в начале:
```yaml
name: my-skill
description: Short description of what this skill does and when to use it.
My Skill
Detailed instructions for the agent.
When to Use
• Use this skill when...
• This skill is helpful for...
Instructions
• Step-by-step guidance for the agent
• Domain-specific conventions
• Best practices and patterns
```
Поля frontmatter:
| Поле | Обязательное | Описание |
|------|--------------|----------|
| name | Да | Идентификатор навыка. Строчные буквы, цифры и дефисы. Должен совпадать с именем родительской папки. |
| description | Да | Описывает, что делает навык и когда его использовать. Используется агентом для определения релевантности. |
| license | Нет | Название лицензии или ссылка на лицензионный файл. |
| compatibility | Нет | Требования к окружению (системные пакеты, сеть и т.п.). |
| metadata | Нет | Произвольная структура «ключ–значение». |
| disable-model-invocation | Нет | Если `true`, навык включается только при явном вызове через `/skill-name`. Агент не будет автоматически применять его по контексту. |
Отключение автоматического вызова. По умолчанию навыки автоматически применяются, когда агент считает их подходящими. Установите `disable-model-invocation: true`, чтобы навык работал как команда с косой чертой: он будет добавляться в контекст только при явном вводе `/имя-навыка` в чате.
Скрипты и необязательные директории в навыках
Навыки могут включать каталог scripts/ с исполняемым кодом, который агенты запускают. В SKILL.md ссылайтесь на скрипты относительными путями от корня навыка.
Пример: навык развёртывания с вызовом `scripts/deploy.sh` и `scripts/validate.py`. Агент читает инструкции и выполняет соответствующие скрипты при вызове навыка. Скрипты могут быть на Bash, Python, JavaScript и т.д. — главное, чтобы они были самодостаточными, с понятными сообщениями об ошибках и корректной обработкой пограничных случаев.
Необязательные директории:
| Директория | Назначение |
|------------|------------|
| scripts/ | Исполняемый код, который агенты могут запускать |
| references/ | Дополнительная документация, загружаемая по запросу |
| assets/ | Статические ресурсы: шаблоны, изображения, файлы данных |
Делайте основной SKILL.md компактным и выносите подробные справочные материалы в отдельные файлы — так агент подгружает ресурсы постепенно и эффективнее использует контекст.
Просмотр и установка навыков
Просмотр обнаруженных навыков: откройте Cursor Settings (Ctrl+Shift+J в Windows/Linux, Cmd+Shift+J на Mac) → раздел Rules → навыки отображаются в блоке Agent Decides.
Установка навыков из GitHub: Cursor Settings → Rules → в разделе Project Rules нажмите Add Rule → выберите Remote Rule (Github) → введите URL репозитория на GitHub.
Миграция правил и команд в навыки. В Cursor 2.4 есть встроенный навык /migrate-to-skills, который помогает преобразовать существующие динамические правила и слэш-команды в навыки. Навык миграции преобразует динамические правила (с «Apply Intelligently») и слэш-команды в стандартные навыки; слэш-команды получают `disable-model-invocation: true`. Введите `/migrate-to-skills` в чате агента — он определит подходящие правила и команды и создаст навыки в `.cursor/skills/`. Правила с `alwaysApply: true` или с конкретными glob-шаблонами не мигрируются.
Что такое субагенты в Cursor
Субагенты — это специализированные ИИ-ассистенты, которым агент Cursor может делегировать задачи. Каждый субагент работает в своём собственном контекстном окне, обрабатывает определённые типы задач и возвращает результат родительскому агенту.
Зачем они нужны:
• Изоляция контекста — у каждого субагента своё контекстное окно. Длительные задачи по исследованию или изучению не занимают место в основном диалоге.
• Параллельное выполнение — можно запускать несколько субагентов одновременно и работать над разными частями кодовой базы без последовательного ожидания.
• Специализированная экспертиза — субагентов настраивают с помощью пользовательских промптов, доступа к инструментам и моделей под конкретную предметную область.
• Повторное использование — пользовательских субагентов можно создавать и использовать в разных проектах.
Субагенты доступны в Редакторе, CLI и Cloud Agents. Если у вас старый тариф с оплатой за запросы, для субагентов нужно включить Max Mode. В тарифах с оплатой по использованию субагенты включены по умолчанию.
Как работают субагенты
Когда Agent получает сложную задачу, он может автоматически запустить субагента. Субагент получает запрос со всем необходимым контекстом, работает автономно и возвращает итоговое сообщение с результатами.
Субагенты запускаются с чистым контекстом. Родительский агент включает нужную информацию в запрос, потому что субагенты не имеют доступа к предыдущей истории диалога.
Передний план и фон:
| Режим | Поведение | Когда использовать |
|-------|------------|---------------------|
| Передний план | Блокирует выполнение до завершения субагента. Немедленно возвращает результат. | Последовательные задачи, где важен результат. |
| Фон | Сразу возвращает управление. Субагент работает независимо. | Длительные задачи или параллельные рабочие потоки. |
Встроенные субагенты Cursor
В Cursor есть три встроенных субагента, которые автоматически выполняют операции, требовательные к объёму контекста:
| Субагент | Назначение | Зачем вынесен в субагента |
|----------|------------|---------------------------|
| Explore | Поиск и анализ кодовой базы | Исследование генерирует много промежуточных данных; используется более быстрая модель для множества параллельных поисков. |
| Bash | Запуск последовательностей shell-команд | Вывод команд часто объёмный; вынесение в отдельный контекст позволяет родителю сосредоточиться на решениях, а не на логах. |
| Browser | Управление браузером через MCP | Взаимодействия с браузером создают шумные снимки DOM и скриншоты; субагент отфильтровывает их и возвращает только релевантные результаты. |
Их не нужно настраивать — Agent использует их автоматически, когда это уместно. Общие особенности: изоляция контекста, гибкость выбора модели (например, Explore использует более быструю модель), специализированная конфигурация и снижение затрат за счёт быстрых моделей для тяжёлых по контексту задач.
Когда использовать субагентов, а когда — навыки
| Используйте субагентов, когда… | Используйте навыки, когда… |
|---------------------------------|-----------------------------|
| Нужна изоляция контекста для долгих исследовательских задач | Задача узкая и одноцелевая (changelog, форматирование кода) |
| Запускаете несколько рабочих потоков параллельно | Нужно быстрое повторяемое действие |
| Задача требует специализированной экспертизы на многих шагах | Задача выполняется одним проходом |
| Нужна независимая проверка выполненной работы | Отдельное контекстное окно не нужно |
Если задача простая и одноцелевая (например, «сгенерировать changelog» или «отформатировать импорты») — лучше рассмотреть навык, а не субагента.
Пользовательские субагенты: расположение и формат
Расположение файлов:
| Тип | Расположение | Область действия |
|-----|--------------|------------------|
| Субагенты проекта | `.cursor/agents/` | Только текущий проект |
| | `.claude/agents/`, `.codex/agents/` | Совместимость с Claude/Codex |
| Пользовательские субагенты | `~/.cursor/agents/` | Все проекты пользователя |
| | `~/.claude/agents/`, `~/.codex/agents/` | Глобально (Claude/Codex) |
Субагенты проекта имеют приоритет при совпадении имён. Каждый субагент — это markdown-файл с YAML-фронтматтером:
```yaml
name: security-auditor
description: Специалист по безопасности. Используйте при реализации аутентификации, платежей или обработке конфиденциальных данных.
model: inherit
Вы эксперт по безопасности, проводящий аудит кода на наличие уязвимостей.
При вызове:
Определите критичные для безопасности участки кода
Проверьте наличие распространённых уязвимостей (инъекции, XSS, обход аутентификации)
Убедитесь, что секреты не захардкожены
Проверьте валидацию и санитизацию входных данных
Сообщайте о находках по степени критичности...
```
Поля конфигурации:
| Поле | Обязательное | Описание |
|------|--------------|----------|
| name | Нет | Уникальный идентификатор (строчные буквы, дефисы). По умолчанию — имя файла без расширения. |
| description | Нет | Когда использовать субагента. Агент использует это для решения о делегировании. |
| model | Нет | Модель: `fast`, `inherit` или идентификатор модели. По умолчанию — `inherit`. |
| readonly | Нет | Если `true`, субагент запускается с ограниченными правами на запись. |
| is_background | Нет | Если `true`, субагент запускается в фоне и не ждёт завершения. |
Работа с субагентами: вызов и параллельный запуск
Автоматическое делегирование. Агент проактивно делегирует задачи в зависимости от сложности, описаний субагентов в проекте и текущего контекста. Фразы вроде «use proactively» или «always use for» в описании способствуют автоматическому делегированию.
Явный вызов. Запросите конкретного субагента через `/имя` в запросе:
• `/verifier confirm the auth flow is complete`
• `/debugger investigate this error`
• `/security-auditor review the payment module`
Можно также упоминать субагента естественным образом: «Используй субагент verifier для подтверждения завершения процесса аутентификации».
Параллельное выполнение. Запускайте несколько субагентов одновременно: например, «Review the API changes and update the documentation in parallel» — агент отправит несколько вызовов в одном сообщении, и субагенты выполнятся параллельно.
Возобновление. Каждый запуск субагента возвращает идентификатор агента. Передайте этот идентификатор, чтобы возобновить работу с полным контекстом: «Resume agent abc123 and analyze the remaining test failures». Фоновые субагенты сохраняют состояние; после завершения их можно возобновить для продолжения диалога.
Примеры субагентов: верификатор, отладчик, тест-раннер
Агент верификации (verifier) — самостоятельно проверяет, что заявленная работа выполнена. Устраняет ситуацию, когда ИИ помечает задачи выполненными, а реализация неполная или нерабочая. При вызове: определить, что заявлено как завершённое; убедиться, что реализация существует и работает; запустить тесты; искать граничные случаи. Сообщать, что проверено и прошло, что осталось незавершённым, и какие проблемы устранить. Создать файл `.cursor/agents/verifier.md` с YAML (name, description, model: fast) и кратким промптом.
Отладчик (debugger) — специалист по отладке ошибок и падений тестов. При вызове: зафиксировать сообщение об ошибке и стек; определить шаги воспроизведения; изолировать место сбоя; внести минимальное исправление; убедиться, что решение работает. Предоставлять объяснение первопричины, доказательства, исправление кода и подход к тестированию.
Тест-раннер (test-runner) — эксперт по автоматизации тестирования. Проактивно запускать тесты при обнаружении изменений в коде; при падениях — анализировать вывод, определять первопричину, исправлять с сохранением назначения теста, перезапускать. В описании указать «Use proactively».
Паттерн оркестрации: для сложных процессов родительский агент координирует нескольких субагентов по очереди — Planner (план) → Implementer (реализация) → Verifier (проверка). На каждом шаге передаётся структурированный результат следующему агенту.
Рекомендации и антипаттерны
Рекомендации: создавайте узкоспециализированных субагентов с одной чёткой зоной ответственности; уделяйте внимание полю description — от него зависит делегирование; делайте промпты лаконичными и конкретными; добавляйте `.cursor/agents/` в репозиторий для команды; начинайте с агентов, сгенерированных Agent, и дорабатывайте под себя; при необходимости используйте хуки для файлового вывода субагентов.
Антипаттерны: не создавайте десятки размытых субагентов («помогает с кодом») — Agent не поймёт, когда их использовать; избегайте размытых описаний; не пишите промпты на тысячи слов; не дублируйте слэш-команды субагентами для простых задач; не создавайте слишком много субагентов — начните с 2–3 узконаправленных.
Быстрый старт: создать субагента и навык
Субагент. Попросите Agent: «Создай файл субагента по пути .cursor/agents/verifier.md с YAML-фронтматтером (name, description, model: fast). Субагент verifier должен проверять завершённую работу, убеждаться, что реализации работают, запускать тесты и сообщать, что прошло, а что нет.» Или создайте вручную markdown-файл в `.cursor/agents/` или `~/.cursor/agents/`.
Навык. Создайте папку `.cursor/skills/my-skill/` и файл `SKILL.md` с YAML (name, description) и инструкциями. Для установки из GitHub: Settings → Rules → Add Rule → Remote Rule (Github) → URL репозитория. Миграция старых правил и команд — через `/migrate-to-skills`.
Производительность и стоимость субагентов
Субагенты потребляют токены независимо — у каждого своё контекстное окно. Параллельный запуск нескольких субагентов увеличивает расход токенов. Для быстрых и простых задач основной агент часто быстрее; субагенты особенно полезны для сложной, длительной или параллельной работы. Их главное преимущество — изоляция контекста, а не скорость: субагент с простой задачей может быть медленнее основного агента, так как начинает с нуля.
Кратко
Навыки — переносимые пакеты с инструкциями и опционально скриптами; каталоги `.cursor/skills/`, `~/.cursor/skills/`; формат SKILL.md с YAML; вызов по контексту или через `/имя-навыка`. Субагенты — отдельные ИИ-помощники с собственным контекстом; встроенные Explore, Bash, Browser; свои — в `.cursor/agents/`, `~/.cursor/agents/`; вызов автоматический или явный `/имя`. Используйте навыки для быстрых повторяемых действий, субагентов — для изоляции контекста, параллельной работы и многошаговой экспертизы. Подробнее: agentskills.io и документация Cursor.
Подписывайся на наш Telegram — там ещё больше про Cursor, навыки, субагентов и ИИ в разработке.