Skip to content

Latest commit

 

History

History
299 lines (222 loc) · 20.5 KB

File metadata and controls

299 lines (222 loc) · 20.5 KB

مقدمه‌ای بر پروتکل زمینه مدل (MCP): چرا برای برنامه‌های مقیاس‌پذیر هوش مصنوعی اهمیت دارد

مقدمه‌ای بر پروتکل زمینه مدل

(برای مشاهده ویدئوی این درس روی تصویر بالا کلیک کنید)

برنامه‌های هوش مصنوعی مولد یک گام بزرگ به جلو هستند، زیرا اغلب به کاربران اجازه می‌دهند با استفاده از دستورات زبان طبیعی با برنامه تعامل داشته باشند. با این حال، هرچه زمان و منابع بیشتری در این برنامه‌ها سرمایه‌گذاری شود، باید مطمئن شوید که می‌توانید قابلیت‌ها و منابع را به گونه‌ای ادغام کنید که گسترش آن‌ها آسان باشد، برنامه شما بتواند بیش از یک مدل را پشتیبانی کند و پیچیدگی‌های مختلف مدل‌ها را مدیریت کند. به طور خلاصه، ساخت برنامه‌های هوش مصنوعی مولد در ابتدا آسان است، اما با رشد و پیچیده‌تر شدن آن‌ها، نیاز به تعریف یک معماری خواهید داشت و احتمالاً باید به یک استاندارد تکیه کنید تا اطمینان حاصل شود که برنامه‌هایتان به صورت یکپارچه ساخته می‌شوند. اینجاست که MCP وارد عمل می‌شود تا همه چیز را سازماندهی کرده و یک استاندارد ارائه دهد.


🔍 پروتکل زمینه مدل (MCP) چیست؟

پروتکل زمینه مدل (MCP) یک رابط باز و استاندارد شده است که به مدل‌های زبانی بزرگ (LLM) اجازه می‌دهد به طور یکپارچه با ابزارها، APIها و منابع داده خارجی تعامل داشته باشند. این پروتکل یک معماری سازگار ارائه می‌دهد تا عملکرد مدل‌های هوش مصنوعی را فراتر از داده‌های آموزشی آن‌ها افزایش دهد و سیستم‌های هوش مصنوعی هوشمندتر، مقیاس‌پذیرتر و پاسخگوتر ایجاد کند.


🎯 چرا استانداردسازی در هوش مصنوعی اهمیت دارد

با پیچیده‌تر شدن برنامه‌های هوش مصنوعی مولد، ضروری است که استانداردهایی اتخاذ شوند که مقیاس‌پذیری، گسترش‌پذیری، نگهداری‌پذیری و اجتناب از قفل شدن به یک فروشنده خاص را تضمین کنند. MCP این نیازها را با:

  • یکپارچه‌سازی مدل‌ها و ابزارها
  • کاهش راه‌حل‌های سفارشی و شکننده
  • امکان همزیستی چندین مدل از فروشندگان مختلف در یک اکوسیستم

توجه: اگرچه MCP خود را به عنوان یک استاندارد باز معرفی می‌کند، هیچ برنامه‌ای برای استانداردسازی MCP از طریق نهادهای استاندارد موجود مانند IEEE، IETF، W3C، ISO یا سایر نهادهای استاندارد وجود ندارد.


📚 اهداف آموزشی

در پایان این مقاله، شما قادر خواهید بود:

  • پروتکل زمینه مدل (MCP) و موارد استفاده آن را تعریف کنید
  • درک کنید که چگونه MCP ارتباط بین مدل‌ها و ابزارها را استاندارد می‌کند
  • اجزای اصلی معماری MCP را شناسایی کنید
  • کاربردهای واقعی MCP در زمینه‌های سازمانی و توسعه را بررسی کنید

💡 چرا پروتکل زمینه مدل (MCP) یک تحول‌آفرین است

🔗 MCP مشکل پراکندگی در تعاملات هوش مصنوعی را حل می‌کند

پیش از MCP، ادغام مدل‌ها با ابزارها نیازمند:

  • کدنویسی سفارشی برای هر جفت ابزار-مدل
  • APIهای غیر استاندارد برای هر فروشنده
  • خرابی‌های مکرر به دلیل به‌روزرسانی‌ها
  • مقیاس‌پذیری ضعیف با افزایش تعداد ابزارها

✅ مزایای استانداردسازی MCP

