Agent Skills и MCP: как выбрать правильный интерфейс
Разбираем Agent Skills и MCP: сравниваем инструкции, подключения к инструментам, границы безопасности, версионирование и случаи, когда их стоит объединить для создания надёжных AI-агентов.
Выбор между agent skills и MCP часто представляют как конкуренцию двух способов «дать AI инструменты». Такой взгляд неполон. Skill и сервер Model Context Protocol решают задачи на разных уровнях: первый обучает агента работать в определённой предметной области, а второй предоставляет возможности и контекст через стандартизированное подключение.
Dockup использует SKILL.md, поскольку его основной интерфейс — уже существующий инструмент командной строки. Skill учит Claude Code и Codex безопасно работать с этим CLI: всегда запрашивать JSON, проходить аутентификацию без интерактивного режима, находить точные цели, дожидаться конечных состояний деплоя и останавливаться перед разрушительными действиями.
Что такое agent skill и почему важен SKILL.md?
Agent skill — это каталог инструкций по работе и вспомогательных материалов, которые агент может загрузить, когда задача соответствует назначению skill. SKILL.md — точка входа: его frontmatter описывает возможности, а основная часть содержит workflows, ограничения, примеры и правила принятия решений.
Skill особенно полезен, когда исполняемый интерфейс уже существует. Агенту не нужен новый адаптер протокола, чтобы запускать хорошо спроектированный CLI. Ему нужны точные сведения о следующем:
- Какие команды являются источником истины.
- Какие флаги обязательны для машинного использования.
- Как проходит аутентификация в sandbox.
- Какие результаты подтверждают успех.
- Какие действия требуют участия человека.
- Где могут появиться секреты.
- Как диагностировать распространённые ошибки.
Установка Dockup намеренно проста:
npm install -g dockup-cli
dockup skill install
dockup skill status --json
Одна каноническая копия записывается в ~/.agents/skills/dockup/ и подключается одновременно к Claude Code и Codex. Skill поставляется внутри пакета CLI, а dockup update обновляет их вместе. Такое решение по упаковке предотвращает распространённую проблему: инструкции описывают команды, которых нет в установленном бинарном файле.
Skill не является движком деплоя. Операции выполняет CLI, который выдаёт JSON и возвращает коды завершения. Skill — это руководство по работе, которому следует агент.
Что такое Model Context Protocol?
Model Context Protocol, обычно называемый MCP, — это открытый протокол для подключения AI-приложения к внешним инструментам, ресурсам и prompts через клиент-серверную архитектуру. MCP-сервер может предоставлять вызываемые tools, доступные для чтения resources и повторно используемые prompts. MCP-клиент внутри agent host обнаруживает и вызывает эти возможности.
MCP ценен, когда системе нужна надёжная граница протокола, а не локальное выполнение shell-команд. Примеры:
- Удалённый SaaS API, который должен предоставлять тщательно типизированные операции.
- Источник данных с доступными для просмотра ресурсами.
- Desktop-приложение, которому нужно обнаружение инструментов без поставки CLI.
- Централизованный сервис, используемый множеством agent host и операционных систем.
- Интеграция, в которой сервер должен управлять credentials и политиками.
Сервер управляет реализацией каждого инструмента. Agent host видит объявленные имя, описание, input schema и output. Transport, lifecycle и authorization зависят от выбранной конфигурации MCP.
MCP не предоставляет автоматически знания предметной области и способность принимать решения. Сервер может открыть delete_service, но агенту всё равно нужна политика, определяющая, когда удаление допустимо. И наоборот, skill может описать workflow, но не способен создать возможности, отсутствующие в базовом CLI или API.
Чем на практике отличаются agent skills и MCP?
Самое наглядное сравнение — по зонам ответственности:
| Измерение | Agent skill / SKILL.md | MCP-сервер |
|---|---|---|
| Основная задача | Объяснять workflows и ограничения | Предоставлять tools, resources и prompts |
| Выполнение | Использует существующие CLI, файлы, API или приложения | Сервер реализует вызываемые возможности |
| Обнаружение | Агент загружает подходящие инструкции skill | Клиент обнаруживает возможности сервера |
| Развёртывание | Обычно каталог, устанавливаемый вместе с пакетом | Локальный или удалённый процесс сервера |
| Риск версионного рассинхрона | Инструкции могут расходиться с инструментом | Схема сервера может расходиться с поведением backend |
| Оптимальный сценарий | Существующему интерфейсу нужны экспертные инструкции по работе | Возможностям нужна стандартизированная граница протокола |
| Фокус безопасности | Поведенческие правила и безопасность команд | Подключение, доверие к серверу, scopes и authorization tools |
| Офлайн/локальное использование | Отлично подходит для локальных CLI | Возможно с локальным MCP-сервером |
| Повторное использование разными клиентами | Skill нужно копировать или упаковывать для каждого host | Один сервер может поддерживать несколько совместимых клиентов |
Ни одна из колонок сама по себе не является более «агентной». Надёжность определяется соответствием интерфейса системе.
Для Dockup уже существуют CLI со 135 командами, структурированным JSON, настоящими кодами завершения, тайм-аутом деплоя 900 секунд по умолчанию, маскированием секретов и confirmation gates. Обёртка над каждой командой в ещё один локальный сервер добавила бы слой преобразования, не меняя базовую истину деплоя. Skill подходит лучше, потому что обучает агента использовать уже существующий исполняемый контракт.
Удалённая платформа без CLI может прийти к противоположному выводу. MCP-сервер способен предоставить недостающий типизированный слой tools и оставить API credentials за пределами shell environment агента.
Когда использовать skill, MCP или оба варианта?
Используйте только skill, если выполняются все следующие условия:
- Зрелый CLI или локальное приложение уже предоставляет необходимые возможности.
- Agent host может его запускать.
- Машиночитаемый вывод и семантика кодов завершения достаточны.
- Основной пробел связан с процедурными знаниями, а не с подключением.
- Упаковка позволяет синхронизировать инструкции с исполняемым файлом.
Используйте только MCP, когда агенту нужно подключение, нативное для протокола, а сам сервер может предоставить достаточно контекста для безопасной работы. Это распространённый вариант для доступа к данным с преобладанием операций чтения, удалённых сервисов и приложений, которым нужен стабильный tool interface для разных клиентов.
Используйте оба варианта, когда protocol tools требуют более подробного playbook по работе. MCP-сервер может предоставлять безопасные типизированные примитивы, а skill — объяснять многошаговой business workflow, правила эскалации и критерии валидации. Skill может сообщать агенту, когда и зачем вызывать каждый MCP tool.
Комбинированная архитектура может выглядеть так:
User request
↓
Skill: workflow, policy, validation rules
↓
MCP client: discovers typed capabilities
↓
MCP server: authenticates and executes
↓
External system
Архитектура на базе CLI проще:
User request
↓
Skill: workflow, policy, validation rules
↓
CLI: JSON output + exit code + wait semantics
↓
Platform API
Сложность должна быть оправдана границей, которую она улучшает. Добавление MCP только потому, что это модно, может создать ещё один процесс, который нужно развёртывать, аутентифицировать, мониторить и версионировать.
Примеры выбора
| Ситуация | С чего лучше начать | Причина |
|---|---|---|
| Локальный CLI для деплоя с JSON-выводом | Skill | Подключение уже существует |
| Корпоративная база знаний со структурированными ресурсами | MCP | Ключевую роль играет обнаружение ресурсов |
| API администрирования базы данных без CLI | MCP | Типизированные удалённые операции полезны |
| Сложный release runbook на базе существующих инструментов | Skill | Главная задача — межинструментальная процедура |
| Регулируемые удалённые операции и подробная политика | Оба варианта | Сервер ограничивает scope, skill управляет поведением |
| Разовая личная автоматизация | Skill или прямой CLI | Минимальные операционные затраты |
Правильный ответ может со временем измениться. Команда может начать со skill вокруг CLI, а затем добавить MCP-сервер, когда станут важны удалённый доступ из разных клиентов или централизованное управление credentials.
Как сравниваются границы безопасности и доверия?
Skills — это инструкции, поэтому риск от их использования похож на риск от документации по коду, которая влияет на выполнение операций. Вредоносный или небрежно составленный skill может указать агенту раскрыть секреты, отключить защитные механизмы или запустить разрушительные команды. Проверяйте весь каталог, а не только его название.
При проверке skill задайте следующие вопросы:
- Кто его опубликовал?
- Вызывает ли он команды за пределами заявленного назначения?
- Предписывает ли он выводить tokens или credentials?
- Обходит ли он подтверждения?
- Основаны ли примеры команд на установленной версии?
- Могут ли обновления заменить skill без проверки?
- Определяет ли skill ограниченный процесс поиска целей?
MCP вводит границу доверия к серверу. Клиент должен понимать, к какому серверу он подключается, какие tools тот предоставляет, какие данные покидают машину и как ограничен authorization. Сервер может изменить поведение за стабильным именем tool, поэтому важны источник поставки и версионирование сервера.
При проверке MCP задайте следующие вопросы:
- Сервер локальный или удалённый?
- Кто им управляет?
- Как хранятся и ротируются credentials?
- Какие вызовы tools могут изменять или удалять данные?
- Валидируются ли входные данные на стороне сервера?
- Считаются ли outputs недоверенным содержимым?
- Можно ли провести аудит каждого вызова?
- Может ли клиент ограничить доступные tools?
Agent host не должен считать, что «обнаружено через MCP» означает «безопасно». Стандартизация протокола улучшает совместимость, но не делает каждый сервер заслуживающим доверия.
Skill Dockup кодирует несколько правил безопасности: используйте DOCKUP_TOKEN вместо интерактивного входа, никогда не выводите credentials, находите цели с помощью dockup services --json, используйте --wait и останавливайтесь при needs_confirm. CLI усиливает эти инструкции, маскируя секреты и отказываясь выполнять разрушительные операции без явного подтверждения. Эта модель defense in depth описана в материале защитные механизмы для AI-агентов в production.
Как должны работать версионирование и восстановление после сбоев?
В обоих подходах возможен version drift, но проявляется он по-разному.
Skill может устареть, если задокументированная команда изменится. Лучший способ снизить риск — поставлять skill вместе с исполняемым файлом и обновлять их в рамках единого release process. Dockup использует именно такую модель. Агент может проверить установленный skill:
dockup skill status --json
Обновление одновременно обновляет CLI и встроенный skill:
dockup update
MCP-клиент может обнаружить актуальные tool schemas сервера, но совместимость схемы не гарантирует семантическую совместимость. Tool может сохранить те же входные параметры, но изменить authorization, побочные эффекты, latency или трактовку output. Серверу следует публиковать версии, по возможности сохранять обратную совместимость и возвращать структурированные ошибки.
Обработка сбоев тоже различается. CLI естественным образом предоставляет коды завершения процесса. Вызов MCP tool должен обеспечивать столь же понятный результат на уровне приложения. В обоих случаях агент не должен считать операцию успешной только на основании подтверждения на уровне transport.
Полезный checklist надёжности:
| Требование | Реализация Skill + CLI | Реализация MCP |
|---|---|---|
| Обнаружение возможностей | CLI schema | Список tools сервера |
| Структурированный вывод | JSON/NDJSON | Типизированный результат tool |
| Сигнал ошибки | Ненулевой код завершения + code | Явный error result |
| Длительная операция | --wait / документированный stream | Progress или completion protocol |
| Защита секретов | Маскирование и контроль stderr | Редактирование данных на стороне сервера |
| Подтверждение разрушительных действий | CLI confirmation gate | Политика сервера или подтверждение клиента |
| Аудит | Audit log платформы | Audit logs сервера и backend |
| Проверка версии | Статус skill/binary | Metadata и schemas сервера |
Интерфейс должен снижать вероятность ошибочно сообщить о сбое, а не об успехе.
Какую архитектуру выбрать production-команде?
Начните с определения реального пробела.
Выбирайте архитектуру skill-first, если команда уже доверяет CLI и умеет им управлять. Инвестируйте в его машинный контракт: JSON, настоящие коды завершения, стабильные error codes, инструкции, синхронизированные с версией, и подтверждения. Затем упакуйте skill вместе с этим инструментом. Это самый короткий путь для деплоя через Claude Code и деплоя через Codex с использованием Dockup.
Выбирайте MCP-first, если возможность по своей природе является удалённой, ориентированной на ресурсы или общей для множества клиентов. Относитесь к серверу как к production software: аутентифицируйте его, ограничивайте его scope, мониторьте и проверяйте каждую операцию изменения.
Выбирайте оба варианта, если policy и connectivity одинаково сложны. Чётко разделяйте обязанности. Skill не должен дублировать реализацию сервера, а описание сервера не должно превращаться в разросшееся руководство по эксплуатации.
Практический evaluation workshop
Проведите небольшой proof с одной операцией чтения, одной обратимой записью, одной длительной операцией и одной разрушительной операцией, которая должна быть заблокирована. Оцените каждый дизайн по следующим критериям:
- Как агент обнаруживает операцию.
- Как передаются credentials.
- Как подтверждается успех.
- Как классифицируется сбой.
- Как человек подтверждает опасное действие.
- Как извлекаются logs и audit evidence.
- Как поддерживается согласованность версий.
- Как интеграция полностью удаляется.
Не принимайте решение только по одной диаграмме. Наблюдайте за сценариями сбоев. Дизайн, который выглядит элегантно на happy path, может стать неоднозначным, если истечёт время деплоя, отключится сервер или файл инструкций отстанет от текущего релиза на одну версию.
Справочник Dockup CLI содержит конкретный пример контракта CLI, подкреплённого skill. В более общей статье об AI-powered development объясняется, почему эти интерфейсы становятся важными по мере того, как агенты берут на себя всё большую часть development loop.
Учитывайте операционную ответственность
Владелец интеграции важен не меньше, чем её архитектура. Skill вокруг CLI обычно наследует процессы установки, релизов и поддержки этого CLI. Команда, публикующая бинарный файл, может поставлять соответствующие инструкции и тестировать их вместе.
MCP-сервер создаёт отдельный production-компонент. Кто-то должен отвечать за hosting, certificates или запуск локального процесса, authentication, monitoring, incident response, совместимость схем и обновление зависимостей. Такие затраты оправданы, если сервер является значимой общей границей. Но это лишние накладные расходы, если он лишь перенаправляет локальные вызовы к уже подходящему исполняемому файлу.
В ходе оценки зафиксируйте владельца каждого уровня:
| Уровень | Владелец в skill-first | Владелец в MCP-first |
|---|---|---|
| Инструкции предметной области | Publisher skill | Client prompt или companion skill |
| Поведение исполняемого файла | Publisher CLI | Команда MCP-сервера |
| Работа с credentials | CLI и runtime environment | Сервер и client connection |
| Доступность | Локальный executable и platform API | Server process, transport и backend |
| Совместимость схем | CLI release process | MCP server release process |
| Данные для расследования инцидентов | CLI output и platform audit | Client logs, server logs и backend audit |
Такая таблица ответственности часто помогает разрешить спор agent skills и MCP лучше, чем список функций.
Оценивайте latency и поверхности отказа
Вызов локального skill вместе с CLI проходит короткий путь: agent host, процесс, platform API. Путь через MCP может включать запуск сервера, согласование transport, удалённую маршрутизацию и ещё один уровень authentication. Эти дополнительные элементы не обязательно плохи, но каждый из них создаёт отдельную поверхность отказа.
Тестируйте отключение, истёкшие credentials, некорректные входные данные, частично выполненные длительные операции и обновления сервера. Агент должен уметь определить, произошёл ли сбой в host, protocol connection, server или внешней платформе. Результата «tool failed» недостаточно для production-работы.
Для длительных деплоев интерфейс должен сохранять семантику terminal state. Будь то операция CLI --wait или MCP tool с progress, агент не должен превращать подтверждение получения запроса в успешное завершение. Выбор между agent skills и MCP не отменяет этого требования.
Планируйте portability, не жертвуя точностью
MCP может улучшить portability между совместимыми клиентами, поскольку один и тот же сервер объявляет tools через общий протокол. Skills тоже могут быть переносимыми, если несколько агентов поддерживают один каталог и соглашения SKILL.md, как Claude Code и Codex в модели установки Dockup.
Portability полезна только при сохранении точной семантики. Tool с именем deploy должен определять, возвращает ли он результат после постановки операции в очередь или после перехода системы в состояние healthy. Инструкция skill «выполни деплой и проверь результат» должна ссылаться на команду, которая действительно способна это подтвердить.
Лучшая архитектура сохраняет истину предметной области на уровне executable, а более высокий уровень использует для объяснения намерения. В сравнении agent skills и MCP ни стандартизированный протокол, ни хорошо написанный файл инструкций не компенсируют неоднозначную операцию backend.
Переведите workflow в production
Используйте минимальную архитектуру, которая создаёт надёжную границу. Для Dockup установите поставляемый в комплекте skill и оставьте CLI исполняемым источником истины для деплоя.
npm install -g dockup-cli
dockup skill install
Первая команда устанавливает CLI. Вторая устанавливает соответствующий Dockup skill для Claude Code и Codex. Начните бесплатно на app.dockup.ai.
FAQ
Agent skills и MCP — это одно и то же?
Нет. Skill в первую очередь предоставляет инструкции и знания о работе. MCP предоставляет протокол для публикации tools, resources и prompts через клиент-серверное подключение.
Файл SKILL.md сам выполняет команды?
Нет. Он сообщает агенту, как использовать базовые возможности, такие как CLI, файлы, API или MCP tools. Действие выполняет исполняемый интерфейс.
Когда skill лучше MCP?
Skill часто оказывается более простым выбором, если зрелый локальный CLI уже предоставляет безопасные машиночитаемые операции, а не хватает только инструкций по workflow.
Может ли агент одновременно использовать skill и MCP?
Да. Skill может описывать многошаговой workflow и policy, а MCP-сервер — предоставлять типизированные tools и resources, используемые в этом workflow.
Почему Dockup поставляет skill внутри пакета CLI?
Совместная упаковка позволяет dockup update за один проход обновлять исполняемый файл и инструкции к нему, снижая риск того, что skill будет описывать другую версию команд.
