Навыки агентов против серверов MCP: рамки для принятия решений
Навык, MCP-сервер или оба?
Навыки агентов и MCP-серверы часто представляют как конкурирующие способы расширения ИИ-агента. Это неверный подход: навык учит агента работать, а MCP-сервер предоставляет ему контролируемый доступ к живым возможностям.
Полезный вопрос не в том, «какой стандарт победит?», а в том, «где должна находиться эта ответственность?». Это руководство отвечает на этот вопрос для хостингованных ассистентов, таких как Hermes Agent и OpenClaw, где размер контекста, долгосрочные соединения, учётные данные и операционная безопасность важнее, чем аккуратная демонстрация.

Это не академическое сравнение. Это практическая рамка принятия решений, построенная на реальном опыте развёртывания обоих механизмов, включая компромиссы стоимости контекста, которые становятся видимыми только после запуска агента в продакшене. Если вы строите мультиагентные системы, вам также может быть интересно наше сравнение протоколов A2A и MCP, которое охватывает другую ось того же пространства проблем.
Навыки агентов против MCP-серверов в одной таблице
Используйте навык для процедур, суждений и повторно используемых рабочих знаний. Используйте MCP-сервер для авторитетного состояния, защищённых операций и стабильного контракта возможностей.
| Сигнал принятия решения | Навык агента | MCP-сервер | Обычно оба |
|---|---|---|---|
| Статические инструкции, чеклисты или правила стиля | Лучший выбор | Плохой выбор | Иногда |
| Живые тикеты, деплои, записи или метрики | Нет | Лучший выбор | Да |
| Учётные данные или делегированная пользовательская идентичность | Избегайте | Лучший выбор | Да |
| Существующий локальный CLI с безопасными узкими командами | Хороший выбор | Необязательно | Иногда |
| Транзакционные записи или идемпотентность | Слабый выбор | Лучший выбор | Да |
| Портативная процедура между хостами агентов | Лучший выбор | Необязательно | Да |
| Общая возможность для разных языков и клиентов | Ограничено | Лучший выбор | Да |
| Политика человеческого одобрения и эскалации | Лучший выбор | Проводите финальную проверку | Лучший выбор |
| Формат вывода и критерии доказательств | Лучший выбор | Нет | Иногда |
Мой подход намеренно консервативен: начинайте с навыка, когда задача локальна, тяжёлая на чтение и процедурна. Добавляйте MCP-сервер, когда агент пересекает границу доверия, взаимодействует с изменяющимся внешним состоянием или нуждается в операции, которая должна оставаться корректной даже при запутанности модели.
Основное различие: процедура против возможности
Навык агента — это каталог, центрированный на SKILL.md, с опциональными скриптами, ссылками и активами. Спецификация навыков агентов определяет обязательные метаданные и модель прогрессивного раскрытия: хост может сначала обнаружить маленькое имя и описание, загрузить полные инструкции при необходимости и получить поддерживающие файлы только тогда, когда они нужны.
Это делает навык сильным домом для рубрики инцидентов, чеклиста релиза, метода исследования или инструкций по использованию существующего командного инструмента. Его центральная ценность — закодированная процедура: последовательность, суждение, ограничения, примеры и определение хорошего результата. Для деталей авторства навыков Hermes Agent, включая структуру фронтматтера и условную активацию, см. Авторство навыков Hermes Agent.
MCP решает другую проблему. Спецификация протокола контекста модели предоставляет клиенту и серверу контракт на основе JSON-RPC для возможностей, включая инструменты, ресурсы и промпты, со стандартными транспортом и поведением обнаружения. Практические руководства по реализации MCP-серверов на Python и MCP-серверов на Go показывают, насколько простой может быть слой интеграции, когда протокол берёт на себя тяжёлую работу.
Таким образом, MCP-сервер — это хорошая граница вокруг системы тикетов, облачной панели управления, базы данных источника истины или внутреннего поискового сервиса. Он владеет механикой достижения этой системы и может обеспечивать валидацию, авторизацию, тайм-ауты, лимиты частоты и поведение аудита вне прозаических инструкций модели.
Более точное правило
Спросите себя, должна ли ответственность оставаться корректной без того, чтобы модель помнила инструкцию. Если ответ — да, она должна находиться в детерминированном коде или политике сервера, а не только в SKILL.md.
Например, «соберите три поддерживающих сигнала перед эскалацией» — полезная инструкция навыка. «Отклоните изменение статуса, если вызывающий не имеет области инцидент-менеджера» — должно обеспечиваться сервисом или MCP-сервером, даже если навык повторяет правило.
Это та граница, которая имеет значение:
- Навык может сказать агенту, когда действие уместно.
- Инструмент MCP может сделать действие доступным через типизированный интерфейс.
- Поддерживающий сервис должен решить, разрешено ли действие на самом деле.
MCP-серверы также могут экспонировать промпты, поэтому стандарты перекрываются на краях. Тем не менее, помещение всей рабочей процедуры в огромное описание инструмента обычно приводит к хрупкому каталогу возможностей, а размещение привилегированного API-клиента в shell-скрипте, скрытом внутри навыка, обычно приводит к избегаемой проблеме безопасности.
Когда SKILL.md достаточно
Навык достаточно, когда агент уже имеет безопасный доступ ко всему необходимому, и недостающий ингредиент — это знание как. Это распространено для анализа репозиториев, трансформации документов, генерации отчётов или локального рабочего процесса, построенного на зрелых CLI-командах.
Данные локальные или предоставлены пользователем
Предположим, агент должен проверить выгруженный репозиторий, запустить read-only линтеры, сравнить конфигурационные файлы и создать отчёт о миграции. Файлы уже в рабочей среде, и хост уже экспонирует файловые и процессные инструменты, поэтому другой сетевой сервис добавляет мало ценности.
Навык может описать, какие файлы проверять, порядок команд, обработку ошибок и необходимые доказательства. Встроенный скрипт может нормализовать вывод, но существующий песочница и разрешения на команды хоста остаются фактической границей выполнения.
Рабочий процесс зависит от суждения
Навыки особенно полезны, когда существует несколько технически допустимых действий, но организация предпочитает один рабочий метод. Навык code-review может объяснить, какие риски заслуживают блокирующих комментариев, когда запрашивать воспроизведение и как разделять проблемы корректности и вкусовые предпочтения.
Эти правила изменяются по мере обучения команд. Сохранение их в виде version-controlled прозы и небольших ссылок часто яснее, чем перекомпиляция или повторное развёртывание сервера для каждой редакционной корректировки.
Портативность важнее центрального контроля
Открытый формат навыков агентов спроектирован как портативная папка, а не удалённый рантайм. Хорошо ограниченный навык может перемещаться между совместимыми хостами с его инструкциями, примерами и поддерживающими активами, хотя имена инструментов и поведение песочницы всё ещё требуют тестирования на хосте-специфичной основе.
Эта портативность полезна для рабочих процессов Hermes Agent и OpenClaw, которые разделяют метод, но не обязательно одно развёртывание. Сохраняйте хост-специфичные заметки в коротких ссылках вместо форка основной процедуры при первом различии. Руководство по экосистеме навыков OpenClaw охватывает, какие навыки стоит устанавливать и как безопасно ограничивать их для каждой роли агента.
Существующий CLI уже предоставляет возможность
Не стройте сервер просто для обёртки надёжной локальной команды. Если однопользовательский ассистент может вызвать узкий CLI, который уже обрабатывает аутентификацию, структурированный вывод и ошибки, навык может быть меньшим и более поддерживаемым решением.
Ключевой момент важен: CLI не автоматически безопасен только потому, что он локален. Избегайте широкой shell-интерполяции, предпочитайте структурированный вывод, ограничивайте записываемые цели и не рассматривайте предложенный навыком список разрешённых инструментов как полноценную систему авторизации.
Когда нужен MCP-сервер
Выбирайте MCP, когда проблема не просто в том, чтобы помнить что делать. MCP-сервер становится ценным, когда агенту нужен долговечный, типизированный и управляемый мост к изменяющейся системе.
Состояние живое и авторитетное
Тикеты клиентов, статус деплоя, инвентарь, биллинг-записи и производственные метрики могут измениться между двумя ходами модели. Копирование этого состояния в навык делает его устаревшим по конструкции, а просьба к модели скрапать интерфейс приводит к нестабильному контракту.
Ресурс или инструмент MCP может получить текущую запись во время выполнения. Сервер может нормализовать странности upstream и вернуть компактный результат вместо экспонирования всего ответа вендора модели.
Вовлечены учётные данные или пользовательская идентичность
Учётные данные не должны находиться в SKILL.md, примерах или встроенных вспомогательных скриптах. Для удалённых HTTP-развёртываний спецификация авторизации MCP определяет модель на основе OAuth; для локальных stdio-серверов учётные данные могут быть предоставлены через переменные окружения процесса или другой механизм, контролируемый хостом. См. официальное руководство по авторизации MCP.
Более глубокая причина использования сервера — не только хранение секретов. Сервер может отображать идентичность в области, ограничивать тенантов, скрывать поля и записывать, кто запросил мутацию, тогда как прозаическая инструкция может только попросить модель вести себя.
Записи требуют транзакционных гарантий
Создание счёта, изменение статуса тикета или запуск деплоя требует больше, чем правдоподобный JSON-объект. Операция может нуждаться в идемпотентных ключах, оптимистичной конкурентности, серверной валидации и долговечном аудите.
Эти свойства принадлежат ниже модели. Навык может определить политику одобрения, но MCP-сервер должен отклонять невалидные переходы и делать повторный запрос безопасным.
Несколько агентов нуждаются в одной возможности
Общий MCP-сервер может представить один контракт нескольким хостам агентов, языкам и провайдерам моделей. Это даёт платформенным командам центральное место для улучшения схем, патчинга поведения upstream API и применения контроля доступа без копирования логики интеграции в каждый навык.
Централизация не бесплатна. Сервер становится оперируемой зависимостью с версионированием, наблюдаемостью, доступностью и обязательствами по реагированию на инциденты, поэтому он должен заслужить своё существование реальной границей, а не архитектурным энтузиазмом.
Вопрос стоимости контекста
Стоимость контекста часто сводится к лозунгу «навыки прогрессивны, инструменты всегда загружены». Реальные хосты более нюансированы, и разница должна измеряться сериализованным входом модели, а не предполагаться из формата расширения.
Документация навыков агентов описывает примерно 100 токенов метаданных обнаружения на навык, рекомендует сохранять активированные инструкции ниже 5000 токенов и позволяет ссылкам загружаться по требованию. Простая оценка планирования:
C_skill = discovery metadata + activated instructions + selected references
MCP-клиенты обнаруживают определения инструментов от серверов, но протокол не требует, чтобы каждая обнаруженная схема появлялась в каждом вызове модели. Хосты могут фильтровать, откладывать, кэшировать или маршрутизировать инструменты, поэтому практическая оценка:
C_mcp = tool schemas exposed to this turn + tool results retained in context
Спецификация инструментов MCP также отмечает, что стабильный порядок инструментов может улучшить поведение кэша промптов. Кэширование может уменьшить стоимость повторной обработки, но не делает чрезмерно большой каталог более лёгким для выбора модели.
Иллюстративный бюджет токенов
Рассмотрим хостингованный ассистент с 20 установленными навыками. При приблизительной стоимости обнаружения из документации навыков агентов компактный индекс навыков составляет около 2000 токенов; активация фокусированного навыка триажа может добавить ещё 1200 токенов и одну ссылку на 600 токенов.
Теперь сравните два дизайна MCP. Тонкий сервер тикетов с четырьмя лаконичными схемами может сериализоваться в 500-800 токенов, тогда как широкий корпоративный сервер с 35 подробными инструментами может потреблять несколько тысяч токенов до прибытия любого результата.
| Компонент хода | Фокусированный дизайн | Широкий дизайн |
|---|---|---|
| Метаданные обнаружения навыков | Около 2000 токенов | Около 2000 токенов |
| Активированный навык и одна ссылка | Около 1800 токенов | Около 1800 токенов |
| Каталог инструментов MCP, экспонированный модели | 500-800 токенов | 4000+ токенов |
| Первый результат инструмента | 300-700 токенов | 1500+ токенов |
Это иллюстративные числа планирования, а не гарантии протокола или бенчмарки. Измеряйте точный промпт, генерируемый вашим хостом, потому что подробность схем, описания, маршрутизация, удержание результатов и выбор токенизатора могут существенно изменить сумму.
Практический вывод не в том, что «навыки дешёвые» или «MCP дорогой». Он в том, что прогрессивное раскрытие и выбор возможностей — это архитектурные функции: сохраняйте метаданные навыков дискриминативными, активируйте только релевантные инструкции, экспонируйте наименьший полезный набор инструментов и возвращайте проекции вместо сырых upstream-пейлоадов.
Паттерн тонкого сервера: MCP ниже, навык выше
Самый долговечный дизайн часто сочетает оба механизма. Поместите маленькую границу возможностей в MCP, затем положите рабочий метод в навык, который его вызывает.
Рассмотрим рабочий процесс поддержки инцидентов, используемый как из Hermes Agent, так и из OpenClaw. Агент должен прочитать тикет, собрать доказательства, классифицировать серьёзность, набросать заметку оператору и изменить статус только после необходимого одобрения.
Что владеет MCP-сервер
Сохраняйте интерфейс сервера узким и буквальным:
| Инструмент MCP | Назначение | Ответственность на стороне сервера |
|---|---|---|
tickets_search |
Найти кандидатов тикетов | Фильтрация тенанта, пагинация, проекция полей |
tickets_get |
Прочитать один тикет | Авторизация, скрытие, текущая версия |
tickets_add_note |
Добавить заметку оператора | Валидация ввода, идемпотентность, запись аудита |
tickets_change_status |
Применить валидный переход | Проверка области, правила перехода, проверка конкурентности |
Сервер не должен содержать инструмент под названием triage_everything с абзацем описания и дюжиной не связанных флагов. Четыре ограниченные операции легче авторизовать, тестировать, наблюдать и повторно использовать.
Что владеет навык
Навык владеет последовательностью и суждением. Компактный SKILL.md мог бы выглядеть так:
---
name: incident-triage
description: Triage support incidents using ticket evidence and the severity rubric.
---
1. Read the ticket and its current version.
2. Collect at least two independent signals before assigning severity.
3. Separate observed facts from hypotheses in the note.
4. Ask for operator approval before any customer-visible note or status change.
5. Re-read the ticket before a write; stop if its version changed.
6. End with severity, evidence, uncertainty, and recommended next action.
Этот файл читаемый, ревьюируемый и лёгкий для пересмотра при изменении политики триажа. Связанная ссылка может содержать рубрику серьёзности, тогда как основные инструкции остаются достаточно короткими для активации без перетаскивания операционного руководства в каждый ход.
Как это работает в Hermes Agent
Документация нативного MCP Hermes Agent описывает обнаружение при запуске, постоянные соединения, транспорты stdio и Streamable HTTP, а также namespaced MCP-инструменты. Его текущая конфигурация также фильтрует окружение для stdio-серверов и передаёт явно сконфигурированные переменные, что является полезной защитой от случайного наследования секретов.
В этом дизайне Hermes обнаруживает четыре инструмента тикетов, тогда как навык инцидентов активируется только для релевантных запросов. Модель следует за навыком, MCP-сервер выполняет ограниченные операции, а сервис тикетов остаётся финальным авторитетом.
Как это работает в OpenClaw
Документация навыков OpenClaw следует структуре навыков агентов и строит компактный список элигибельных навыков для модели. Та же папка инцидентов может нести основную процедуру с короткой хост-специфичной ссылкой, объясняющей доступные имена инструментов тикетов.
Не помещайте токен тикета в общий навык. OpenClaw явно рассматривает общие навыки как входные данные, а не хранение секретов, и сторонние навыки должны быть ревьюированы как недоверенный код перед их включением.
Почему разделение выживает при изменениях
Если команда поддержки пересматривает свою рубрику серьёзности, обновите навык. Если вендор тикетов изменяет аутентификацию или пагинацию, обновите MCP-сервер без переписывания рабочей политики.
Если появляется второй хост агента, он может повторно использовать тот же контракт MCP и адаптировать маленький хост-специфичный слой навыка. Это разделение уменьшает дублированную логику интеграции без превращения каждого процедурного редактирования в деплой сервиса.
Пятишаговая рамка принятия решений
Следующая последовательность более надёжна, чем выбор модного типа расширения первым.
1. Идентифицируйте источник истины
Запишите каждый вход и выход, которые затрагивает рабочий процесс. Статические руководства, файлы репозитория и предоставленные пользователем документы тяготят к навыку; изменяемые удалённые записи и авторитетные системы тяготят к MCP.
Не всё состояние оправдывает сервер. Локальный артефакт сборки — это состояние, но существующий песочничный CLI может уже предоставлять достаточную границу.
2. Определите границу доверия
Отметьте, где появляются учётные данные, идентичность тенанта, привилегированные данные или необратимые действия. Если агент пересекает эту линию, введите детерминированную точку обеспечения, обычно MCP-сервер, поддерживаемый авторизацией сервиса.
Рассматривайте модель и навык как планировщики запросов, а не движки политики. Они могут предложить разрешённое действие, но не должны быть способны переопределить разрешение, изменив свои собственные инструкции.
3. Разделите возможность от политики
Именуйте возможности как узкие глаголы с типизированными входами: получить тикет, добавить заметку или изменить статус. Положите условия выбора этих глаголов, стандарт доказательств и предпочтительную последовательность в навык.
Некоторая политика должна существовать в обоих слоях по разным причинам. «Спросите пользователя перед деплоем» принадлежит в навыке для качества взаимодействия, тогда как «отклоните деплой без токена одобрения» принадлежит в коде для обеспечения.
4. Оцените стоимость контекста и эксплуатации
Захватите реальный трасс промпта и подсчитайте метаданные навыков, активированные инструкции, определения инструментов и возвращённые данные. Затем добавьте нетокенную стоимость MCP-сервиса: деплой, аутентификацию, мониторинг, версионирование и on-call владение.
Если каталог из 30 инструментов поддерживает один рабочий процесс, экспонируйте task-specific подмножество или разделите сервер по когерентным доменам возможностей. Если навык повторяет загрузку 200-страничной ссылки, создайте шаг извлечения или меньшие ссылки вместо самовосхваления прогрессивного раскрытия.
5. Тестируйте границу, затем поведение
Тестируйте MCP-сервер как программное обеспечение и навык как поведение агента. Они ломаются по-разному, и один happy-path чат-транскрипт скрывает оба класса дефектов.
| Слой | Фокус тестирования | Пример утверждения |
|---|---|---|
| Навык | Выбор и процедура | Активируется для инцидентов, но не для общих вопросов поддержки |
| Навык | Суждение | Цитирует два сигнала перед назначением высокой серьёзности |
| MCP-сервер | Контракт | Отклоняет отсутствующие поля и неформатированные идентификаторы |
| MCP-сервер | Авторизация | Отказывает cross-tenant чтениям и под-областным записям |
| MCP-сервер | Надёжность | Повторная попытка заметки не создаёт дубликат |
| Интегрированный трасс | End-to-end поведение | Запрашивает одобрение, обнаруживает конфликт версий и безопасно останавливается |
Для безопасности инструментов спецификация MCP рекомендует валидацию ввода, контроль доступа, лимиты частоты, санитизацию вывода, тайм-ауты, подтверждения для чувствительных операций и аудит-логирование. Аннотации инструментов — это подсказки, а не доверенное доказательство того, что операция read-only или безвредна. Руководство по безопасности агентов A2A и MCP охватывает более широкую модель угроз, включая инъекцию промптов и отравление инструментов.
Правила безопасности, которые не укладываются в лозунг
Навыки уменьшают необходимость некоторых серверов, но не устраняют риск. Навык может включать скрипты и может убедить агента вызвать мощные инструменты хоста, поэтому ревьюируйте его инструкции и исполняемые файлы как код, фиксируйте доверенные версии и ограничивайте доступные инструменты хоста для сессии.
MCP добавляет другую границу: локальный subprocess или удалённый сервис со своими зависимостями, входами, выходами и учётными данными. Применяйте наименьшие привилегии, валидируйте аудиторию ресурса для удалённой авторизации, используйте HTTPS, санитизируйте недоверенный контент и сохраняйте одобрение видимым для значимых записей.
Самое главное — не путайте обнаруживаемость с авторитетом. Появление инструмента в каталоге модели не означает, что текущий пользователь должен иметь право выполнять каждую операцию, которую он описывает.
Общие антипаттерны
Скрытие удалённого API-клиента в навыке
Shell-скрипт, который читает статический bearer-токен и вызывает производственный API, может работать в демонстрации. Он также смешивает процедуру, учётные данные, сетевое поведение и авторизацию в пакете, спроектированном для копирования и чтения хостами агентов.
Переместите защищённую интеграцию за узкий сервер или существующий одобренный CLI. Сохраняйте только рабочий процесс и руководство по вызову в навыке.
Кодирование рабочего процесса в описаниях инструментов
Описания инструментов должны помогать модели выбрать возможность и заполнить её схему. Они плохая замена многошаговой рабочей процедуре с примерами, исключениями, правилами эскалации и конвенциями вывода.
Длинные описания раздувают каждый ход, в котором инструмент экспонируется, и делают контракт сервиса более сложным для повторного использования. Положите процедуру в навык и сохраняйте семантику инструментов точной.
Построение инструмента execute_anything
Общий shell, SQL или HTTP-прокси коллапсирует множество разрешений в одну трудную для аудита возможность. Он переносит валидацию на модель и делает наименьшие привилегии в основном фикцией.
Экспонируйте операции, выровненные по реальным бизнес-действиям. Если экспертные операторы действительно нуждаются в escape hatch, разделите его, ограничьте и требуйте более сильного одобрения и логирования.
Публикация kitchen-sink MCP-сервера
Сервер с десятками не связанных инструментов обременяет выбор, контекст схем, разрешения и обслуживание. Разделите по когерентным доменам или позвольте хосту экспонировать релевантное подмножество для текущей задачи.
Руководство FastMCP Hermes Agent делает разумную начальную рекомендацию: начинайте с одного-трёх high-value эндпоинтов и предпочитайте тонкий сервер с чёткими именами и схемами. См. официальную документацию навыка FastMCP.
Отношение к подсказкам инструментов как к политике безопасности
Экспериментальное поле allowed-tools или read-only аннотация инструмента могут улучшить поведение хоста, но ни одно не заменяет песочницу и серверную авторизацию. Метаданные могут быть устаревшими, неправильно сконфигурированными или предоставленными недоверенным компонентом.
Используйте подсказки для улучшения интерфейса. Используйте код и инфраструктуру для обеспечения границы.
Использование MCP для статических знаний
Если процедура или ссылка изменяется только с репозиторием, удалённый round trip добавляет затраты на деплой и доступность без того, чтобы сделать информацию более авторитетной. Упакуйте лаконичный материал с навыком и версионируйте его с рабочим процессом.
Вводите сервис извлечения только когда корпус большой, с контролем доступа, независимо обновляемый или действительно нуждается в поиске. Архитектура должна следовать жизненному циклу данных, а не акрониму.
Финальное решение: навык, MCP-сервер или оба?
Выбирайте навык агента, когда трудная часть — знать что делать. Выбирайте MCP-сервер, когда трудная часть — безопасно достичь чего-то, что изменяется, принадлежит другому домену доверия или должно обеспечивать контракт.
Выбирайте оба, когда реальный рабочий процесс нуждается в суждении над защищённой возможностью. Это не дублирование: навык делает агента полезным, сервер делает интеграцию управляемой, а поддерживающая система принимает финальное авторитетное решение.
Для большинства хостингованных ассистентов лучшая первая архитектура умеренная: один фокусированный навык, маленькая MCP-поверхность только там, где живой доступ этого требует, и захваченный трасс промпта для проверки стоимости контекста. Добавляйте сложность после того, как граница станет ясной, а не до.