Skip to content

Latest commit

 

History

History
182 lines (97 loc) · 21.5 KB

File metadata and controls

182 lines (97 loc) · 21.5 KB

استفاده از پروتکل‌های عامل‌محور (MCP، A2A و NLWeb)

پروتکل‌های عامل‌محور

(برای دیدن ویدیوی این درس روی تصویر بالا کلیک کنید)

با افزایش استفاده از عامل‌های هوش مصنوعی، نیاز به پروتکل‌هایی که استانداردسازی، امنیت و پشتیبانی از نوآوری باز را تضمین کنند نیز افزایش می‌یابد. در این درس سه پروتکل را بررسی خواهیم کرد که به دنبال برآورده کردن این نیاز هستند - Model Context Protocol (MCP)، Agent to Agent (A2A) و Natural Language Web (NLWeb).

مقدمه

در این درس، موارد زیر را پوشش خواهیم داد:

• How MCP allows AI Agents to access external tools and data to complete user tasks.

• How A2A enables communication and collaboration between different AI agents.

• How NLWeb brings natural language interfaces to any website enabling AI Agents to discover and interact with the content.

اهداف یادگیری

شناسایی هدف اصلی و مزایای MCP، A2A و NLWeb در زمینه عامل‌های هوش مصنوعی.

توضیح دهید چگونه هر پروتکل ارتباط و تعامل بین LLMها، ابزارها و سایر عامل‌ها را تسهیل می‌کند.

تشخیص نقش‌های متمایزی که هر پروتکل در ساخت سیستم‌های عامل‌محور پیچیده ایفا می‌کند.

پروتکل زمینه مدل

The Model Context Protocol (MCP) یک استاندارد باز است که راهی استاندارد شده برای فراهم کردن زمینه و ابزارها به LLMها برای برنامه‌ها فراهم می‌کند. این امکان یک «آداپتور جهانی» به منابع داده و ابزارهای مختلف را می‌دهد که عامل‌های هوش مصنوعی می‌توانند به روشی سازگار به آن‌ها متصل شوند.

بیایید به اجزای MCP، مزایا در مقایسه با استفاده مستقیم از API و یک مثال از نحوه استفاده عامل‌های هوش مصنوعی از یک سرور MCP نگاهی بیندازیم.

اجزای اصلی MCP

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

Hosts برنامه‌های مبتنی بر LLM (برای مثال یک ویرایشگر کد مثل VSCode) هستند که اتصالات به یک MCP Server را شروع می‌کنند.

Clients اجزایی در داخل برنامه میزبان هستند که اتصالات یک‌به‌یک با سرورها را حفظ می‌کنند.

Servers برنامه‌های سبک‌وزنی هستند که قابلیت‌های مشخصی را ارائه می‌دهند.

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

Tools: These are discrete actions or functions an AI agent can call to perform an action. For example, a weather service might expose a "get weather" tool, or an e-commerce server might expose a "purchase product" tool. MCP servers advertise each tool's name, description, and input/output schema in their capabilities listing.

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

Prompts: اینها قالب‌های از پیش تعریف‌شده‌ای هستند که پیشنهادهای آماده را فراهم می‌کنند و اجازه می‌دهند تا جریان‌های کاری پیچیده‌تری ساخته شوند.

مزایای MCP

MCP مزایای قابل‌توجهی برای عامل‌های هوش مصنوعی ارائه می‌دهد:

کشف پویا ابزارها: عامل‌ها می‌توانند یک فهرست پویا از ابزارهای در دسترس از یک سرور دریافت کنند همراه با توضیحاتی درباره عملکرد هر کدام. این در تضاد با APIهای سنتی است که اغلب نیاز به کدنویسی ایستا برای یکپارچه‌سازی‌ها دارند، به این معنی که هر تغییر در API مستلزم به‌روزرسانی کد است. MCP رویکرد «یک‌بار یکپارچه‌سازی» را ارائه می‌دهد که منجر به سازگاری بیشتر می‌شود.

قابلیت همکاری بین LLMها: MCP در میان مدل‌های زبانی مختلف کار می‌کند و انعطاف برای تغییر مدل‌های اصلی جهت ارزیابی عملکرد بهتر را فراهم می‌آورد.

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

مثال MCP

نمودار MCP

