ai-agents-for-beginners

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

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

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

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

مقدمه

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

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

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

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

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

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

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

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

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

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

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

اجزای اصلی MCP

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

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

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

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

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

Tools: این‌ها اقدامات یا توابع مجزایی هستند که یک عامل هوش مصنوعی می‌تواند برای انجام یک عمل فراخوانی کند. برای مثال، یک سرویس هواشناسی ممکن است یک ابزار “دریافت آب و هوا” ارائه دهد، یا یک سرور تجارت الکترونیک ممکن است یک ابزار “خرید محصول” ارائه کند. سرورهای MCP نام، توصیف و طرح ورودی/خروجی هر ابزار را در فهرست قابلیت‌های خود اعلام می‌کنند.

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

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

مزایای MCP

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

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

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

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

مثال MCP

نمودار MCP

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

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

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

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

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

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

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

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

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

اجزای اصلی A2A

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

کارت عامل

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

اجرابخشی عامل

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

اثر (Artifact)

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

صف رویداد

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

مزایای A2A

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

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

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

مثال A2A

نمودار A2A

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

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

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

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

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

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

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

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

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

اجزای NLWeb

NLWeb با مثال

نمودار NLWeb

دوباره وب‌سایت رزرو سفر ما را در نظر بگیرید، اما این‌بار توسط NLWeb قدرت‌گیری شده است.

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

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

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

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

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

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

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

منابع


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