ai-agents-for-beginners

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

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

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

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

مقدمه

در این درس، مطالب زیر را پوشش می‌دهیم:

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

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

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

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

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

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

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

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

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

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

اجزای اصلی MCP

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

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

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

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

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

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

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

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

مزایای MCP

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

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

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

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

نمونه MCP

نمودار MCP

فرض کنید کاربری می‌خواهد با استفاده از دستیار هوش مصنوعی مبتنی بر 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 خود برای تحلیل درخواست‌های ورودی و اجرای وظایف با استفاده از ابزارهای داخلی خود بهره می‌برد.

آرشیو

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

صف اتفاقات

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

مزایای A2A

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

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

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

نمونه A2A

نمودار A2A

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

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

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

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

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

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

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

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

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

اجزای NLWeb

نمونه‌ای از NLWeb

NLWeb

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

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

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

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

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

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

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

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

منابع

درس قبلی

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

درس بعدی

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


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