تصور کنید یک کاربر می‌خواهد با استفاده از یک دستیار هوش مصنوعی مجهز به MCP پروازی رزرو کند.

  1. اتصال: دستیار هوش مصنوعی (کلاینت MCP) به یک سرور MCP ارائه‌شده توسط یک شرکت هواپیمایی متصل می‌شود.

  2. کشف ابزار: کلاینت از سرور MCP شرکت هواپیمایی می‌پرسد: «چه ابزارهایی در دسترس دارید؟» سرور با ابزارهایی مانند "search flights" و "book flights" پاسخ می‌دهد.

  3. فراخوانی ابزار: سپس شما از دستیار هوش مصنوعی می‌خواهید: «لطفاً برای پروازی از Portland به Honolulu جستجو کن.» دستیار هوش مصنوعی، با استفاده از LLM خود، تشخیص می‌دهد که باید ابزار "search flights" را فراخوانی کند و پارامترهای مرتبط (مبدا، مقصد) را به سرور MCP ارسال می‌کند.

  4. اجرا و پاسخ: سرور MCP، به عنوان یک پوشش (wrapper)، تماس واقعی با API رزرو داخلی شرکت هواپیمایی را انجام می‌دهد. سپس اطلاعات پرواز (مثلاً داده‌های JSON) را دریافت کرده و آن را به دستیار هوش مصنوعی بازمی‌گرداند.

  5. تعامل بیشتر: دستیار هوش مصنوعی گزینه‌های پرواز را ارائه می‌دهد. پس از انتخاب یک پرواز توسط شما، دستیار ممکن است ابزار "book flight" را روی همان سرور MCP فراخوانی کند و رزرو را تکمیل نماید.

پروتکل عامل-به-عامل (A2A)

در حالی که MCP بر اتصال LLMها به ابزارها تمرکز دارد، پروتکل Agent-to-Agent (A2A) یک قدم فراتر می‌رود و امکان ارتباط و همکاری بین عامل‌های مختلف هوش مصنوعی را فراهم می‌آورد. A2A عامل‌های هوش مصنوعی را در سازمان‌ها، محیط‌ها و پشته‌های تکنولوژیکی مختلف به هم متصل می‌کند تا یک وظیفه مشترک را کامل کنند.

ما اجزا و مزایای A2A را بررسی خواهیم کرد، همراه با یک مثال از نحوه کاربرد آن در برنامه سفرمان.

اجزای اصلی A2A

A2A بر توانمندسازی ارتباط بین عامل‌ها و همکاری آن‌ها برای تکمیل زیروظایف کاربر تمرکز دارد. هر جزء از پروتکل در این امر سهم دارد:

کارت عامل

مشابه نحوه‌ای که یک سرور MCP فهرستی از ابزارها را به اشتراک می‌گذارد، یک کارت عامل شامل:

  • نام عامل.
  • یک توضیح از وظایف کلی که انجام می‌دهد.
  • یک فهرست از مهارت‌های خاص با توضیحات برای کمک به دیگر عامل‌ها (یا حتی کاربران انسانی) تا بفهمند چه زمانی و چرا باید آن عامل را فراخوانی کنند.
  • Endpoint URL جاری عامل
  • نسخه و قابلیت‌های عامل مانند پاسخ‌های جریان‌یافته و اعلان‌های پوش.

مجری عامل

مجری عامل مسئول انتقال زمینه چت کاربر به عامل راه‌دور است، عامل راه‌دور برای درک وظیفه‌ای که باید انجام شود به این زمینه نیاز دارد. در یک سرور A2A، یک عامل از LLM خود برای تجزیه‌و‌تحلیل درخواست‌های ورودی و اجرای وظایف با استفاده از ابزارهای داخلی خود استفاده می‌کند.

آرتیفکت

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

صف رویداد

این جزء برای مدیریت به‌روزرسانی‌ها و انتقال پیام‌ها استفاده می‌شود. این مورد به‌ویژه در تولید برای سیستم‌های عامل‌محور اهمیت دارد تا مانع بسته شدن اتصال بین عامل‌ها قبل از تکمیل وظیفه شود، مخصوصاً زمانی که زمان انجام وظایف ممکن است طولانی باشد.

مزایای A2A

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