مزیت توضیح
تعامل‌پذیری مدل‌های زبانی بزرگ به طور یکپارچه با ابزارهای فروشندگان مختلف کار می‌کنند
سازگاری رفتار یکنواخت در پلتفرم‌ها و ابزارها
قابلیت استفاده مجدد ابزارهایی که یک بار ساخته می‌شوند، می‌توانند در پروژه‌ها و سیستم‌های مختلف استفاده شوند
توسعه سریع‌تر کاهش زمان توسعه با استفاده از رابط‌های استاندارد و آماده به کار

🧱 نمای کلی معماری سطح بالا MCP

MCP از یک مدل کلاینت-سرور پیروی می‌کند، که در آن:

  • میزبان‌های MCP مدل‌های هوش مصنوعی را اجرا می‌کنند
  • کلاینت‌های MCP درخواست‌ها را آغاز می‌کنند
  • سرورهای MCP زمینه، ابزارها و قابلیت‌ها را ارائه می‌دهند

اجزای کلیدی:

  • منابع – داده‌های ایستا یا پویا برای مدل‌ها
  • دستورات – جریان‌های کاری از پیش تعریف‌شده برای تولید هدایت‌شده
  • ابزارها – توابع اجرایی مانند جستجو، محاسبات
  • نمونه‌گیری – رفتار عامل‌محور از طریق تعاملات بازگشتی

نحوه کار سرورهای MCP

سرورهای MCP به این صورت عمل می‌کنند:

  • جریان درخواست:
    1. یک درخواست توسط کاربر نهایی یا نرم‌افزاری که از طرف او عمل می‌کند، آغاز می‌شود.
    2. کلاینت MCP درخواست را به میزبان MCP ارسال می‌کند، که زمان اجرای مدل هوش مصنوعی را مدیریت می‌کند.
    3. مدل هوش مصنوعی درخواست کاربر را دریافت می‌کند و ممکن است برای دسترسی به ابزارها یا داده‌های خارجی درخواست دهد.
    4. میزبان MCP، نه مدل به طور مستقیم، با سرورهای MCP مناسب از طریق پروتکل استاندارد ارتباط برقرار می‌کند.
  • عملکرد میزبان MCP:
    • ثبت ابزار: فهرستی از ابزارهای موجود و قابلیت‌های آن‌ها را نگهداری می‌کند.
    • احراز هویت: مجوزهای دسترسی به ابزارها را تأیید می‌کند.
    • مدیریت درخواست: درخواست‌های ابزار ورودی از مدل را پردازش می‌کند.
    • فرمت‌دهنده پاسخ: خروجی ابزارها را در قالبی که مدل بتواند درک کند، ساختاردهی می‌کند.
  • اجرای سرور MCP:
    • میزبان MCP درخواست‌های ابزار را به یک یا چند سرور MCP هدایت می‌کند که توابع تخصصی (مانند جستجو، محاسبات، پرس‌وجوهای پایگاه داده) را ارائه می‌دهند.
    • سرورهای MCP عملیات مربوطه را انجام داده و نتایج را در قالبی سازگار به میزبان MCP بازمی‌گردانند.
    • میزبان MCP این نتایج را فرمت‌دهی کرده و به مدل هوش مصنوعی منتقل می‌کند.
  • تکمیل پاسخ:
    • مدل هوش مصنوعی خروجی ابزارها را در یک پاسخ نهایی ادغام می‌کند.
    • میزبان MCP این پاسخ را به کلاینت MCP ارسال می‌کند، که آن را به کاربر نهایی یا نرم‌افزار فراخواننده تحویل می‌دهد.
---
title: MCP Architecture and Component Interactions
description: A diagram showing the flows of the components in MCP.
---
graph TD
    Client[MCP Client/Application] -->|Sends Request| H[MCP Host]
    H -->|Invokes| A[AI Model]
    A -->|Tool Call Request| H
    H -->|MCP Protocol| T1[MCP Server Tool 01: Web Search]
    H -->|MCP Protocol| T2[MCP Server Tool 02: Calculator tool]
    H -->|MCP Protocol| T3[MCP Server Tool 03: Database Access tool]
    H -->|MCP Protocol| T4[MCP Server Tool 04: File System tool]
    H -->|Sends Response| Client

    subgraph "MCP Host Components"
        H
        G[Tool Registry]
        I[Authentication]
        J[Request Handler]
        K[Response Formatter]
    end

    H <--> G
    H <--> I
    H <--> J
    H <--> K

    style A fill:#f9d5e5,stroke:#333,stroke-width:2px
    style H fill:#eeeeee,stroke:#333,stroke-width:2px
    style Client fill:#d5e8f9,stroke:#333,stroke-width:2px
    style G fill:#fffbe6,stroke:#333,stroke-width:1px
    style I fill:#fffbe6,stroke:#333,stroke-width:1px
    style J fill:#fffbe6,stroke:#333,stroke-width:1px
    style K fill:#fffbe6,stroke:#333,stroke-width:1px
    style T1 fill:#c2f0c2,stroke:#333,stroke-width:1px
    style T2 fill:#c2f0c2,stroke:#333,stroke-width:1px
    style T3 fill:#c2f0c2,stroke:#333,stroke-width:1px
    style T4 fill:#c2f0c2,stroke:#333,stroke-width:1px
