ai-agents-for-beginners

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

Agentic Protocols

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

با گسترش استفاده از عوامل هوش مصنوعی، نیاز به پروتکل‌هایی که استانداردسازی، امنیت و پشتیبانی از نوآوری باز را تضمین کنند نیز افزایش می‌یابد. در این درس، به سه پروتکل می‌پردازیم که به دنبال برآوردن این نیاز هستند - پروتکل زمینه مدل (MCP)، عامل به عامل (A2A) و وب زبان طبیعی (NLWeb).

مقدمه

در این درس، موارد زیر را بررسی خواهیم کرد:

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

• چگونه A2A ارتباط و همکاری بین عوامل هوش مصنوعی مختلف را ممکن می‌سازد.

• چگونه NLWeb رابط‌های زبان طبیعی را به هر وب‌سایتی می‌آورد و به عوامل هوش مصنوعی امکان می‌دهد محتوا را کشف و با آن تعامل داشته باشند.

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

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

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

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

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

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

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

اجزای اصلی MCP

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

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

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

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

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

ابزارها: این‌ها عملیات یا توابع گسسته‌ای هستند که عامل هوش مصنوعی می‌تواند برای انجام عملی فراخوانی کند. برای مثال، یک سرویس هواشناسی ممکن است ابزاری مانند «دریافت وضعیت هوا» ارائه دهد، یا سرور یک فروشگاه الکترونیکی ممکن است ابزار «خرید محصول» را ارائه دهد. سرورهای MCP نام، شرح و طرح ورودی/خروجی هر ابزار را در فهرست قابلیتها اعلام می‌کنند.

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

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

مزایای MCP

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

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

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

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

مثال MCP

MCP Diagram

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

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

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

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

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

  5. تعامل بیشتر: دستیار هوشمند گزینه‌های پرواز را ارائه می‌دهد. پس از انتخاب پرواز، ممکن است ابزار «رزرو پرواز» را در همان سرور MCP فراخوانی کند و رزرو را کامل نماید.

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

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

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

اجزای اصلی A2A

A2A تمرکز بر ایجاد ارتباط بین عوامل و کار کردن مشترک برای انجام یک زیرکار کاربر دارد. هر جزء پروتکل به این موضوع کمک می‌کند:

کارت عامل

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

مجری عامل

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

محصول کاری (Artifact)

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

صف رویداد

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

مزایای A2A

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

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

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

مثال A2A

A2A Diagram

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

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

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

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

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

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

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

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

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

اجزای NLWeb

NLWeb به عنوان مثال

NLWeb

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

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

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

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

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

  5. تعامل عامل هوش مصنوعی: از آنجا که NLWeb به عنوان سرور MCP عمل می‌کند، یک عامل هوش مصنوعی سفر خارجی نیز می‌تواند به نمونه NLWeb این وب‌سایت متصل شود. سپس عامل هوش مصنوعی می‌تواند با متد MCP ask مستقیماً از وب‌سایت سوال کند: ask("آیا رستوران‌های گیاه‌خواری در منطقه هونولولو که هتل توصیه کرده باشد وجود دارد؟"). نمونه NLWeb این سوال را پردازش کرده، با استفاده از پایگاه داده اطلاعات رستوران (اگر بارگذاری شده باشد)، و پاسخ JSON ساختاریافته‌ای باز می‌گرداند.

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

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

منابع

درس قبلی

عوامل هوش مصنوعی در تولید

درس بعدی

مهندسی زمینه برای عوامل هوش مصنوعی


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