(برای مشاهده ویدئوی این درس روی تصویر بالا کلیک کنید)
با افزایش استفاده از عاملهای هوش مصنوعی، نیاز به پروتکلهایی که استانداردسازی، امنیت و حمایت از نوآوری باز را تضمین کنند نیز افزایش مییابد. در این درس، سه پروتکل را بررسی میکنیم که به دنبال پاسخگویی به این نیاز هستند - پروتکل زمینه مدل (MCP)، عامل به عامل (A2A) و وب زبان طبیعی (NLWeb).
در این درس، مطالب زیر را پوشش میدهیم:
• چگونه MCP به عاملهای هوش مصنوعی اجازه میدهد تا به ابزارها و دادههای خارجی دسترسی داشته باشند و وظایف کاربران را انجام دهند.
• چگونه A2A ارتباط و همکاری بین عاملهای مختلف هوش مصنوعی را امکانپذیر میکند.
• چگونه NLWeb رابطهای زبان طبیعی را به هر وبسایتی میآورد و به عاملهای هوش مصنوعی امکان کشف و تعامل با محتوا را میدهد.
• شناسایی هدف اصلی و مزایای MCP، A2A و NLWeb در زمینه عاملهای هوش مصنوعی.
• توضیح اینکه هر پروتکل چگونه تسهیلکننده ارتباط و تعامل بین LLMها، ابزارها و دیگر عاملها است.
• تشخیص نقشهای متمایز هر پروتکل در ساخت سیستمهای پیچیده عاملمحور.
پروتکل زمینه مدل (MCP) یک استاندارد باز است که روشی استاندارد برای برنامهها فراهم میکند تا زمینه و ابزارها را به LLMها ارائه دهند. این امکان را فراهم میکند که یک «مبدل جهانی» به منابع داده و ابزارهای مختلف باشد که عاملهای هوش مصنوعی بتوانند به طور یکپارچه به آنها متصل شوند.
اجازه دهید اجزای MCP، مزایا نسبت به استفاده مستقیم از API و نمونهای از نحوه استفاده عاملهای هوش مصنوعی از یک سرور MCP را بررسی کنیم.
MCP بر پایه معماری کلاینت-سرور کار میکند و اجزای اصلی آن عبارتند از:
• میزبانها برنامههای LLM هستند (برای مثال یک ویرایشگر کد مانند VSCode) که ارتباط با سرور MCP را آغاز میکنند.
• کلاینتها اجزایی در داخل برنامه میزبان هستند که ارتباطات یک به یک با سرورها را حفظ میکنند.
• سرورها برنامههای سبک هستند که قابلیتهای خاصی را ارائه میدهند.
سه مفهوم اصلی در پروتکل گنجانده شده است که قابلیتهای یک سرور MCP را تشکیل میدهند:
• ابزارها: اینها عملکردها یا اقداماتی مستقل هستند که عامل AI میتواند به منظور انجام یک عمل فراخوانی کند. برای مثال، یک سرویس هواشناسی ممکن است ابزار «دریافت هواشناسی» را ارائه دهد یا یک سرور تجارت الکترونیک ممکن است ابزار «خرید محصول» را ارائه کند. سرورهای MCP نام، توضیحات و ساختار ورودی/خروجی هر ابزار را در فهرست قابلیتهای خود اعلام میکنند.
• منابع: اینها آیتمهای داده یا اسناد فقط خواندنی هستند که سرور MCP میتواند ارائه دهد و کلاینتها میتوانند به صورت تقاضا آنها را بازیابی کنند. نمونهها شامل محتوای فایل، رکوردهای پایگاه داده یا فایلهای لاگ هستند. منابع میتوانند متنی (مانند کد یا JSON) یا دودویی (مانند تصاویر یا PDF) باشند.
• پیشنهادات: اینها قالبهای پیشتعریفشدهای هستند که پیشنهادات فراخوان را فراهم میکنند و امکان گردشکارهای پیچیدهتر را میدهند.
MCP مزایای قابل توجهی برای عاملهای هوش مصنوعی ارائه میدهد:
• کشف پویا ابزارها: عاملها میتوانند به صورت پویا فهرست ابزارهای موجود در سرور همراه با توضیحات قابلیتهای آنها را دریافت کنند. این در مقابل APIهای سنتی است که اغلب نیاز به کدگذاری ایستا برای یکپارچهسازی دارند و هر تغییر در API مستلزم بهروزرسانی کد است. MCP رویکرد «یک بار یکپارچهسازی» را ارائه میدهد که سازگاری بیشتری دارد.
• تعاملپذیری در بین LLMها: MCP بر روی LLMهای مختلف کار میکند و انعطافپذیری در تعویض مدلهای اصلی برای ارزیابی عملکرد بهتر را فراهم میآورد.
• امنیت استاندارد شده: MCP شامل یک روش احراز هویت استاندارد است که این امر مقیاسپذیری هنگام افزودن دسترسی به سرورهای MCP دیگر را بهبود میبخشد. این کار سادهتر از مدیریت کلیدها و روشهای احراز هویت مختلف برای APIهای سنتی است.

