Umiejętności agenta a serwery MCP: ramy decyzyjne
Umiejętność, serwer MCP czy jedno i drugie?
Umiejętności agenta i serwery MCP są często przedstawiane jako rywalizujące ze sobą sposoby rozszerzania możliwości agenta AI. To ujęcie jest błędne: umiejętność uczy agenta, jak pracować, podczas gdy serwer MCP daje mu kontrolowany dostęp do żywych funkcjonalności.
Przydatnym pytaniem nie jest „Który standard wygra?". To jest „Gdzie powinna znajdować się ta odpowiedzialność?" Ten przewodnik odpowiada na to pytanie dla asystentów hostowanych, takich jak Hermes Agent i OpenClaw, gdzie wielkość kontekstu, długotrwałe połączenia, poświadczenia i bezpieczeństwo operacyjne mają większe znaczenie niż porządna demo.

To nie jest akademicka porównanie. To praktyczny framework decyzyjny zbudowany na podstawie prawdziwego doświadczenia wdrożeniowego z obu mechanizmami, w tym kompromisów kosztowych kontekstu, które stają się widoczne dopiero po uruchomieniu agenta w produkcji. Jeśli budujesz systemy wieloagentowe, możesz również chcieć przeczytać nasze porównanie protokołów A2A vs MCP, które omawia inny wymiar tego samego obszaru problemów.
Umiejętności Agent vs Serwery MCP w Jednej Tabeli
Użyj umiejętności dla procedury, oceny i ponownego użycia wiedzy operacyjnej. Użyj serwera MCP dla autorytatywnego stanu, chronionych operacji i stabilnego kontraktu funkcjonalności.
| Sygnał decyzyjny | Umiejętność Agent | Serwer MCP | Zazwyczaj oba |
|---|---|---|---|
| Statyczne instrukcje, listy kontrolne lub reguły stylu | Najlepsze dopasowanie | Słabe dopasowanie | Czasami |
| Żywe zgłoszenia, wdrożenia, rekordy lub metryki | Nie | Najlepsze dopasowanie | Tak |
| Poświadczenia lub delegowana tożsamość użytkownika | Unikaj | Najlepsze dopasowanie | Tak |
| Istniejące lokalne CLI z bezpiecznymi, wąskimi poleceniami | Dobre dopasowanie | Opcjonalne | Czasami |
| Transakcyjne zapisy lub idempotentność | Słabe dopasowanie | Najlepsze dopasowanie | Tak |
| Przenośna procedura między hostami agenta | Najlepsze dopasowanie | Opcjonalne | Tak |
| Wspólna funkcjonalność między językami i klientami | Ograniczone | Najlepsze dopasowanie | Tak |
| Zatwierdzenie człowieka i polityka eskalacji | Najlepsze dopasowanie | Wymuś ostateczną kontrolę | Najlepsze dopasowanie |
| Format wyjścia i rubryka dowodów | Najlepsze dopasowanie | Nie | Czasami |
Moja domyślna postawa jest celowo konserwatywna: zacznij z umiejętnością, gdy praca jest lokalna, intensywna w odczycie i proceduralna. Dodaj serwer MCP, gdy agent przekracza granicę zaufania, dotyka zmieniającego się zewnętrznego stanu lub potrzebuje operacji, która powinna pozostać poprawna nawet wtedy, gdy model jest zagubiony.
Podstawowa Różnica: Procedura vs Funkcjonalność
Umiejętność Agent to katalog skoncentrowany na SKILL.md, z opcjonalnymi skryptami, referencjami i zasobami. Specyfikacja Umiejętności Agent definiuje wymagane metadane i model postępującej ujawnienia: host może najpierw odkryć małą nazwę i opis, załadować pełne instrukcje, gdy są istotne, i pobrać pliki wspierające tylko wtedy, gdy są potrzebne.
To sprawia, że umiejętność jest silnym miejscem dla rubryki incydentu, listy kontrolnej wydania, metody badawczej lub instrukcji korzystania z istniejącego narzędzia wiersza poleceń. Jej centralną wartością jest zakodowana procedura: sekwencja, ocena, ograniczenia, przykłady i definicja dobrego wyniku. Szczegóły autorstwa dla Hermesa, w tym struktura frontmatter i warunkowa aktywacja, znajdziesz w Autorowaniu Umiejętności Hermes Agent.
MCP rozwiązuje inny problem. Specyfikacja Protokołu Kontekstu Modelu daje klientowi i serwerowi kontrakt oparty na JSON-RPC dla funkcjonalności, w tym narzędzi, zasobów i promptów, ze standardowymi transportami i zachowaniem odkrywania. Praktyczne przewodniki implementacyjne dla serwerów MCP w Pythonie i serwerów MCP w Go pokazują, jak prosta może być warstwa integracji, gdy protokół przejmuje ciężką pracę.
Serwer MCP jest zatem dobrą granicą wokół systemu zgłoszeń, płaszczyzny sterowania chmury, bazy danych źródła prawdy lub wewnętrznej usługi wyszukiwania. Posiada mechanikę dotarcia do tego systemu i może wymuszać walidację, autoryzację, timeouts, limity szybkości i zachowanie audytowe poza instrukcjami prozy modelu.
Bardziej Precyzyjna Zasada
Zapytaj, czy odpowiedzialność musi pozostać poprawna bez tego, aby model pamiętał instrukcję. Jeśli odpowiedź brzmi tak, należy ona do deterministycznego kodu lub polityki serwera, a nie tylko do SKILL.md.
Na przykład „zbierz trzy wspierające sygnały przed eskalacją" jest przydatną instrukcją umiejętności. „Odrzuć zmianę statusu, jeśli wywołujący nie ma zakresu incident-manager" musi być wymuszane przez usługę lub serwer MCP, nawet jeśli umiejętność powtarza tę regułę.
To jest granica, która ma znaczenie:
- Umiejętność może powiedzieć agentowi, kiedy działanie jest odpowiednie.
- Narzędzie MCP może uczynić to działanie dostępnym przez typowany interfejs.
- Usługa wspierająca musi zdecydować, czy działanie jest faktycznie dozwolone.
Serwery MCP mogą również udostępniać prompty, więc standardy nakładają się na krawędziach. Jednak umieszczenie całej procedury operacyjnej w ogromnym opisie narzędzia zwykle produkuje kruchy katalog funkcjonalności, podczas gdy umieszczenie uprzywilejowanego klienta API w skrypcie powłoki ukrytym wewnątrz umiejętności zwykle produkuje uniknięty problem bezpieczeństwa.
Kiedy SKILL.md Jest Wystarczający
Umiejętność jest wystarczająca, gdy agent już ma bezpieczny dostęp do wszystkiego wymaganego i brakującym składnikiem jest wiedza. To jest powszechne dla analizy repozytorium, transformacji dokumentów, generowania raportów lub lokalnego workflow zbudowanego na dojrzałych poleceniach CLI.
Dane Są Lokalne lub Dostarczone przez Użytkownika
Przypuśćmy, że agent musi sprawdzić wyjęte repozytorium, uruchomić tylko-do-odczytu linterów, porównać pliki konfiguracyjne i wygenerować raport migracji. Pliki są już w środowisku roboczym, a host już udostępnia narzędzia filesystem i process, więc dodatkowa usługa sieciowa dodaje niewielką wartość.
Umiejętność może opisać, które pliki sprawdzić, kolejność poleceń, obsługę błędów i wymagane dowody. Zintegrowany skrypt może normalizować wyjście, ale istniejąca piaskownica hosta i uprawnienia do poleceń pozostają faktyczną granicą wykonania.
Workflow Zależy od Oceny
Umiejętności są szczególnie przydatne, gdy istnieje kilka technicznie poprawnych działań, ale organizacja preferuje jedną metodę operacyjną. Umiejętność code-review może wyjaśnić, które ryzyka zasługują na blokujące komentarze, kiedy prosić o reprodukcję i jak oddzielić problemy z poprawnością od gustu.
Te reguły zmieniają się wraz z nauką zespołów. Zachowanie ich jako kontrolowanej wersji prozy i małych referencji jest często jaśniejsze niż rekompilacja lub ponowne wdrożenie serwera dla każdej korekty edytorskiej.
Przenośność Ma Większe Znaczenie Niż Centralna Kontrola
Otwarty format Umiejętności Agent jest zaprojektowany jako przenośny folder, a nie zdalny runtime. Dobrze zakrojona umiejętność może poruszać się między kompatybilnymi hostami z jej instrukcjami, przykładami i zasobami wspierającymi nienaruszonymi, choć nazwy narzędzi i zachowanie piaskownicy nadal wymagają testów specyficznych dla hosta.
Ta przenośność jest przydatna dla workflow Hermesa Agent i OpenClaw, które dzielą metodę, ale niekoniecznie to samo wdrożenie. Zachowuj notatki specyficzne dla hosta w krótkich referencjach zamiast forkować główną procedurę przy pierwszej różnicy. Przewodnik po ekosystemie umiejętności OpenClaw omawia, które umiejętności są warte instalacji i jak bezpiecznie je ograniczać dla każdej roli agenta.
Istniejące CLI Już Dostarcza Funkcjonalność
Nie buduj serwera tylko po to, aby otoczyć niezawodne lokalne polecenie. Jeśli asystent jednoużytkownika może wywołać wąskie CLI, które już obsługuje uwierzytelnianie, strukturalne wyjście i błędy, umiejętność może być mniejszym i bardziej utrzymywalnym rozwiązaniem.
Zastrzeżenie jest ważne: CLI nie jest automatycznie bezpieczne, bo jest lokalne. Unikaj szerokiej interpolacji powłoki, preferuj strukturalne wyjście, ograniczaj pisalne cele i nie traktuj sugerowanej listy narzędzi w umiejętności jako kompletnego systemu autoryzacji.
Kiedy Potrzebujesz Serwera MCP
Wybierz MCP, gdy problem nie polega tylko na zapamiętaniu, co robić. Serwer MCP staje się wartościowy, gdy agent potrzebuje trwałego, typowanego i zarządzanego mostu do zmieniającego się systemu.
Stan Jest Żywy i Autorytatywny
Zgłoszenia klientów, status wdrożenia, inwentaryzacja, rekordy rozliczeniowe i metryki produkcyjne mogą się zmieniać między dwoma turami modelu. Kopiowanie tego stanu do umiejętności sprawia, że jest przestarzały z definicji, podczas gdy prośba do modelu o scrapowanie interfejsu produkuje niestabilny kontrakt.
Zasób lub narzędzie MCP może pobrać aktualny rekord w momencie wykonania. Serwer może normalizować dziwactwa upstream i zwracać kompaktowy wynik zamiast odsłaniać modelowi całą odpowiedź dostawcy.
Poświadczenia lub Tożsamość Użytkownika Są Zaangażowane
Poświadczenia nie powinny znajdować się w SKILL.md, przykładach lub zintegrowanych skryptach pomocniczych. Dla zdalnych wdrożeń HTTP, specyfikacja autoryzacji MCP definiuje model oparty na OAuth; dla lokalnych serwerów stdio, poświadczenia mogą być dostarczone przez środowisko procesu lub inny mechanizm kontrolowany przez hosta. Zobacz oficjalne wytyczne autoryzacji MCP.
Ponadto powód użycia serwera to nie tylko przechowywanie haseł. Serwer może mapować tożsamość do zakresów, ograniczać najemców, redagować pola i rejestrować, kto poprosił o mutację, podczas gdy instrukcja prozy może tylko prosić model, aby się zachowywał.
Zapisy Potrzebują Gwarancji Transakcyjnych
Tworzenie faktury, zmiana statusu zgłoszenia lub rozpoczęcie wdrożenia wymaga więcej niż prawdopodobny obiekt JSON. Operacja może potrzebować kluczy idempotentności, optymistycznej konkurencji, walidacji po stronie serwera i trwałego śladu audytowego.
Te własności należą poniżej modelu. Umiejętność może zdefiniować politykę zatwierdzenia, ale serwer MCP powinien odrzucić nieprawidłowe przejście i uczynić ponowioną prośbę bezpieczną.
Wiele Agentów Potrzebuje Tej Samej Funkcjonalności
Wspólny serwer MCP może prezentować jeden kontrakt wielu hostom agenta, językom i dostawcom modeli. To daje zespołom platform centralne miejsce do ulepszania schematów, łatania zachowania API upstream i stosowania kontroli dostępu bez kopiowania logiki integracji do każdej umiejętności.
Centralizacja nie jest darmowa. Serwer staje się zoperacjonalizowaną zależnością z obowiązkami wersjonowania, obserwowalności, dostępności i reakcji na incydenty, więc powinien zasłużyć na swoje istnienie prawdziwą granicą, a nie entuzjazmem architektonicznym.
Pytanie o Koszt Kontekstu
Koszt kontekstu jest często sprowadzany do hasła „umiejętności są postępujące, narzędzia są zawsze załadowane". Prawdziwi hostowie są bardziej niuansowani, a różnica powinna być mierzona w zserializowanym wejściu modelu, a nie zakładana z formatu rozszerzenia.
Dokumentacja Umiejętności Agent opisuje około 100 tokenów metadanych odkrywania na umiejętność, zaleca utrzymywanie aktywowanych instrukcji poniżej 5000 tokenów i pozwala na ładowanie referencji na żądanie. Prosta szacunkowa formuła planistyczna to:
C_skill = metadane odkrywania + aktywowane instrukcje + wybrane referencje
Klienci MCP odkrywają definicje narzędzi z serwerów, ale protokół nie wymaga, aby każdy odkryty schemat pojawiał się w każdym wywołaniu modelu. Hostowie mogą filtrować, odroczyć, cache’ować lub kierować narzędzia, więc praktyczny szacunek to:
C_mcp = schematy narzędzi odsłonięte dla tej tury + wyniki narzędzi zachowane w kontekście
Specyfikacja narzędzi MCP również odnotowuje, że stabilne sortowanie narzędzi może poprawić zachowanie cache’a promptu. Cache’owanie może zmniejszyć koszt ponownego przetwarzania, ale nie sprawia, że nadmiarowy katalog jest łatwiejszy do wybrania przez model.
Ilustracyjny Budżet Tokenów
Rozważ asystenta hostowanego z 20 zainstalowanymi umiejętnościami. Przy przybliżonym koszcie odkrywania z dokumentacji Umiejętności Agent, kompaktowy indeks umiejętności to około 2000 tokenów; aktywacja skoncentrowanej umiejętności triage może dodać kolejne 1200 tokenów i jedną 600-tokenową referencję.
Teraz porównaj dwa projekty MCP. Cienki serwer zgłoszeń z czterema zwięzłymi schematami może zserializować się do 500-800 tokenów, podczas gdy szeroki serwer korporacyjny z 35冗长的工具可能消耗数千个token,而任何结果都尚未到达。
| Turn component | Focused design | Broad design |
|---|---|---|
| Skill discovery metadata | About 2,000 tokens | About 2,000 tokens |
| Activated skill and one reference | About 1,800 tokens | About 1,800 tokens |
| MCP tool catalog exposed to model | 500-800 tokens | 4,000+ tokens |
| First tool result | 300-700 tokens | 1,500+ tokens |
These are illustrative planning numbers, not protocol guarantees or benchmarks. Measure the exact prompt generated by your host because schema verbosity, descriptions, routing, result retention, and tokenizer choice can move the total substantially.
The practical conclusion is not “skills are cheap” or “MCP is expensive.” It is that progressive disclosure and capability selection are architecture features: keep skill metadata discriminative, activate only relevant instructions, expose the smallest useful tool set, and return projections rather than raw upstream payloads.
The Thin-Server Pattern: MCP Below, Skill Above
The most durable design often combines both mechanisms. Put a small capability boundary in MCP, then place the operating method in a skill that calls it.
Consider a support-incident workflow used from either Hermes Agent or OpenClaw. The agent must read a ticket, gather evidence, classify severity, draft an operator note, and change status only after the required approval.
What the MCP Server Owns
Keep the server interface narrow and literal:
| MCP tool | Purpose | Server-side responsibility |
|---|---|---|
tickets_search |
Find candidate tickets | Tenant filtering, pagination, field projection |
tickets_get |
Read one ticket | Authorization, redaction, current version |
tickets_add_note |
Add an operator note | Input validation, idempotency, audit record |
tickets_change_status |
Apply a valid transition | Scope check, transition rules, concurrency check |
The server should not contain a tool called triage_everything with a paragraph-long description and a dozen unrelated flags. Four bounded operations are easier to authorize, test, observe, and reuse.
What the Skill Owns
The skill owns the sequence and judgment. A compact SKILL.md could look like this:
---
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.
That file is readable, reviewable, and easy to revise when the triage policy changes. A linked reference can hold the severity rubric, while the main instructions remain short enough to activate without dragging an operations handbook into every turn.
How It Runs in Hermes Agent
Hermes Agent’s native MCP documentation describes startup discovery, persistent connections, stdio and Streamable HTTP transports, and namespaced MCP tools. Its current configuration also filters the environment for stdio servers and passes explicitly configured variables, which is a useful defense against accidental secret inheritance.
In this design, Hermes discovers the four ticket tools, while the incident skill activates only for relevant requests. The model follows the skill, the MCP server executes bounded operations, and the ticket service remains the final authority.
How It Runs in OpenClaw
OpenClaw’s skills documentation follows the Agent Skills structure and builds a compact list of eligible skills for the model. The same incident folder can carry the core procedure, with a short host-specific reference explaining the available ticket tool names.
Do not put the ticket token in the shared skill. OpenClaw explicitly treats shared skills as inputs rather than secret storage, and third-party skills should be reviewed as untrusted code before they are enabled.
Why the Split Survives Change
If the support team revises its severity rubric, update the skill. If the ticket vendor changes authentication or pagination, update the MCP server without rewriting the operating policy.
If a second agent host arrives, it can reuse the same MCP contract and adapt the skill’s small host-specific layer. This separation reduces duplicated integration logic without turning every procedural edit into a service deployment.
A Five-Step Decision Framework
The following sequence is more reliable than picking the fashionable extension type first.
1. Identify the Source of Truth
Write down every input and output the workflow touches. Static guidance, repository files, and user-provided documents lean toward a skill; mutable remote records and authoritative systems lean toward MCP.
Not all state justifies a server. A local build artifact is state, but an existing sandboxed CLI may already provide a sufficient boundary.
2. Locate the Trust Boundary
Mark where credentials, tenant identity, privileged data, or irreversible actions appear. If the agent crosses that line, introduce a deterministic enforcement point, typically an MCP server backed by service authorization.
Treat the model and skill as request planners, not policy engines. They may propose a permitted action, but they should not be able to redefine permission by changing their own instructions.
3. Separate Capability From Policy
Name capabilities as narrow verbs with typed inputs: get a ticket, add a note, or change status. Put the conditions for choosing those verbs, the evidence standard, and the preferred sequence in the skill.
Some policy must exist in both layers for different reasons. “Ask the user before deploying” belongs in the skill for interaction quality, while “reject deployment without an approval token” belongs in code for enforcement.
4. Estimate Context and Operating Cost
Capture a real prompt trace and count the skill metadata, activated instructions, tool definitions, and returned data. Then add the non-token cost of an MCP service: deployment, authentication, monitoring, versioning, and on-call ownership.
If a 30-tool catalog supports one workflow, expose a task-specific subset or split the server by coherent capability domain. If a skill repeatedly loads a 200-page reference, create a retrieval step or smaller references instead of congratulating yourself on progressive disclosure.
5. Test the Boundary, Then the Behavior
Test the MCP server as software and the skill as agent behavior. They fail differently, and a single happy-path chat transcript hides both classes of defect.
| Layer | Test focus | Example assertion |
|---|---|---|
| Skill | Selection and procedure | Activates for incidents but not general support questions |
| Skill | Judgment | Cites two signals before assigning high severity |
| MCP server | Contract | Rejects missing fields and malformed identifiers |
| MCP server | Authorization | Denies cross-tenant reads and under-scoped writes |
| MCP server | Reliability | A retried note does not create a duplicate |
| Integrated trace | End-to-end behavior | Requests approval, detects version conflict, and stops safely |
For tool safety, the MCP specification recommends input validation, access controls, rate limits, output sanitization, timeouts, confirmations for sensitive operations, and audit logging. Tool annotations are hints, not trusted proof that an operation is read-only or harmless. The A2A and MCP agent security guide covers the broader threat model including prompt injection and tool poisoning.
Security Rules That Do Not Fit in a Slogan
Skills reduce the need for some servers, but they do not remove risk. A skill can include scripts and can persuade an agent to call powerful host tools, so review its instructions and executable files as code, pin trusted versions, and limit the host tools available to the session.
MCP adds another boundary: a local subprocess or remote service with its own dependencies, inputs, outputs, and credentials. Apply least privilege, validate resource audience for remote authorization, use HTTPS, sanitize untrusted content, and keep approval visible for consequential writes.
Most importantly, do not confuse discoverability with authority. A tool appearing in the model’s catalog does not mean the current user should be allowed to execute every operation it describes.
Common Anti-Patterns
Hiding a Remote API Client in a Skill
A shell script that reads a static bearer token and calls a production API may work in a demo. It also mixes procedure, credentials, network behavior, and authorization into a package designed to be copied and read by agent hosts.
Move the protected integration behind a narrow server or an existing approved CLI. Keep only the workflow and calling guidance in the skill.
Encoding the Workflow in Tool Descriptions
Tool descriptions should help the model select a capability and fill its schema. They are a poor substitute for a multi-step operating procedure with examples, exceptions, escalation rules, and output conventions.
Long descriptions inflate every turn in which the tool is exposed and make the service contract harder to reuse. Put the procedure in a skill and keep tool semantics precise.
Building an execute_anything Tool
A generic shell, SQL, or HTTP proxy collapses many permissions into one difficult-to-audit capability. It shifts validation to the model and makes least privilege mostly fictional.
Expose operations aligned to actual business actions. If expert operators truly need an escape hatch, separate it, restrict it, and require stronger approval and logging.
Publishing a Kitchen-Sink MCP Server
A server with dozens of unrelated tools burdens selection, schema context, permissions, and maintenance. Split by coherent domain or let the host expose a relevant subset for the current task.
Hermes Agent’s FastMCP guidance makes a sensible starting recommendation: begin with one to three high-value endpoints and prefer a thin server with clear names and schemas. See the official FastMCP skill documentation.
Treating Tool Hints as Security Policy
An experimental allowed-tools field or a tool’s read-only annotation can improve host behavior, but neither replaces sandboxing and server-side authorization. Metadata may be stale, misconfigured, or supplied by an untrusted component.
Use hints to improve the interface. Use code and infrastructure to enforce the boundary.
Using MCP for Static Knowledge
If a procedure or reference changes only with the repository, a remote round trip adds deployment and availability costs without making the information more authoritative. Package concise material with the skill and version it with the workflow.
Introduce a retrieval service only when the corpus is large, access-controlled, independently updated, or genuinely needs search. Architecture should follow the data lifecycle, not the acronym.
Final Decision: Skill, MCP Server, or Both?
Choose an Agent Skill when the hard part is knowing what to do. Choose an MCP server when the hard part is safely reaching something that changes, belongs to another trust domain, or must enforce a contract.
Choose both when a real workflow needs judgment above a protected capability. That is not duplication: the skill makes the agent useful, the server makes the integration governable, and the backing system makes the final decision authoritative.
For most hosted assistants, the best first architecture is modest: one focused skill, a small MCP surface only where live access demands it, and a captured prompt trace to verify the context cost. Add complexity after the boundary is clear, not before.