انعطاف در انتخاب مدل: هر عامل A2A می‌تواند تصمیم بگیرد از کدام LLM برای پاسخ‌گویی به درخواست‌های خود استفاده کند، که اجازه می‌دهد برای هر عامل مدل‌های بهینه‌شده یا فاین‌تیون شده استفاده شود، برخلاف اتصال یک‌تایی LLM در برخی سناریوهای MCP.

احراز هویت یکپارچه: احراز هویت به‌طور مستقیم در پروتکل A2A یکپارچه شده است و چارچوب امنیتی محکمی برای تعاملات عامل‌ها فراهم می‌کند.

مثال A2A

نمودار A2A

بیایید سناریوی رزرو سفر خود را گسترش دهیم، اما این بار از A2A استفاده کنیم.

  1. درخواست کاربر به چندعامل: یک کاربر با یک کلاینت/عامل "Travel Agent" A2A تعامل دارد، شاید با گفتن: «لطفاً یک سفر کامل به هونولولو برای هفته آینده رزرو کن، شامل پروازها، یک هتل و یک خودرو اجاره‌ای».

  2. هماهنگی توسط Travel Agent: Travel Agent این درخواست پیچیده را دریافت می‌کند. این عامل از LLM خود برای استدلال درباره وظیفه استفاده کرده و تشخیص می‌دهد که نیاز به تعامل با عامل‌های تخصصی دیگر دارد.

  3. ارتباط بین عامل‌ها: سپس Travel Agent از پروتکل A2A برای اتصال به عامل‌های پایین‌دستی استفاده می‌کند، مانند "Airline Agent"، "Hotel Agent" و "Car Rental Agent" که توسط شرکت‌های مختلف ایجاد شده‌اند.

  4. اجرای واگذار شده وظایف: Travel Agent وظایف مشخصی را به این عامل‌های تخصصی می‌فرستد (مثلاً «پروازهایی به هونولولو پیدا کن»، «یک هتل رزرو کن»، «یک خودرو اجاره کن»). هر یک از این عامل‌های تخصصی، که LLMهای خود را اجرا می‌کنند و از ابزارهای خود (که ممکن است خود سرورهای MCP باشند) استفاده می‌کنند، قسمت خاصی از رزرو را انجام می‌دهند.

  5. پاسخ تجمیع‌شده: پس از تکمیل وظایف توسط همه عامل‌های پایین‌دستی، Travel Agent نتایج را (جزئیات پرواز، تایید هتل، رزرو خودرو) جمع‌بندی کرده و یک پاسخ کامل به سبک گفت‌وگو به کاربر ارسال می‌کند.

وب زبان طبیعی (NLWeb)

وب‌سایت‌ها مدت‌هاست که روش اصلی دسترسی کاربران به اطلاعات و داده‌ها در سراسر اینترنت بوده‌اند.

بیایید به اجزای مختلف NLWeb، مزایای NLWeb و یک مثال از نحوه کار NLWeb با نگاه به برنامه سفرمان توجه کنیم.

اجزای NLWeb

  • NLWeb Application (Core Service Code): سیستمی که سوالات زبان طبیعی را پردازش می‌کند. این قسمت بخش‌های مختلف پلتفرم را به هم متصل می‌کند تا پاسخ‌ها را ایجاد کند. می‌توانید آن را به‌عنوان موتوری که قابلیت‌های زبان طبیعی یک وب‌سایت را پشتیبانی می‌کند در نظر بگیرید.

  • NLWeb Protocol: این یک مجموعه قواعد پایه برای تعامل زبان طبیعی با یک وب‌سایت است. پاسخ‌ها را در قالب JSON بازمی‌گرداند (اغلب با استفاده از Schema.org). هدف آن ایجاد پایه‌ای ساده برای «وب هوش مصنوعی» است، همان‌طور که HTML امکان اشتراک‌گذاری اسناد آنلاین را فراهم کرد.

  • MCP Server (Model Context Protocol Endpoint): هر راه‌اندازی NLWeb همچنین به‌عنوان یک سرور MCP عمل می‌کند. این بدان معناست که می‌تواند ابزارها (مانند روش “ask”) و داده‌ها را با سایر سیستم‌های هوش مصنوعی به اشتراک بگذارد. در عمل، این باعث می‌شود محتوای وب‌سایت و قابلیت‌های آن برای عامل‌های هوش مصنوعی قابل استفاده شود و سایت بخشی از اکوسیستم وسیع‌تر عامل‌ها گردد.

  • Embedding Models: این مدل‌ها برای تبدیل محتوای وب‌سایت به نمایش‌های عددی به نام وکتور (امبدینگ‌ها) استفاده می‌شوند. این وکتورها معنا را به نحوی در بر می‌گیرند که کامپیوترها بتوانند مقایسه و جستجو کنند. آن‌ها در یک پایگاه داده ویژه ذخیره می‌شوند و کاربران می‌توانند مدل امبدینگ مورد نظر خود را انتخاب کنند.

  • Vector Database (Retrieval Mechanism): این پایگاه داده امبدینگ‌های محتوای وب‌سایت را ذخیره می‌کند. وقتی کسی سوالی می‌پرسد، NLWeb پایگاه داده وکتور را برای یافتن مرتبط‌ترین اطلاعات بررسی می‌کند. فهرست سریعی از پاسخ‌های ممکن را ارائه می‌دهد که بر اساس شباهت رتبه‌بندی شده‌اند. NLWeb با سیستم‌های ذخیره‌سازی وکتور مختلفی مانند Qdrant، Snowflake، Milvus، Azure AI Search، و Elasticsearch کار می‌کند.