فرض کنید کاربری میخواهد با استفاده از دستیار هوش مصنوعی مبتنی بر MCP یک پرواز رزرو کند.
اتصال: دستیار هوش مصنوعی (کلاینت MCP) به سرور MCP ارائه شده توسط یک شرکت هواپیمایی متصل میشود.
کشف ابزارها: کلاینت از سرور MCP شرکت هواپیمایی میپرسد: «ابزارهای موجود شما چیست؟» سرور پاسخ میدهد با ابزارهایی مانند «جستجوی پروازها» و «رزرو پروازها».
فراخوانی ابزار: سپس از دستیار هوش مصنوعی میخواهید: «لطفاً یک پرواز از پورتلند به هونولولو جستجو کن». دستیار با استفاده از LLM خود تشخیص میدهد که باید ابزار «جستجوی پروازها» را فراخوانی کند و پارامترهای مرتبط (مبدا، مقصد) را به سرور MCP میفرستد.
اجرای درخواست و پاسخ: سرور MCP به عنوان یک واسطه، تماس واقعی را با API داخلی رزرو شرکت هواپیمایی انجام میدهد. سپس اطلاعات پرواز (مثلاً دادههای JSON) را دریافت و به دستیار هوش مصنوعی ارسال میکند.
تعامل بیشتر: دستیار گزینههای پرواز را به نمایش میگذارد. پس از انتخاب پرواز توسط شما، دستیار ممکن است ابزار «رزرو پرواز» را در همان سرور MCP اجرا کند و رزرو را کامل نماید.
در حالی که MCP تمرکز بر اتصال LLMها به ابزارها دارد، پروتکل عامل به عامل (A2A) یک گام فراتر میرود و ارتباط و همکاری بین عاملهای مختلف هوش مصنوعی را ممکن میسازد. A2A عاملهای هوش مصنوعی در سازمانها، محیطها و فناوریهای مختلف را به هم متصل میکند تا یک وظیفه مشترک را به پایان برسانند.
به اجزا و مزایای A2A میپردازیم و مثالی از چگونگی کاربرد آن در برنامه سفر خود ارائه میدهیم.
A2A بر تسهیل ارتباط بین عاملها و همکاری آنها برای انجام یک زیرمجموعه از کارهای کاربر تمرکز دارد. هر جزء پروتکل به این هدف کمک میکند:
مشابه سروری که MCP فهرست ابزارها را به اشتراک میگذارد، یک کارت عامل شامل:
اجرای عامل مسئول است برای انتقال زمینه گفتگوی کاربر به عامل دوردست؛ چون عامل دوردست برای فهمیدن وظیفهای که باید انجام دهد به این زمینه نیاز دارد. در یک سرور A2A، یک عامل از LLM خود برای تحلیل درخواستهای ورودی و اجرای وظایف با استفاده از ابزارهای داخلی خود بهره میبرد.
پس از اینکه عامل دوردست وظیفه درخواستی را کامل کرد، محصول کار خود را به صورت آرشیو ایجاد میکند. آرشیو شامل نتیجه کار عامل، توضیح آنچه انجام شده و متن زمینه است که از طریق پروتکل ارسال میشود. پس از ارسال آرشیو، ارتباط با عامل دوردست بسته میشود تا زمانی که دوباره نیاز باشد.
این بخش برای مدیریت بهروزرسانیها و انتقال پیامها استفاده میشود. این موضوع در تولید سیستمهای عاملمحور بسیار مهم است تا از بسته شدن ارتباط بین عاملها پیش از اتمام وظیفه جلوگیری کند، ویژه زمانی که تکمیل وظایف ممکن است زمان زیادی طول بکشد.
• همکاری پیشرفته: این پروتکل اجازه میدهد تا عاملهایی از فروشندگان و پلتفرمهای مختلف تعامل کنند، زمینه کاری را به اشتراک بگذارند و با هم کار کنند و این امکان خودکارسازی پیوسته در میان سیستمهای به طور سنتی جدا از هم فراهم میکند.
• انعطافپذیری در انتخاب مدل: هر عامل A2A میتواند تعیین کند از کدام LLM برای پاسخ به درخواستهای خود استفاده کند، که امکان استفاده از مدلهای بهینهسازی شده یا تنظیم شده برای هر عامل را فراهم میکند، برخلاف اتصال به یک LLM واحد در برخی سناریوهای MCP.
• احراز هویت داخلی: احراز هویت مستقیماً در پروتکل A2A ادغام شده است و چارچوب امنیتی قدرتمندی برای تعاملات عاملها فراهم میکند.

