(برای مشاهده ویدئوی این درس روی تصویر بالا کلیک کنید)
با گسترش استفاده از عوامل هوش مصنوعی، نیاز به پروتکلهایی که استانداردسازی، امنیت و پشتیبانی از نوآوری باز را تضمین کنند نیز افزایش مییابد. در این درس، سه پروتکل را بررسی خواهیم کرد که به دنبال برآورده کردن این نیاز هستند - پروتکل زمینه مدل (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 بر معماری کلاینت-سرور عمل میکند و اجزای اصلی عبارتاند از:
• Hosts برنامههای مبتنی بر مدل زبانی بزرگ هستند (برای مثال یک ویرایشگر کد مانند VSCode) که اتصالها را به یک سرور MCP آغاز میکنند.
• Clients مؤلفههایی درون برنامه میزبان هستند که ارتباطات یکبهیک با سرورها را حفظ میکنند.
• Servers برنامههای سبکوزنی هستند که قابلیتهای مشخصی را افشا میکنند.
در این پروتکل سه اصل هستهای گنجانده شده است که آنها قابلیتهای یک سرور MCP هستند:
• Tools: اینها اقدامات یا توابع مجزایی هستند که یک عامل هوش مصنوعی میتواند برای انجام یک عمل فراخوانی کند. برای مثال، یک سرویس هواشناسی ممکن است یک ابزار “دریافت آب و هوا” ارائه دهد، یا یک سرور تجارت الکترونیک ممکن است یک ابزار “خرید محصول” ارائه کند. سرورهای MCP نام، توصیف و طرح ورودی/خروجی هر ابزار را در فهرست قابلیتهای خود اعلام میکنند.
• Resources: اینها آیتمها یا اسناد دادهای فقطخواندنی هستند که یک سرور MCP میتواند فراهم کند و کلاینتها میتوانند آنها را بهصورت تقاضا بازیابی کنند. مثالها شامل محتوای فایلها، رکوردهای پایگاه داده یا فایلهای لاگ است. منابع میتوانند متنی (مانند کد یا JSON) یا باینری (مانند تصاویر یا PDFها) باشند.
• Prompts: اینها قالبهای از پیش تعریفشدهای هستند که پیشنهاداتی برای پرامپتها ارائه میدهند و امکان گردشکارهای پیچیدهتر را فراهم میکنند.
MCP مزایای قابلتوجهی برای عوامل هوش مصنوعی ارائه میدهد:
• کشف پویا ابزارها: عوامل میتوانند فهرستی پویا از ابزارهای موجود از یک سرور را همراه با توضیحات عملکرد آنها دریافت کنند. این در مقابل APIهای سنتی است که اغلب نیاز به کدنویسی ثابت برای یکپارچهسازی دارند، بهطوری که هر تغییر در API مستلزم بهروزرسانی کد است. MCP رویکرد «یکبار یکپارچهسازی» را ارائه میدهد که منجر به سازگاری بیشتر میشود.
• همعملپذیری در میان مدلهای زبانی: MCP در میان مدلهای زبانی مختلف کار میکند و انعطافپذیری تغییر مدلهای اصلی برای ارزیابی عملکرد بهتر را فراهم میآورد.
• استاندارد امنیتی: MCP شامل یک روش احراز هویت استاندارد است که هنگام افزودن دسترسی به سرورهای MCP اضافی مقیاسپذیری را بهبود میبخشد. این سادهتر از مدیریت کلیدها و انواع احراز هویت مختلف برای APIهای سنتی است.

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

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

دوباره وبسایت رزرو سفر ما را در نظر بگیرید، اما اینبار توسط NLWeb قدرتگیری شده است.
ورود داده: کاتالوگهای محصول موجود وبسایت سفر (مثلاً فهرست پروازها، توضیحات هتلها، بستههای تور) با استفاده از Schema.org قالببندی شده یا از طریق فیدهای RSS بارگذاری میشوند. ابزارهای NLWeb این دادهٔ ساختاریافته را وارد میکنند، درونیابیها را ایجاد کرده و آنها را در یک پایگاه داده برداری محلی یا از راه دور ذخیره میکنند.
پرسش زبان طبیعی (انسان): کاربری به وبسایت مراجعه میکند و بهجای گشتن در منوها، در یک رابط چت تایپ میکند: «برای من یک هتل مناسب خانواده در هونولولو با استخر برای هفتهٔ آینده پیدا کن».
پردازش NLWeb: برنامه NLWeb این پرسش را دریافت میکند. آن را برای درک به یک مدل زبانی میفرستد و همزمان پایگاه داده برداری خود را برای فهرستهای هتل مرتبط جستجو میکند.
نتایج دقیق: مدل زبانی به تفسیر نتایج جستجو از پایگاه داده کمک میکند، بهترین تطابقها را بر اساس معیارهای «مناسب خانواده»، «استخر» و «هونولولو» شناسایی کرده و سپس یک پاسخ به زبان طبیعی قالببندی میکند. نکتهٔ کلیدی این است که پاسخ به هتلهای واقعی از کاتالوگ وبسایت اشاره دارد و از تولید اطلاعات ساختگی اجتناب میکند.
تعامل عامل هوش مصنوعی: از آنجایی که NLWeb بهعنوان یک سرور MCP عمل میکند، یک عامل سفر خارجی میتواند به نمونهٔ NLWeb این وبسایت متصل شود. عامل هوش مصنوعی سپس میتواند از متد ask("Are there any vegan-friendly restaurants in the Honolulu area recommended by the hotel?") در MCP برای پرسوجو مستقیم از وبسایت استفاده کند. نمونهٔ NLWeb این درخواست را پردازش کرده، از پایگاه دادهٔ اطلاعات رستورانها (در صورت بارگذاری) استفاده میکند و یک پاسخ ساختاریافته JSON بازمیگرداند.
به Microsoft Foundry Discord بپیوندید تا با دیگر یادگیرندگان ملاقات کنید، در ساعتهای دفاتر شرکت کنید و سوالات خود درباره عوامل هوش مصنوعی را مطرح کنید.
سلب مسئولیت: این سند با استفاده از سرویس ترجمهٔ هوش مصنوعی Co-op Translator (https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. نسخهٔ اصلی سند به زبان مبدأ باید بهعنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه میشود از ترجمهٔ حرفهای انسانی استفاده شود. ما در قبال هرگونه سوءتفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.