NLWeb با مثال

نمودار NLWeb

دوباره وب‌سایت رزرو سفر خود را در نظر بگیرید، اما این بار با نیروی NLWeb کار می‌کند.

  1. ورود داده: فهرست‌های محصول موجود وب‌سایت سفر (مثلاً فهرست پروازها، توضیحات هتل‌ها، بسته‌های تور) با استفاده از Schema.org قالب‌بندی می‌شوند یا از طریق فیدهای RSS بارگذاری می‌شوند. ابزارهای NLWeb این داده‌های ساخت‌یافته را وارد کرده، امبدینگ‌ها را ایجاد کرده و آن‌ها را در یک پایگاه داده وکتور محلی یا راه‌دور ذخیره می‌کنند.

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

  3. پردازش NLWeb: برنامه NLWeb این پرسش را دریافت می‌کند. پرسش را برای درک به یک LLM ارسال می‌کند و هم‌زمان به پایگاه داده وکتور برای یافتن فهرست‌های هتل مرتبط جستجو می‌نماید.

  4. نتایج دقیق: LLM به تفسیر نتایج جستجو از پایگاه داده کمک می‌کند، بهترین موارد را بر اساس معیارهای "خانوادگی بودن"، "استخر" و "هونولولو" تشخیص می‌دهد و سپس پاسخ به زبان طبیعی را قالب‌بندی می‌کند. نکته مهم این است که پاسخ به هتل‌های واقعی از کاتالوگ وب‌سایت اشاره می‌کند و از اطلاعات ساختگی اجتناب می‌شود.

  5. تعامل عامل هوش مصنوعی: چون NLWeb به‌عنوان یک سرور MCP عمل می‌کند، یک عامل مسافرتی خارجی نیز می‌تواند به نمونه NLWeb این وب‌سایت متصل شود. عامل هوش مصنوعی می‌تواند سپس از روش ask("Are there any vegan-friendly restaurants in the Honolulu area recommended by the hotel?") برای پرسش مستقیم از وب‌سایت استفاده کند. نمونه NLWeb این پرسش را پردازش کرده، از پایگاه داده اطلاعات رستوران‌ها (در صورت بارگذاری) استفاده می‌کند و یک پاسخ ساختاریافته JSON بازمی‌گرداند.

سوالات بیشتری درباره MCP/A2A/NLWeb دارید؟

برای دیدار با دیگر یادگیرندگان، شرکت در ساعات اداری و دریافت پاسخ به سوالات مربوط به عامل‌های هوش مصنوعی‌تان، به سرور Discord Microsoft Foundry بپیوندید.

منابع


سلب مسئولیت: این سند با استفاده از سرویس ترجمهٔ هوش مصنوعی Co-op Translator (https://github.com/Azure/co-op-translator) ترجمه شده است. با اینکه ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان مبدأ باید به‌عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمهٔ حرفه‌ای انسانی توصیه می‌شود. ما در قبال هرگونه سوءتفاهم یا تفسیر نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.