Це частина 2 з "LLMs як компонентів МSK2 Частина 1: Чому LLM не працює як датчики описує категорію помилки використання LLM для сприйняття
" Як я будую MCP-сервер
Существуют SDKs. LLM може підштовхуватись один раз за секунду . Справжнє питання:
Яка роль має відіграти MCP сервер всередині системи, яка не повинна ховатися?
Найрідкіснішою майстерністю тепер є проектування система навколо MCP: організаціяМSK1 дозвілМСК2 перевіряльністьMСК3 та детерміністична kontrolaM СК4 МПК керує транспортом М СК5 ці проблеми живуть в іншому місціМ SК6
Ця стаття пояснює, як я користуюся MCP без агентів, автономіїM SK1 або вібр, і чому більшість прикладів MCP відтворюють ті самі проблеми, які ми бачили з неупередженими інструментами, що називали
MCP (Model Context Protocol) - це кабельний протокол. Переміщується
Так і є. не:
flowchart LR
subgraph MCP["MCP: What It Does"]
Schema[Schema Discovery] --> Transport[Transport Layer]
Transport --> Invoke[Tool Invocation]
Invoke --> Response[Structured Response]
end
subgraph NotMCP["Not MCP's Job"]
When[When to run?]
Trust[Is this true?]
Should[Should we act?]
Safe[Is this safe?]
end
style MCP fill:none,stroke:#16a34a,stroke-width:2px
style NotMCP fill:none,stroke:#dc2626,stroke-width:2px
style Schema fill:none,stroke:#059669,stroke-width:2px
style Transport fill:none,stroke:#059669,stroke-width:2px
style Invoke fill:none,stroke:#059669,stroke-width:2px
style Response fill:none,stroke:#059669,stroke-width:2px
style When fill:none,stroke:#dc2626,stroke-width:2px
style Trust fill:none,stroke:#dc2626,stroke-width:2px
style Should fill:none,stroke:#dc2626,stroke-width:2px
style Safe fill:none,stroke:#dc2626,stroke-width:2px
MCP ближче до OpenAPI, ніж до механізму агента.
Якщо ви ' використовуєте MCP як your reasoning layer, ви ' вже зробили ту ж категорію помилки, яка описана в Частина 1.
Якщо MCP є транспортом, то архітектура живе над ним.
Це основний принцип Reduced RAG і Стримана неясність:
У своїх системах:
"DeterministycznyM SK1 тут не значить 't означає спрощений M SK3 Це означає правило МСК0 управління МSK1 повторюваність , і перевіряється.
flowchart TD
subgraph Proposers["Proposers (Probabilistic)"]
LLM[LLM Synthesis]
MCP1[MCP Tool Response]
MCP2[MCP Tool Response]
end
subgraph Constrainer["Constrainer (Deterministic)"]
Validate[Validate Proposals]
Compare[Compare Confidence]
Policy[Apply Policy Rules]
Decide[Accept / Reject / Escalate]
end
subgraph Persistence["Persistence (Facts)"]
Facts[(Verified Facts<br/>With Provenance)]
end
LLM --> Validate
MCP1 --> Validate
MCP2 --> Validate
Validate --> Compare
Compare --> Policy
Policy --> Decide
Decide --> Facts
style Proposers fill:none,stroke:#d97706,stroke-width:2px
style Constrainer fill:none,stroke:#2563eb,stroke-width:2px
style Persistence fill:none,stroke:#16a34a,stroke-width:2px
style LLM fill:none,stroke:#d97706,stroke-width:2px
style MCP1 fill:none,stroke:#d97706,stroke-width:2px
style MCP2 fill:none,stroke:#d97706,stroke-width:2px
style Validate fill:none,stroke:#2563eb,stroke-width:2px
style Compare fill:none,stroke:#2563eb,stroke-width:2px
style Policy fill:none,stroke:#2563eb,stroke-width:2px
style Decide fill:none,stroke:#2563eb,stroke-width:2px
style Facts fill:none,stroke:#16a34a,stroke-width:3px
Сервер MCP не вирішує: МСК0 , ".", а констренер вирішував:" МSK2 .
Початковий формат MCP - ":".
Це не спрацьовує з передбачуваних причин:
Переформулювати: Кондитори MCP публікують сигнали
flowchart LR
subgraph Wrong["❌ Tools Mental Model"]
Desc[Tool Description<br/>'Gets weather for city'] --> LLM1[LLM Chooses]
LLM1 --> Execute[Execute Action]
Execute --> Trust1[Trust Result?]
end
subgraph Right["✓ Signals Mental Model"]
Schema2[Typed Schema<br/>city: string, units: enum] --> Invoke2[Deterministic Invoke]
Invoke2 --> Signal[Signal Response<br/>+ confidence + provenance]
Signal --> Validate2[Constrainer Validates]
end
style Wrong fill:none,stroke:#dc2626,stroke-width:2px
style Right fill:none,stroke:#16a34a,stroke-width:2px
style Desc fill:none,stroke:#dc2626,stroke-width:2px
style LLM1 fill:none,stroke:#dc2626,stroke-width:2px
style Execute fill:none,stroke:#dc2626,stroke-width:2px
style Trust1 fill:none,stroke:#dc2626,stroke-width:2px
style Schema2 fill:none,stroke:#16a34a,stroke-width:2px
style Invoke2 fill:none,stroke:#16a34a,stroke-width:2px
style Signal fill:none,stroke:#16a34a,stroke-width:2px
style Validate2 fill:none,stroke:#16a34a,stroke-width:2px
Кожен кінцевий пункт MCP в моїх системах має:
Ні безкоштовного-авторства текстуM SK1 Ні " найкращого зусильMSC3 відповідейМSK4
Приклади з виробничих систем:
| Сигнал МSK1 Źródło довіри МSK2 Показчик доказів | ||||||
|---|---|---|---|---|---|---|
| Видобуток OCR тексту | Флоренція МSK2 довіра балу | МSK3 | Координації у будівниці | |||
| класифікація образів МSK1 бал схожості CLIP МSK2 вбудова + балхожості M+ ідентифікатор відображання МСК5 | ||||||
| Аудіо-транскрипція | ||||||
| Identifikaція głośnikа | Відстані кластерної діарізації МSK2 Похибки сегменту МSK3 |
Правило: Якщо результат не підтверджується
Це той самий принцип, що і Правила проектування #5: факти потребують доказуM SK1
Більшість уроків MCP показують:
Відсутня компонента - констренер - детерміністична логіка, що
flowchart TD
subgraph Sources["Signal Sources"]
Heuristics[Heuristics<br/>Text-likeliness: 0.3]
LocalModel[Local Model<br/>Florence-2 OCR: 0.85]
LLMCall[LLM Escalation<br/>GPT-4V: 0.92]
end
subgraph Constrainer["Constrainer Logic"]
Receive[Receive All Signals]
Check{Confidence<br/>≥ 0.7?}
Cross[Cross-Validate<br/>Signals Agree?]
Accept[Accept as Fact]
Reject[Reject / Log]
Escalate[Escalate to<br/>Higher Tier]
end
Heuristics --> Receive
LocalModel --> Receive
LLMCall --> Receive
Receive --> Check
Check -->|Yes| Cross
Check -->|No| Escalate
Cross -->|Yes| Accept
Cross -->|No| Reject
style Sources fill:none,stroke:#d97706,stroke-width:2px
style Constrainer fill:none,stroke:#2563eb,stroke-width:2px
style Heuristics fill:none,stroke:#d97706,stroke-width:2px
style LocalModel fill:none,stroke:#d97706,stroke-width:2px
style LLMCall fill:none,stroke:#d97706,stroke-width:2px
style Receive fill:none,stroke:#2563eb,stroke-width:2px
style Check fill:none,stroke:#2563eb,stroke-width:2px
style Cross fill:none,stroke:#2563eb,stroke-width:2px
style Accept fill:none,stroke:#16a34a,stroke-width:2px
style Reject fill:none,stroke:#dc2626,stroke-width:2px
style Escalate fill:none,stroke:#7c3aed,stroke-width:2px
Справжні рішення щодо констренаторів:
MCP з 'єднує компоненти. Констренер керує нимиM SK1
Мої MCP сервери досі функціонують з неможливим LLM.
Це не "'", а degraded mode . первинний режим.
Якщо ваша система припиняє працювати, коли LLM не доступний,
Корінні функції:
LLM стає:
LLM - не:
flowchart TD
subgraph AlwaysOn["Always On (Deterministic)"]
Sensors[Sensors + Heuristics]
Local[Local Models<br/>Florence-2, Whisper, CLIP]
Facts[(Facts Database)]
Query[Query Engine]
end
subgraph Optional["Optional (LLM)"]
Synthesis[Natural Language Synthesis]
Explain[Explanation Generation]
end
Sensors --> Local
Local --> Facts
Facts --> Query
Query --> Synthesis
Query --> Explain
style AlwaysOn fill:none,stroke:#16a34a,stroke-width:2px
style Optional fill:none,stroke:#6b7280,stroke-width:2px,stroke-dasharray: 5 5
style Sensors fill:none,stroke:#16a34a,stroke-width:2px
style Local fill:none,stroke:#16a34a,stroke-width:2px
style Facts fill:none,stroke:#16a34a,stroke-width:3px
style Query fill:none,stroke:#16a34a,stroke-width:2px
style Synthesis fill:none,stroke:#6b7280,stroke-width:2px
style Explain fill:none,stroke:#6b7280,stroke-width:2px
Чому це важливо:
| Прибутки | LLMM SK2Погані системи МSK3 LL-Опціональні системи | | |
|---|---|---|
| Ціна | За МSK1 Koszt API запросу МSK2 фіксована інфраструктура | |
| Надежність | API вимкнуто = система вимкнена МSK2 Корінні функції продовжуються МSK3 | |
| Тестованість | Похибка відповідей LLM | Детерміністичні твердження МSK2 |
| Довіра МSK0 " Модель відповіла так. |
Я ставлюся до MCP як до жорстка межа:
Це контрастує з:
Чому важливі кордони:
flowchart LR
subgraph Process1["Process: Orchestrator"]
Orch[Orchestrator<br/>Constrainer Logic]
end
subgraph Process2["Process: MCP Server 1"]
MCP1[Image Analysis<br/>Signals]
end
subgraph Process3["Process: MCP Server 2"]
MCP2[Audio Analysis<br/>Signals]
end
subgraph Process4["Process: MCP Server 3"]
MCP3[Video Analysis<br/>Signals]
end
Orch <-->|MCP Protocol| MCP1
Orch <-->|MCP Protocol| MCP2
Orch <-->|MCP Protocol| MCP3
style Process1 fill:none,stroke:#2563eb,stroke-width:2px
style Process2 fill:none,stroke:#16a34a,stroke-width:2px
style Process3 fill:none,stroke:#16a34a,stroke-width:2px
style Process4 fill:none,stroke:#16a34a,stroke-width:2px
style Orch fill:none,stroke:#2563eb,stroke-width:2px
style MCP1 fill:none,stroke:#16a34a,stroke-width:2px
style MCP2 fill:none,stroke:#16a34a,stroke-width:2px
style MCP3 fill:none,stroke:#16a34a,stroke-width:2px
Справжні випадки невдачі від необмеженого використання MCP:
| tryb непрацездатності МSK1 причина МSK2 полегшення | ||
|---|---|---|
| Галюцинація інструментів | Похибка опису в обґрунтування LLM МSK1 Minimal descriptionsM SK2 schema-first design | |
| Над - надмірне виконання | Модель вызовів інструменти МSK1просто перевіритиM SK2 МSK3 Констрейнатор вмикає всі виклики | |
| Дрейф схем | Зміни в поведінці інструментаM SK1 схема не працює't | Версії схемМSK4 тести контракту МSK5 |
| Невимушені частові невдачі | Оборудование повертає частину даних , модель рухається вперед МSK2 Перепохи на впевненість МSK3 перевіряє повність | |
| Надмірна впевненість в LLM | Модель сприймає виведення інструментів як базову істину. | |
| Збільшення можливостей МSK0 Модель "тири МSK2 Поступово потужніші інструменти M | Уровни можливостей МСК4 Дослідження політики МПС5Budżeти MPС6 |
Поширена тема: ці невдачі трапляються, тому що LLM є авторитетним.
Установка: Лідери LLM запропонують: МСК0 , Констрейнери вирішують:" МSK1 . Факти продовжуються.
MCP чудовий для:
MCP - не:
Використовуйте MCP для того, що це
MCP стандартизує те, як моделі та інструменти обмінюються контекстом. Не визначає, хто має право діятиМSK1 в яких умовахM SK2 чи як перевіряють рішення.
Існують інші підходи, щоб формалізувати ці обмеження. ( інколи описані як протоколи з актовими можливостями МSK1 АCP МSK2 дозвіл , аттестація
Ця стаття не про AKP, а про принцип проектування. транспорт і управління - це окремі проблеми.
MCP каже вам як щоб викликати інструмент. Щось інше має вирішити чи у моїх системах МСК1, що МСК2 - це констренер МСК3, в корпоративних системах , - це може бути політичний двигун
| Аспект МSK1 Демо-МПК МSK2 Продукція МКП | ||
|---|---|---|
| описи інструментів | Природна моваM SK1 детальна | Minimal МSK3 схема-перша МSK5 |
| Хто вирішує викликати МSK0 ЛЛМ | Оркестр МSK2 Конструктор | |
| Формат реагування | БезкоштовнийM SK1формальний текст | Зроблені сигнали з впевненістю МSK3 |
| Випробовування | Ніхто МSK1 Перетинні МSK2validation | |
| Відлежність від LLM | Потрібно | Невключне забагачення МSK2 |
| Повторюй | Не МSK1детерміністичний МSK2 Полностью відтворюваний | |
| Прослідка аудиту | журнали розмов МSK1 ланцюг проходження сигналу МSK2 |
MCP дозволяє склад. Детермінізм дозволяє довіра. Включити LLM гнучкість.
Але тільки тоді, якщо
Ймовірність передбачає —, а детермінізм залишається
MCP без концентратора - це просто швидка ін 'єкція з додатковими кроками.
Зробіть синтез останнім кроком. Робіть LLM опційним. Робіте кожен факт відстежнимМSK2
Поprzedні в серии: Частина 1: Чому LLM не працює як датчики
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.