Индекс журналаDockup / заметка с места
Note / agent-skills-vs-mcp

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.mdMCP-сервер
Основная задачаОбъяснять 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, если выполняются все следующие условия:

  1. Зрелый CLI или локальное приложение уже предоставляет необходимые возможности.
  2. Agent host может его запускать.
  3. Машиночитаемый вывод и семантика кодов завершения достаточны.
  4. Основной пробел связан с процедурными знаниями, а не с подключением.
  5. Упаковка позволяет синхронизировать инструкции с исполняемым файлом.

Используйте только 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 администрирования базы данных без CLIMCPТипизированные удалённые операции полезны
Сложный 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 / документированный streamProgress или completion protocol
Защита секретовМаскирование и контроль stderrРедактирование данных на стороне сервера
Подтверждение разрушительных действийCLI confirmation gateПолитика сервера или подтверждение клиента
АудитAudit log платформыAudit logs сервера и backend
Проверка версииСтатус skill/binaryMetadata и schemas сервера

Интерфейс должен снижать вероятность ошибочно сообщить о сбое, а не об успехе.

Какую архитектуру выбрать production-команде?

Начните с определения реального пробела.

Выбирайте архитектуру skill-first, если команда уже доверяет CLI и умеет им управлять. Инвестируйте в его машинный контракт: JSON, настоящие коды завершения, стабильные error codes, инструкции, синхронизированные с версией, и подтверждения. Затем упакуйте skill вместе с этим инструментом. Это самый короткий путь для деплоя через Claude Code и деплоя через Codex с использованием Dockup.

Выбирайте MCP-first, если возможность по своей природе является удалённой, ориентированной на ресурсы или общей для множества клиентов. Относитесь к серверу как к production software: аутентифицируйте его, ограничивайте его scope, мониторьте и проверяйте каждую операцию изменения.

Выбирайте оба варианта, если policy и connectivity одинаково сложны. Чётко разделяйте обязанности. Skill не должен дублировать реализацию сервера, а описание сервера не должно превращаться в разросшееся руководство по эксплуатации.

Практический evaluation workshop

Проведите небольшой proof с одной операцией чтения, одной обратимой записью, одной длительной операцией и одной разрушительной операцией, которая должна быть заблокирована. Оцените каждый дизайн по следующим критериям:

  1. Как агент обнаруживает операцию.
  2. Как передаются credentials.
  3. Как подтверждается успех.
  4. Как классифицируется сбой.
  5. Как человек подтверждает опасное действие.
  6. Как извлекаются logs и audit evidence.
  7. Как поддерживается согласованность версий.
  8. Как интеграция полностью удаляется.

Не принимайте решение только по одной диаграмме. Наблюдайте за сценариями сбоев. Дизайн, который выглядит элегантно на 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 skillClient prompt или companion skill
Поведение исполняемого файлаPublisher CLIКоманда MCP-сервера
Работа с credentialsCLI и runtime environmentСервер и client connection
ДоступностьЛокальный executable и platform APIServer process, transport и backend
Совместимость схемCLI release processMCP server release process
Данные для расследования инцидентовCLI output и platform auditClient 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 будет описывать другую версию команд.