Questa è parte 2 di "LLM come componenti". Parte 1: Perché i LLM falliscono come sensori copre l'errore di categoria dell'uso dei LLM per la percezione. Questo articolo copre il errore di category dell'utilizzo del MCP come architettura.
"Come faccio a costruire un server MCPM SK1 è la domanda sbagliata.
Esistono SDK. Un LLM può costruirne uno in pochi secondiM SK1 La vera domanda è:
Quale ruolo dovrebbe avere un server MCP all'interno di un sistema che non deve esserci?
La scarsa abilità ora consiste nel progettare Il sistema circostante MCP: autorità, autorizzazioneM SK2 verificabilitàMSL3 e controllo deterministicoM SL4 Il MCP si occupa del trasporto MLS5 queste preoccupazioni vivono altroveMsl6
Questo articolo spiega come uso MCP. senza agenti, autonomia, o vibrazioni, e perché la maggior parte degli esempi MCP riproducono gli stessi problemi che abbiamo visto con l'uso di strumenti senza restrizioni.
MCP (Model Context Protocol protocollo di fili. Si muove:
Lo fa. Non.:
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 è più vicino a OpenAPI di quanto non sia ad un sistema di agenti.
Se' usate MCP come strata di ragionamento, avete già fatto lo stesso errore nella categoria descritta in Parte 1.
Se MCP è il trasporto, allora l'architettura vive sopra di esso: orchestrazioneMSC2 politicaM SK3 validazioneMST4 persistenzaMSM5 Il resto di questo articolo è quella strataMSV6
Questa è la regola fondamentale. RAG ridotto e Fuzzinesse limitata:
Nei miei sistemi:
"DeterministaM SK1 qui non significa 'non significa semplicistica. Significa regola-governed,reproducibileM SK2 e verificabile.
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
Il server MCP non decide.
La configurazione MCP di default è:
Questo fallisce per ragioni prevedibili:
Reframe: I punti di fine del MCP pubblicano i segnaliM SK1 non le azioni.
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
Ogni punto di fine MCP nei miei sistemi ha:
Niente gratis-autorità del testoM SK1 Niente "best effort
Esempi dei sistemi di produzione:
| Signale | Source di Confidenza | Indicettatore delle prove M | |||||
|---|---|---|---|---|---|---|---|
| Extrazione del testo con l'OCR | FlorenceM SK2 punteggio di fiducia | Coordinate della scatola di bottiglia SSK4 | |||||
| Classificazione dell'immagine | punteggio di somiglianza CLIP | Inserzione | + | punteggio della somigiglianza + | ID dell'immaginazione di riferimento | ||
| Transcrizione audio | Parole sussurrate-confidenza di livello | intervallo di tasso temporale MSC4 | |||||
| Identificazione di altoparlante | Distanza del gruppo di diarizzazione | Limiti di segmento M |
La regola: Se un risultato non può essere validatoM SK1, non è accettato '
Questo è lo stesso principio. Regola di progettazione #5: i fatti hanno bisogno di proveM SK1
La maggior parte dei tutorial MCP mostra:
Il componente che manca è il Constrainer - la logica deterministica che :
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
Decisioni reali di constrainer:
MCP collega i componenti. Il constrainer li governa.
I miei server MCP funzionano ancora con il LLM disattivato.
Questo non è un modo degradato. Il modo primario.
Se il vostro sistema smette di funzionare quando il LLM è inaccessibile, l'LLM stava facendo un lavoro non avrebbe dovuto' averlo fatto
Le funzioni di base:
Il LLM diventa:
Il LLM è Non.:
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
Perché questo conta:
| Benefit | LLM-Système necessarie MSC3 LLSMSC4Sistemi opzionali S | |
|---|---|---|
| Costo | Per-coste API per la domanda | Infrastruttura fissa |
| La affidabilità | Interruzione dell'API = sistema spento | Funzioni di base continuano M |
| Testabilità | Rispondenze dell'LLM in giro | Assurenze deterministiche |
| Confidenza Il modello diceva così. |
Tratto il MCP come una specie di I confini rigidi.:
Questo contrasta con:
Perché le frontiere contano:
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
Esempi di fallimento reali dall'uso di MCP senza restrizioni:
| Modo di fallimento | Causa | Mitigazione S | ||
|---|---|---|---|---|
| Alucinazione con gli strumenti | Leghe di descrizione nel ragionamento LLM | Descrizioni minimaliM SK2 schema- primo progetto SSK4 | ||
| Over-eager esecuzione | Gli strumenti per le chiamate del modello "per controllare solo" | La porta dell'investitore controlla tutte le invocazioni | ||
| La deriva del schema | Cambiamenti del comportamento dell'outil , schema non't | Schemi modificatiM SK4 test di contratti | ||
| Emissioni parziali silenziose | L'outil restituisce dati parziali, il modello procede | Soglia di confidenzaM SK3 controlli di completezza | ||
| LLM convinzione eccessiva | Il modello tratta l'output degli strumenti come una verità fondamentale | CrossM SK2Validazione,Esigenze di prova SSK4 | ||
| Eskalazione delle capacità | Modello "tries" strumenti progressivamente più potenti | Terzi di capacità M+ raccolta delle politiche R+ budget D |
Il thread comune: Questi fallimenti avvengono perché il LLM è considerato un'autorità affidabile..
La soluzione: Le LLM propongono:,, i constrainer decidono: ,, i fatti persistono..
MCP è eccellente per:
MCP è Non.:
Usare MCP per quello che è: un protocollo di fili per la comunicazione strutturata tra i componenti.
Il MCP standardizza il modo in cui i modelli e gli strumenti scambiano contesto. Non definisce chi è autorizzato a agire, nelle quali condizioniM SK2 o come le decisioni sono controllateMSC3
Esistono altri approcci per formalizzare queste restrizioni ( talvolta descritti come Protocolli di Capacità d'AzioneM SK1 ACP): Autorizzazione , AttestazioneMSC4 Trascende di Riudimento
Questo articolo non riguarda l'ACP, ma il principio di progettazione. Il trasporto e la governance sono preoccupazioni separate..
MCP ti dice. Come? per chiamare uno strumento. qualcos'altro deve decidere. Se Dovreste. Nei miei sistemi, che ' è il constrainerM SK3 Nei sistemi aziendaliMSC4 potrebbe essere un motore di politicaMNK5
| Aspecto | Demo MCP | Production MCP |
|---|---|---|
| Descrizioni degli strumenti | linguaggio naturaleM SK1 dettagliato | Minimale, schemaMSC4prima SSK5 |
| Chi decide di chiamare? | LLM | |
| Formato di risposta | GratisM SK1forma di testo | Signali digitati con fiducia |
| Validazione | Nessuno | |
| LLM dipendenza | Requisito | Ri arricchimento opzionale |
| Replay | Non--determinista | Completamente riproducibile |
| Il percorso di revisione | Log delle conversazioni | Chain di provenienza del segnale |
MCP consente composizione. Il determinismo permette La fiducia.. LLMs attivano Fluenza..
Ma solo se:
La probabilità propone — e il determinismo persisteM SK1
Il MCP senza constrainer è solo un'injezione rapida con ulteriori passi.
Rendere la sintesi l'ultimo passo. Rendere il LLM opzionale. Rende tutti i fatti trascettibiliM SK2
In precedenza nella serie: Parte 1: Perché i LLM falliscono come sensori
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.