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 را تشکیل می‌دهند:

ابزارها: این‌ها اقدامات یا عملکردهای مجزا هستند که یک عامل هوش مصنوعی می‌تواند برای انجام یک عمل فراخوانی کند. برای مثال، یک سرویس هواشناسی ممکن است ابزار “دریافت وضعیت آب و هوا” را ارائه دهد، یا یک سرور تجارت الکترونیک ممکن است ابزار “خرید محصول” را ارائه دهد. سرورهای 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.

  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 Azure AI Foundry بپیوندید تا با دیگر یادگیرندگان ملاقات کنید، در ساعات اداری شرکت کنید و سوالات خود درباره عوامل هوش مصنوعی را پاسخ دهید.

منابع


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