بیایید درباره سناریوی رزرو سفر بار دیگر صحبت کنیم، این بار با استفاده از A2A.
درخواست کاربر به عامل چندگانه: کاربر با یک کلاینت/عامل A2A به نام «عامل سفر» تعامل میکند، مثلاً میگوید: «لطفاً کل سفر به هونولولو برای هفته آینده را شامل پروازها، هتل و اجاره ماشین رزرو کن».
هماهنگی توسط عامل سفر: عامل سفر این درخواست پیچیده را دریافت میکند. با استفاده از LLM خود درباره وظیفه تحلیل کرده و تعیین میکند که باید با عاملهای تخصصی دیگر تعامل داشته باشد.
ارتباط بین عاملها: سپس عامل سفر از پروتکل A2A برای اتصال به عاملهای پاییندست مانند «عامل هواپیمایی»، «عامل هتل» و «عامل اجاره خودرو» استفاده میکند که توسط شرکتهای مختلف ایجاد شدهاند.
اجرای وظایف واگذار شده: عامل سفر وظایف مشخصی را به این عاملهای تخصصی میفرستد (مثلاً «پرواز به هونولولو پیدا کن»، «هتل رزرو کن»، «ماشین اجاره کن»). هر کدام از این عاملهای تخصصی، که LLM و ابزارهای خود (ممکن است سرورهای MCP باشند) را دارند، بخش مخصوص به رزرو را انجام میدهند.
پاسخ تجمیع شده: پس از تکمیل وظایف توسط تمام عاملهای پاییندست، عامل سفر نتایج (جزئیات پرواز، تأیید هتل، رزرو کرایه ماشین) را جمعبندی کرده و پاسخ جامعی به شکل گفتگویی به کاربر ارسال میکند.
وبسایتها مدتهاست که راه اصلی دسترسی کاربران به اطلاعات و دادهها در اینترنت هستند.
بیایید اجزای مختلف NLWeb، مزایای NLWeb و نمونهای از کارکرد NLWeb را از طریق برنامه مسافرتی خود بررسی کنیم.
برنامه NLWeb (کد اصلی سرویس): سیستمی که سوالات زبان طبیعی را پردازش میکند. این سیستم بخشهای مختلف پلتفرم را به هم متصل میکند تا پاسخها را ایجاد کند. میتوان آن را به عنوان موتور اصلی ویژگیهای زبان طبیعی یک وبسایت در نظر گرفت.
پروتکل NLWeb: این یک مجموعه قواعد اساسی برای تعامل زبان طبیعی با یک وبسایت است. پاسخها را در قالب JSON بازمیگرداند (اغلب با استفاده از Schema.org). هدف آن ایجاد پایهای ساده برای «وب هوش مصنوعی» است، همانطور که HTML امکان به اشتراکگذاری اسناد به صورت آنلاین را فراهم کرد.
سرور MCP (نقطه پایان پروتکل زمینه مدل): هر نصب NLWeb همچنین به عنوان یک سرور MCP عمل میکند. به این معنی که میتواند ابزارها (مانند روش “ask”) و دادهها را با دیگر سیستمهای هوش مصنوعی به اشتراک گذارد. در عمل، این باعث میشود محتوای وبسایت و قابلیتهای آن توسط عاملهای هوش مصنوعی قابل استفاده باشد و سایت بخشی از «اکوسیستم عاملها» شود.
مدلهای جاسازی: این مدلها برای تبدیل محتوای وبسایت به نمایههای عددی به نام بردارها (embeddings) استفاده میشوند. این بردارها معنا را به گونهای ثبت میکنند که کامپیوترها بتوانند مقایسه و جستجو کنند. آنها در یک پایگاه داده ویژه ذخیره میشوند و کاربران میتوانند مدل جاسازی مورد نظر خود را انتخاب کنند.
پایگاه داده برداری (مکانیزم بازیابی): این پایگاه داده بردارهای محتوای وبسایت را ذخیره میکند. وقتی کسی سوالی میپرسد، NLWeb پایگاه داده برداری را جستجو میکند تا سریعترین و مرتبطترین اطلاعات را بیابد. فهرستی سریع از پاسخهای ممکن ارائه میدهد که بر اساس شباهت رتبهبندی شدهاند. NLWeb با سیستمهای ذخیرهسازی برداری مختلف مانند Qdrant، Snowflake، Milvus، Azure AI Search و Elasticsearch کار میکند.

