MCP एक परिवहन है
यह घटक के रूप में "LLMs का भाग है भाग 1: LLMs क्यों सेंसर के रूप में विफल आकलन के लिए एलएलएम का उपयोग करने की श्रेणी त्रुटि को शामिल किया है
मैं एक MCP सर्वर कैसे बनाता हूँ
SDKs मौजूद हैं. LLM सेकेंड में एक ढांचा बना सकता है
MCP सर्वर को एक सिस्टम के अंदर क्या भूमिका निभानी चाहिए जो नहीं होना चाहिये
दुर्लभ कौशल अब डिजाइन कर रहा है चारों ओर MCP: प्राधिकरण, प्राधिकृति, लेखा-परीक्षा योग्यता, और निर्णायक नियंत्रण. MCP परिवहन का संचालन करता है — ये चिंताएं अन्य स्थानों पर रहती हैं
इस लेख में मैं एमसीपी का प्रयोग कैसे करता हूँ बताता है एजेंटों के बिना, और क्यों अधिकतर MCP उदाहरणों में हम के समान समस्याओं को फिर से बनाता है जो हमने बिना प्रतिबंध उपकरण कॉल के देखा है
क्या वास्तव में MCP है (और क्या है
MCP ( मॉडल संदर्भ प्रोटोकॉल तार प्रोटोकॉलयह चलता है
- इनपुट और आउटपुट
- योजनाएँ
- औज़ार मेटाडेटा
- क्षमता खोज
यह करता है नहीं:
- निर्णय जब उपकरण चलाना चाहिए
- सत्य प्रमाणित करें
- विश्वास लागू करें
- गौण प्रभाव प्रबंधित करें
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
एमसीपी एक एजेंट फ्रेमवर्क से अधिक OpenAPI के पास है
यदि आप MCP को अपने तर्क परत के रूप में उपयोग कर रहे हैं भाग 1.
यदि MCP परिवहन है, तो वास्तुकला इसके ऊपर रहती है।
मूल सिद्धांत: प्रस्ताव vs निर्णय
यह मूल नियम है कम RAG और अवरोधित अस्पष्टता:
- संभाव्य घटक प्रस्तावित करें
- निर्णायक प्रणालियां निर्णय करती हैं
मेरे प्रणालियों में
- एलएलएम हैं कभी नहीं अधिकारी
- औज़ार कभी नहीं स्वायत्त
- प्रत्येक MCP प्रतिक्रिया एक है प्रस्ताव, एक तथ्य नहीं है
"Deterministic नियम.
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 सर्वर नहीं decides
क्यों "उपकरणों" गलत मानसिक मॉडल हैं
तयशुदा MCP फ्रेमिंग है:
- "उपकरणों के रूप में विधियां प्रस्तुत करें
- " मॉडल को चुनने के लिए कौन सा उपकरण चुनें
- निष्पादन से पहले अनुमति मांगें
यह पूर्वानुमान योग्य कारणों के लिए असफल है
- औज़ार वर्णन प्रोम्प्ट बनते हैं: LLM शब्दावली से अभिप्राय infers
- औज़ार चयन ड्रिफ्ट्स: मॉडल प्रासंगिकता के लिए अनुकूलन करता है, न सहीnessM SK2 और वर्णन समानता पर आधारित उपकरणों को चुनता है
- अनुमति प्रवर्धन हैं UX, सुरक्षा नहीं: एक मोडल संवाद से गलत औज़ार को चुने जाने से नहीं रोकता
- कोई पुनरावर्तनीयता नहीं: आप एक सत्र को प्रतिलिपि नहीं कर सकते क्योंकि उपकरण चयन संभाव्यतावादी था
पुनः फ्रेमवर्क: MCP अंतबिंदुएं संकेतों को प्रकाशित करती हैं
- संकेतों को टाइप किया गया है, bound, और प्राप्य
- प्रत्येक संकेत में विश्वास है-, provenance, , और साक्ष्य संकेतक
- प्राकृतिक भाषा एक है प्रस्तुतिकरण परत, अवयव नहीं
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 अंतबिंदु के पास है
- एक स्कीमा: टाइप किए गए इनपुट और आउटपुट
- विश्वासयह परिणाम कितनी निश्चित है
- प्रवीणतायह कहाँ से आया है?
- साक्ष्य संकेतकक्या स्वतंत्र रूप से सत्यापित किया जा सकता है
कोई free-text authority. No | " | best effort |" | answers
उत्पादन प्रणालियों के उदाहरण
संकेत | विश्वसनीय स्रोत |--------|-------------------|------------------| OCR पाठ निष्कर्षण | फ्लोरेंस छवि वर्गीकरण | ऑडियो ट्रांस्क्रिप्शन स्पीकर पहचान
नियम: यदि परिणाम को सत्यापित नहीं किया जा सकता है तो यह स्वीकार नहीं किया जाता है
यह एक ही सिद्धांत है जैसे डिजाइन नियम #5तथ्यों को प्रमाणन की आवश्यकता है
Constrainer: भाग सभी Skips
अधिकतर 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
वास्तविक कंस्ट्रेनर निर्णय
- LLM शीर्षक को अस्वीकार करें जब पाठ पर हियूरिसिक्स असहमत होता है
- निचले% - को प्राथमिकता देता है, लेकिन उच्च से अधिक प्रमाणित ओसीआर
- जब स्थानीय मॉडल विश्वास हो तब मात्र दृश्य एलएलएम में स्कालेट करें
MCP अवयवों को जोड़ता है
LLM बंद कर रहा है (और मैं क्या करता हूँ
मेरे MCP सर्वर अभी भी LLM अक्षम के साथ कार्य करते हैं
यह एक विकृत मोड नहीं है प्राथमिक मोड.
यदि आपका तंत्र LLM अनुपलब्ध होने पर काम बंद कर देता है
कोर फ़ंक्शन
- निष्कर्षित तथ्यों से निश्चात्मक सारांश
- प्रमाण embeddings और फ़िल्टरों के माध्यम से पहली बार प्राप्त
- तथ्य डाटाबेस के विरुद्ध संगठित क्वेरी
एलएलएम हो जाता है
- एक संश्लेषण परत (वैकल्पिक
- एक व्याख्या इंजन (जब अनुरोध किया जाता है
- प्राकृतिक भाषा आउटपुट के लिए एक समृद्धक (
एलएलएम है नहीं:
- एक निर्णयकर्ता
- स्मृति
- एक सत्य इंजन
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
यह क्यों महत्वपूर्ण है
| लाभ | LLM | - | अपेक्षित प्रणालियां | |||
|---|---|---|---|---|---|---|
| लागत Per -query API costs | ||||||
| विश्वासनीयता | API बंद हो गया है | = | सिस्टम कम हो गया | कोर कार्य जारी हैं | ||
| परीक्षण योग्यता मोक एलएलएम प्रतिक्रियाएँ | ||||||
| विश्वास मॉडल ने ऐसा कहा है |
एक सीमा के रूप में MCP
मैं एमसीपी को एक के रूप में देखता हूँ कठोर सीमा:
- प्रक्रिया अलगाव: MCP सर्वर अलग प्रक्रियाओं में चलाते हैं
- स्पष्ट इनपुट: कोई साझा म्यtable स्थिति नहीं
- कोई परिवेश संदर्भ नहीं: प्रत्येक कॉल स्पष्ट इनपुट पर मूल्यांकन किया जाता है
- टाइप किए गए संविदाएं: स्कीमा उल्लंघन त्रुटि हैं
इसके विपरीत :
- साझा स्मृति के साथ In-प्रक्रिया एजेंट
- छिपे संदर्भ संचयन के साथ चाइंगिंग
- "Conversational" औज़ार का उपयोग जहाँ पूर्ववर्ती घुमाव व्यवहार को प्रभावित करते हैं
सीमाओं का महत्व क्यों है
- फिर चलाएँ (R): इनपुट को फिर से बजाकर किसी भी सत्र को पुनः उत्पन्न करें
- लेखापरीक्षा: प्रत्येक संकेत का एक ट्रेसयोग्य मूल है
- निर्धारणात्मक परीक्षण: समान इनपुट
- अनुपालन: स्पष्ट निर्णय श्रृंखलाएं
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 उदाहरण Don't के बारे में बात नहीं करें
असंबंधित MCP उपयोग से वास्तविक विफलता के मामले
| विफल मोड | कारण |
|---|---|
| औजार भ्रम | LLM तर्क में वर्णन छिड़काव |
| अधि-- मॉडल कॉल उपकरण "जाने के लिए सिर्फ जांच करें | |
| स्कीमा ड्राइप उपकरण बर्ताव परिवर्तन | |
| मौन आंशिक असफलताएँ उपकरण आंशिक डेटा लौटाता है | |
| एलएलएम अधिक विश्वास मॉडल उपकरण आउटपुट को आधार सत्य के रूप में व्यवहार करता है | |
| क्षमता वृद्धि मॉडल |
सामान्य थ्रेड ये असफलताएं होती हैं क्योंकि एलएलएम एक प्राधिकारी के रूप में विश्वास किया जाता है.
फ़िक्स एलएलएम्स प्रस्ताव , कंस्ट्रेनर्स तय `,' तथ्य जारी हैं.
क्या MCP अच्छी है (जब उचित रूप से उपयोग किया जाता है
एमसीपी के लिए उत्कृष्ट है
- क्षमता खोज: उपलब्ध संकेतों की रनटाइम सूची
- Inter-प्रक्रिया संरचना: अवयवों के बीच सीमाओं को साफ करें
- उपकरणों के परस्पर कार्यक्षमताकिसी भी MCP युक्त क्लाइंट के साथ काम करता है
- मॉडल: संकेत संविदाओं को बदलने के बिना LLMs स्विप करें
एमसीपी है नहीं:
- एक एजेंट फ्रेमवर्क
- तर्क प्रणाली
- एक सुरक्षा परत
- न्यास सीमा
components के बीच संरचनात्मक संचार के लिए एक तार प्रोटोकॉल
जहाँ एमसीपी रुकती है
एमसीपी मानककृत करता है कि मॉडलों और उपकरणों के संदर्भ का आदान-प्रदान कैसे किया जाता है
इन प्रतिबंधों को औपचारिक बनाने के लिए अन्य दृष्टिकोण मौजूद हैं (sometimes described as Action Capability Protocols
यह अनुच्छेद एमएसके0 के बारे में नहीं है, एमएसक1 का यह डिजाइन सिद्धांत के बारे मे है परिवहन और शासन अलग-अलग चिंताएं हैं.
एमसीपी आपको बताता है कैसे एक उपकरण को कॉल करने के लिए. कुछ और तय करना होगा क्या आपको चाहिए कि मेरे प्रणालियों में यह एक नीति इंजन हो सकता है
डेमो एमसीपी विपरीत उत्पादन एमसी पी
| पहलू | डेमो एमसीपी |
|---|---|
| औज़ार वर्णन प्राकृतिक भाषा | |
| कौन कॉल करने का निर्णय करता है LLM | ऑरेक्स्टरेटर |
| प्रतिक्रिया प्रारूप | मुफ़्त |
| वैधीकरण | कोई नहीं |
| एलएलएम निर्भरता आवश्यक | वैकल्पिक समृद्धीकरण |
| फिर चलाएँ (R) | NonM SK1deterministic |
| लेखापरीक्षा ट्रेल वार्तालाप लॉग |
बंद करें
एमसीपी सक्षम करता है रचना. निर्धारिता सक्षम करता है विश्वास. एलएलएम सक्षम करें प्रवाहशीलता.
लेकिन केवल यदि
संभाव्यता प्रस्तावित करता है — और निश्चयात्मकता बना रहता है
कंसट्रेनर बिना एमसीपी केवल अतिरिक्त चरणों के साथ त्वरित इंजेक्शन है
संश्लेषण को अंतिम चरण बनाना. LLM वैकल्पिक बनाना
प्रमुख शर्तें
- MCP (मोडल कॉन्टेक्स्ट प्रोटोकॉल: उपकरण खोज और प्रक्रियाओं के बीच आह्वान हेतु तार प्रोटोकॉल
- कंसट्रेनर: निश्चात्मक तर्क जो प्रस्तावों का मूल्यांकन करता है और तय करता है कि क्या जारी रहता है
- संकेत: विश्वास के साथ टाइपेड प्रतिक्रिया
- प्रस्तावककोई भी घटक (LLM
- साक्ष्य संकेतक: सत्यापन योग्य स्रोत का संदर्भ
संबंधित लेख
श्रेणी में पिछला: भाग 1: LLMs क्यों सेंसर के रूप में विफल