Loading

👨‍💻 چگونه یک سرور MCP بسازیم (با مثال‌ها)

سرورهای MCP به شما امکان می‌دهند قابلیت‌های مدل‌های زبانی بزرگ را با ارائه داده‌ها و عملکرد گسترش دهید.

آماده امتحان کردن هستید؟ در اینجا SDKهای زبان یا پشته خاص با مثال‌هایی از ایجاد سرورهای ساده MCP در زبان‌ها/پشته‌های مختلف آورده شده است:


🌍 موارد استفاده واقعی از MCP

MCP طیف گسترده‌ای از برنامه‌ها را با گسترش قابلیت‌های هوش مصنوعی امکان‌پذیر می‌کند:

کاربرد توضیح
یکپارچه‌سازی داده‌های سازمانی اتصال مدل‌های زبانی بزرگ به پایگاه‌های داده، CRMها یا ابزارهای داخلی
سیستم‌های هوش مصنوعی عامل‌محور فعال‌سازی عوامل خودمختار با دسترسی به ابزارها و جریان‌های کاری تصمیم‌گیری
برنامه‌های چندوجهی ترکیب ابزارهای متنی، تصویری و صوتی در یک برنامه هوش مصنوعی یکپارچه
یکپارچه‌سازی داده‌های بلادرنگ آوردن داده‌های زنده به تعاملات هوش مصنوعی برای خروجی‌های دقیق‌تر و به‌روزتر

🧠 MCP = استاندارد جهانی برای تعاملات هوش مصنوعی

پروتکل زمینه مدل (MCP) به عنوان یک استاندارد جهانی برای تعاملات هوش مصنوعی عمل می‌کند، مشابه نحوه استانداردسازی USB-C برای اتصالات فیزیکی دستگاه‌ها. در دنیای هوش مصنوعی، MCP یک رابط سازگار ارائه می‌دهد که به مدل‌ها (کلاینت‌ها) اجازه می‌دهد به طور یکپارچه با ابزارها و ارائه‌دهندگان داده خارجی (سرورها) ادغام شوند. این امر نیاز به پروتکل‌های متنوع و سفارشی برای هر API یا منبع داده را از بین می‌برد.


💡 تسهیل دسترسی به دانش

فراتر از ارائه ابزارها، MCP دسترسی به دانش را نیز تسهیل می‌کند. این پروتکل به برنامه‌ها اجازه می‌دهد زمینه را به مدل‌های زبانی بزرگ (LLM) ارائه دهند، با اتصال آن‌ها به منابع داده مختلف. برای مثال، یک سرور MCP ممکن است مخزن اسناد یک شرکت را نمایندگی کند و به عوامل اجازه دهد اطلاعات مرتبط را در صورت نیاز بازیابی کنند. سرور دیگری می‌تواند اقدامات خاصی مانند ارسال ایمیل یا به‌روزرسانی سوابق را مدیریت کند. از دیدگاه عامل، این‌ها صرفاً ابزارهایی هستند که می‌تواند استفاده کند—برخی ابزارها داده (زمینه دانش) بازمی‌گردانند، در حالی که برخی دیگر اقدامات را انجام می‌دهند. MCP هر دو را به طور کارآمد مدیریت می‌کند.


🔄 سناریوهای پیشرفته MCP با ادغام LLM در سمت کلاینت

فراتر از معماری پایه MCP، سناریوهای پیشرفته‌ای وجود دارد که در آن هم کلاینت و هم سرور شامل مدل‌های زبانی بزرگ (LLM) هستند و تعاملات پیچیده‌تری را امکان‌پذیر می‌کنند. در نمودار زیر، برنامه کلاینت می‌تواند یک IDE باشد که تعدادی ابزار MCP برای استفاده توسط LLM در دسترس دارد:

---
title: Advanced MCP Scenarios with Client-Server LLM Integration
description: A sequence diagram showing the detailed interaction flow between user, client application, client LLM, multiple MCP servers, and server LLM, illustrating tool discovery, user interaction, direct tool calling, and feature negotiation phases
---
sequenceDiagram
    autonumber
    actor User as 👤 User
    participant ClientApp as 🖥️ Client App
    participant ClientLLM as 🧠 Client LLM
    participant Server1 as 🔧 MCP Server 1
    participant Server2 as 📚 MCP Server 2
    participant ServerLLM as 🤖 Server LLM
    
    %% Discovery Phase
    rect rgb(220, 240, 255)
        Note over ClientApp, Server2: TOOL DISCOVERY PHASE
        ClientApp->>+Server1: Request available tools/resources
        Server1-->>-ClientApp: Return tool list (JSON)
        ClientApp->>+Server2: Request available tools/resources
        Server2-->>-ClientApp: Return tool list (JSON)
        Note right of ClientApp: Store combined tool<br/>catalog locally
    end
    
    %% User Interaction
    rect rgb(255, 240, 220)
        Note over User, ClientLLM: USER INTERACTION PHASE
        User->>+ClientApp: Enter natural language prompt
        ClientApp->>+ClientLLM: Forward prompt + tool catalog
        ClientLLM->>-ClientLLM: Analyze prompt & select tools
    end
    
    %% Scenario A: Direct Tool Calling
    alt Direct Tool Calling
        rect rgb(220, 255, 220)
            Note over ClientApp, Server1: SCENARIO A: DIRECT TOOL CALLING
            ClientLLM->>+ClientApp: Request tool execution
            ClientApp->>+Server1: Execute specific tool
            Server1-->>-ClientApp: Return results
            ClientApp->>+ClientLLM: Process results
            ClientLLM-->>-ClientApp: Generate response
            ClientApp-->>-User: Display final answer
        end
    
    %% Scenario B: Feature Negotiation (VS Code style)
    else Feature Negotiation (VS Code style)
        rect rgb(255, 220, 220)
            Note over ClientApp, ServerLLM: SCENARIO B: FEATURE NEGOTIATION
            ClientLLM->>+ClientApp: Identify needed capabilities
            ClientApp->>+Server2: Negotiate features/capabilities
            Server2->>+ServerLLM: Request additional context
            ServerLLM-->>-Server2: Provide context
            Server2-->>-ClientApp: Return available features
            ClientApp->>+Server2: Call negotiated tools
            Server2-->>-ClientApp: Return results
            ClientApp->>+ClientLLM: Process results
            ClientLLM-->>-ClientApp: Generate response
            ClientApp-->>-User: Display final answer
        end
    end
Loading

🔐 مزایای عملی MCP

در اینجا مزایای عملی استفاده از MCP آورده شده است:

  • به‌روز بودن: مدل‌ها می‌توانند به اطلاعات به‌روز فراتر از داده‌های آموزشی خود دسترسی داشته باشند
  • گسترش قابلیت‌ها: مدل‌ها می‌توانند از ابزارهای تخصصی برای وظایفی که برای آن‌ها آموزش ندیده‌اند استفاده کنند
  • کاهش توهمات: منابع داده خارجی زمینه واقعی ارائه می‌دهند
  • حریم خصوصی: داده‌های حساس می‌توانند در محیط‌های امن باقی بمانند و در دستورات جاسازی نشوند

📌 نکات کلیدی

نکات کلیدی استفاده از MCP عبارتند از:

  • MCP نحوه تعامل مدل‌های هوش مصنوعی با ابزارها و داده‌ها را استاندارد می‌کند
  • گسترش‌پذیری، سازگاری و تعامل‌پذیری را ترویج می‌دهد
  • MCP به کاهش زمان توسعه، بهبود قابلیت اطمینان و گسترش قابلیت‌های مدل کمک می‌کند
  • معماری کلاینت-سرور برنامه‌های هوش مصنوعی انعطاف‌پذیر و گسترش‌پذیر را امکان‌پذیر می‌کند

🧠 تمرین

به یک برنامه هوش مصنوعی که به ساخت آن علاقه دارید فکر کنید.

  • کدام ابزارها یا داده‌های خارجی می‌توانند قابلیت‌های آن را افزایش دهند؟
  • MCP چگونه می‌تواند ادغام را ساده‌تر و قابل اطمینان‌تر کند؟

منابع اضافی


مرحله بعد

بعدی: فصل ۱: مفاهیم اصلی

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.