دوباره به وبسایت رزرو سفر خود توجه کنید، ولی این بار با پشتیبانی NLWeb.
ورود دادهها: کاتالوگهای محصول موجود وبسایت سفر (مثلاً فهرست پروازها، توضیحات هتلها، بستههای تور) با استفاده از Schema.org قالببندی شده یا از طریق خوراکهای RSS بارگذاری میشوند. ابزارهای NLWeb این دادههای ساختارمند را وارد کرده، بردار ایجاد میکنند و در پایگاه داده برداری محلی یا راه دور ذخیره میکنند.
پرسوجوی زبان طبیعی (انسان): کاربر به وبسایت مراجعه میکند و به جای جستجو در منوها، در رابط گفتگویی مینویسد: «برایم یک هتل خانوادگی با استخر در هونولولو برای هفته آینده پیدا کن».
پردازش NLWeb: برنامه NLWeb این پرسوجو را دریافت میکند. آن را به یک LLM برای درک میفرستد و همزمان پایگاه داده برداری خود را برای فهرستهای هتل مرتبط جستجو میکند.
نتایج دقیق: LLM به تفسیر نتایج جستجو از پایگاه داده کمک میکند، بهترین تطابقها بر اساس معیارهای «خانوادگی»، «استخر» و «هونولولو» را شناسایی کرده و سپس پاسخ زبان طبیعی را قالببندی میکند. نکته مهم اینکه پاسخ به هتلهای واقعی از کاتالوگ وبسایت ارجاع میدهد و از اطلاعات ساختگی پرهیز میکند.
تعامل عامل هوش مصنوعی: از آنجا که NLWeb به عنوان یک سرور MCP عمل میکند، یک عامل سفر هوش مصنوعی خارجی نیز میتواند به نمونه NLWeb این وبسایت متصل شود. سپس عامل میتواند از روش ask MCP برای پرسش مستقیم از وبسایت استفاده کند: ask("آیا رستورانهای گیاهخواری در منطقه هونولولو وجود دارد که هتل توصیه کرده باشد؟"). نمونه NLWeb این سوال را پردازش کرده، با استفاده از پایگاه داده اطلاعات رستوران (اگر بارگذاری شده باشد) و پاسخ ساختاریافته JSON را برمیگرداند.
به Discord Microsoft Foundry بپیوندید تا با دیگر یادگیرندگان ملاقات کنید، در ساعات پاسخگویی شرکت کنید و سوالات خود درباره عاملهای هوش مصنوعی را مطرح نمایید.
مهندسی زمینه برای عاملهای هوش مصنوعی
سلب مسئولیت: این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما در قبال هرگونه سوء تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.