پرش به محتوای اصلی
دانشگاه هوش مصنوعی — Daneshgah AI

راهنمای جامع اتصال ایجنت های هوش مصنوعی به ابزارهای خارجی با پروتکل MCP

Comprehensive Guide to Connecting AI Agents to External Tools with MCP Protocol

۱ بازدید۰ پسند۷:۵۳۸ دقیقه مطالعه
تماشا در آپارات

منبع اصلی این ویدیو: مشاهده نسخه اصلی

پاسخ کوتاه

پروتکل MCP (Model Context Protocol) راهکاری برای اتصال ایجنت‌های هوش مصنوعی به ابزارهای خارجی و دریافت داده‌های زنده ارائه می‌دهد. این پروتکل با ایجاد یک واسط استاندارد، امکان تعامل ایزوله، پویا و مقیاس‌پذیر را بین ایجنت و سرویس‌های بیرونی فراهم می‌کند.

راهنمای جامع اتصال ایجنت‌های هوش مصنوعی به ابزارهای خارجی با پروتکل MCP مدل‌های زبانی بزرگ، به‌تنهایی در دریافت داده‌های روز و اجرای ابزارهای بیرونی محدود هستند. ایجنت‌های هوش مصنوعی با بهره‌گیری از پروتکل MCP (Model Context Protocol) قادرند به شکل استاندارد، امن و مستقل از زبان برنامه‌نویسی به سرویس‌ها و ابزارهای تخصصی مثل Google Trends متصل شوند. پروتکل MCP ابزارها را با معماری ایزوله، کشف‌پذیری پویا و مقیاس‌پذیر فراهم می‌کند تا ایجنت، صرفاً با تحلیل اسکیمای JSON، بتواند آنها را فراخوانی و پاسخ JSON دریافت کند. این ارتباط از طریق جریان ورودی/خروجی استاندارد (STDIO) صورت می‌گیرد و توسعه‌دهنده با ساخت سرور اختصاصی MCP و معرفی آن در ایجنت، به‌سادگی می‌تواند اکوسیستم عامل‌های هوشمند را گسترش دهد. راه‌اندازی سرور MCP شامل تبدیل توابع پایتون به ابزار قابل فهم، پیاده‌سازی هندلر فهرست ابزارها و فراخوانی، و اتصال به STDIO است. نهایتاً این لایه ارتباطی باعث افزایش انعطاف، پایداری و قابلیت نگهداری ایجنت‌ها می‌شود و پایانی به محدودیت‌های چت‌بات‌های ایستا خواهد بود.

نکات کلیدی این ویدیو

  • پروتکل MCP امکان تعامل استاندارد و مستقل بین ایجنت و ابزارهای خارجی را مهیا می‌کند.
  • ارتباط میان ایجنت و سرور MCP به‌صورت JSON بر بستر ورودی/خروجی استاندارد است.
  • ایزوله بودن ابزارها موجب پایداری بیشتر کل سامانه می‌شود.
  • تعریف اسکیمای ابزارها به شکل پویا و خودکار انجام می‌شود و نیاز به کدنویسی مجدد ندارد.
  • افزودن ابزار جدید یا به‌روزرسانی آن به هسته ایجنت آسیبی نمی‌زند و مقیاس‌پذیری بالایی فراهم می‌کند.
  • اتصال ابزارهای بیرونی از دید ایجنت، همانند فراخوانی توابع داخلی انجام می‌شود و شفاف است.
  • معماری MCP نگهداری، خطایابی و توسعه عامل‌های هوش مصنوعی را آسان‌تر و کارا‌تر می‌کند.
  • گام بعدی، توسعه سیستم‌های چندایجنتی با بهره‌گیری از همین الگو است.

متن مقاله

مقاله‌ی تحریریه‌ی دانشگاه هوش مصنوعی درباره‌ی این موضوع.

مقدمه

مدل های زبانی بزرگ (LLM) تغییرات شگرفی در پردازش زبان طبیعی و تولید متن ایجاد کرده اند. با این حال، استفاده از این مدل ها به تنهایی دارای محدودیت های بنیادی است؛ پویایی پایین، عدم دسترسی مستقیم به داده های زنده اینترنت و عدم توانایی در اجرای ابزارهای خارجی از جمله این چالش ها به شمار می روند. هنگامی که یک مدل فقط بر دانسته های پیشین خود متکی باشد، عملکرد آن محدود به سناریوهای ایستا خواهد شد.

برای عبور از این محدودیت، مفهوم ایجنت های هوش مصنوعی (AI Agents) مطرح شده است. ایجنت ها سیستم هایی هستند که نه تنها توانایی تحلیل و تصمیم گیری دارند، بلکه می توانند با محیط بیرون خود تعامل داشته باشند. فریم ورک های توسعه ایجنت مانند فریم ورک ADK (مخفف Agent Development Kit) به توسعه دهندگان این امکان را می دهند که ایجنت هایی بسازند که قادر به برنامه ریزی، تولید محتوا و فراخوانی وظایف مختلف هستند.

اما چالش اصلی در این مسیر، نحوه برقراری ارتباط امن، استاندارد و مقیاس پذیر میان ایجنت هوش مصنوعی و ابزارهای خارجی است. در اینجاست که پروتکل MCP یا همان Model Context Protocol وارد ساختار توسعه می شود. این مقاله به بررسی جامع مفاهیم، معماری و نحوه اتصال عملی یک ایجنت توسعه یافته با ADK به یک سرور MCP می پردازد تا امکان دریافت داده های زنده (مانند تحلیل روندهای وب از طریق Google Trends) برای ایجنت فراهم گردد.

پروتکل MCP (Model Context Protocol) چیست؟

پروتکل MCP که مخفف Model Context Protocol است، یک استاندارد ارتباطی باز و یکنواخت برای برقراری اتصال میان ایجنت‌های مبتنی بر مدل‌های زبانی و ابزارهای بیرونی به شمار می‌رود. برای درک بهتر، می‌توان MCP را به عنوان یک مترجم یا استاندارد رابط نرم افزار در نظر گرفت که دو سمت مستقل را به یکدیگر متصل می‌سازد: در یک سمت، ایجنت قرار دارد که تصمیم‌گیری و پردازش متن را بر عهده دارد و در سمت دیگر، ابزارهای تخصصی اجرای کارهای خاص قرار گرفته‌اند؛ ابزارهایی نظیر سرویس تحلیل روندهای جستجو Google Trends، پایگاه‌های داده یا موتورهای اجرای کد.

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

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

۱. شناسایی قابلیت‌ها (Discovery): در ابتدای ارتباط، ایجنت درخواست لیست ابزارهای موجود را ارسال می‌کند. سرور MCP پاسخی حاوی اسامی ابزارها، اسکیما ورودی، آرگومان‌های مورد نیاز و نوع خروجی ارائه می‌دهد.

۲. فراخوانی ابزار (Invocation): ایجنت بر اساس نیاز خود و تحلیل اسکیمای دریافتی، ابزار مورد نظر را انتخاب کرده و پارامترهای لازم را در قالب ساختار JSON برای سرور ارسال می‌نماید.

۳. اجرا و بازگشت پاسخ (Execution & Response): سرور ابزار مربوطه را اجرا کرده و نتایج حاصله را مجدداً به صورت داده‌های JSON به ایجنت بازمی‌گرداند تا در فرآیند تصمیم‌گیری بعدی مورد استفاده قرار گیرد.

مزایای کلیدی معماری MCP

استفاده از پروتکل MCP چارچوبی استوار برای توسعه سیستم های هوش مصنوعی فراهم می‌سازد که دارای ویژگی‌های زیر است:

  • ایزوله بودن (Isolation): از آنجا که هر ابزار در پروسس مستقل خود اجرا می‌شود، بروز هرگونه خطا یا انقطاع در عملکرد ابزار خارجی، موجب از دست رفتن پایداری ایجنت اصلی نخواهد شد.
  • تعامل‌ پذیری و عدم وابستگی به زبان برنامه نویسی (Interoperability): سرور MCP می‌تواند با زبان های مختلف برنامه نویسی نظیر Python، Node.js یا Go پیاده سازی شود؛ زیرا ایجنت تنها با لایه پروتکل استاندارد و فرمت JSON تعامل دارد.
  • کشف‌پذیری پویا (Dynamic Discoverability): ابزارها قابلیت‌های خود را از طریق اسکیماهای توصیفی اعلام می‌کنند؛ بنابراین ایجنت بدون نیاز به تنظیمات سخت‌افزاری یا کدنویسی مجدد، در زمان اجرا نحوه تعامل با ابزار را درک می‌کند.
  • مقیاس‌پذیری و قابلیت نگهداری (Scalability): به‌روزرسانی، تغییر یا افزودن ابزارهای جدید بدون دستکاری در کد اصلی ایجنت امکان‌پذیر است، که این امر هزینه نگهداری نرم افزار را به شدت کاهش می‌دهد.

گام‌های عملی پیاده‌سازی سرور MCP

توسعه و راه‌ اندازی یک سرور MCP برای برقراری ارتباط میان ایجنت توسعه یافته با فریم ورک ADK و ابزارهای بیرونی، نیازمند ساختاردهی مشخصی در قالب کد پایتون است. در این سناریو، هدف ایجاد یک سرور مستقل در فایلی به نام server.py است که ابزار دریافت داده‌های زنده (مانند تحلیل روندهای جستجو در Google Trends) را به صورت یک سرویس استاندارد در اختیار ایجنت قرار می‌دهد. این سرور به جای استفاده از پروتکل HTTP، از طریق جریان ورودی و خروجی استاندارد (STDIO) با ایجنت گفتگو می‌کند. ساختار فنی این پیاده‌سازی را می‌توان در ۴ بخش کلیدی بررسی کرد:

تبدیل تابع پایتون به ابزار قابل فهم برای ایجنت (Function Wrapping)

در نخستین گام، تابع پایتون مربوط به فراخوانی ابزار (مانند دریافت داده‌های Google Trends) تعریف می‌شود. این تابع ورودی‌ها و خروجی‌های خود را در قالب دیکشنری و ساختارهای سازگار با JSON دریافت و منتقل می‌کند. برای اینکه فریم ورک ADK بتواند این تابع را شناسایی کند، از کلاس FunctionTool استفاده می‌شود.

این کلاس به‌صورت خودکار ساختار ورودی‌ها، انواع داده‌ها (Data Types) و توضیحات متنی (Docstring) تابع را تحلیل کرده و یک اسکیمای JSON استاندارد تولید می‌نماید. بدین ترتیب، نیازی به طراحی دستی اسکیما برای ابزار وجود نخواهد داشت.

تعریف و پیکربندی آبجکت سرور MCP

در گام دوم، یک نمونه (Instance) از آبجکت سرور MCP ساخته می‌شود. این آبجکت به عنوان واسط اصلی میان ایجنت و تابع عملیاتی عمل می‌کند و مسئولیت اجرای پروتکل MCP روی ورودی و خروجی استاندارد را بر عهده دارد. نام تخصیص‌ داده‌شده به این سرور، به عنوان شناسه اصلی در زمان برقراری ارتباط اولیه به ایجنت کلاینت معرفی می‌گردد.

پیاده‌ سازی هندلرهای اصلی سرور (Discovery & Invocation)

عملکرد پویای سرور MCP بر دو پایه یا هندلر (Handler) اصلی استوار است:

۱. هندلر فهرست‌ سازی ابزارها (List Tools): وقتی ایجنت به سرور متصل می‌شود، درخواستی برای دریافت لیست ابزارهای موجود ارسال می‌کند. سرور با استفاده از توابع کمکی تبدیل ساختار ADK به MCP، متادیتای کامل ابزار (شامل نام، توضیحات، پارامترهای ورودی و تایپ داده‌ها) را استخراج کرده و در قالب پاسخ JSON به ایجنت بازمی‌گرداند.

۲. هندلر فراخوانی ابزار (Call Tool): زمانی که ایجنت تصمیم به استفاده از ابزار می‌گیرد، نام ابزار و پارامترهای JSON مورد نظر را ارسال می‌کند. سرور پس از اعتبارسنجی نام ابزار، تابع پایتون مربوطه را به‌صورت ناهمگام (Async) از طریق متد run_async اجرا کرده و خروجی حاصل را مجدداً به فرمت JSON تبدیل و ارسال می‌نماید. در صورت بروز هرگونه خطا، ساختار خطای استاندارد JSON بازگردانده شده و جزئیات در جریان خطای استاندارد (STDERR) ثبت می‌گردد.

اتصال به جریان STDIO و اجرای سرور

در گام پایانی، سرور به جریان‌های خواندن و نوشتن ورودی و خروجی استاندارد (STDIO) متصل می‌شود. با تنظیم متادیتا و قابلیت‌های اولیه ارتباطی، اجرای فرآیند سرور با استفاده از حلقه رویدادهای پایتون (asyncio.run) آغاز می‌گردد. از این نقطه به بعد، سرور در حالت آماده‌ به‌ کار قرار گرفته و منتظر دریافت فرمان‌ها از سمت ایجنت خواهد بود.

یکپارچه‌سازی سرور با ایجنت هوش مصنوعی

پس از پیاده‌سازی کامل سرور MCP در فایل server.py، گام بعدی متصل ساختن این سرور به ایجنت اصلی هوش مصنوعی است. این فرآیند در فایل تعریف ایجنت (مانند agent.py) انجام می‌پذیرد.

معرفی ابزار MCP به ایجنت

در پیکربندی ایجنت اصلی، ابزار سرور MCP (برای نمونه trends_mcp) به آرایه ابزارهای تحت اختیار ایجنت اضافه می‌شود. تا پیش از این، ایجنت ممکن بود تنها دارای ابزارهای داخلی مانند برنامه‌ریز (Planner) یا نویسنده (Writer) باشد که مبتنی بر دانش ثابت مدل کار می‌کردند. با افزودن ابزار MCP به لیست ابزارها، ایجنت توانایی فراخوانی سرور بیرون از محیط خود را به دست می‌آورد.

نکته حائز اهمیت در این معماری، شفافیت (Seamlessness) لایه یکپارچه‌سازی است. از دیدگاه ایجنت، صدا زدن ابزاری که روی سرور MCP ارائه شده است هیچ تفاوتی با صدا زدن یک تابع محلی درون‌ برنامه‌ای ندارد. ایجنت بر اساس نیاز خود تصمیم می‌گیرد چه زمانی کوئری‌های لازم برای دریافت داده‌های زنده (مانند روندهای روز جستجو) را به سرور MCP ارسال کند و پاسخ‌ها را پیش از تولید متن نهایی تحلیل نماید.

اجرا و تعامل در محیط گرافیکی ADK Web UI

برای تست و مشاهده عملکرد ایجنت متصل‌ شده به سرور MCP، می‌توان از رابط کاربری وب فریم ورک یعنی ADK Web UI استفاده نمود. با اجرای این محیط، ایجنت به صورت هوشمند و خودکار، ابتدا ابزارهای سرور MCP را کشف کرده و در صورت نیاز، درخواست‌های لازم را از طریق ارتباط STDIO مبادله می‌نماید. کاربر می‌تواند روند تفکر ایجنت، فراخوانی ابزار و پاسخ‌های زنده دریافتی را به شکلی واضح و تعاملی مشاهده کند.

نتیجه‌گیری

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

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

در مسیر یادگیری و توسعه، گام بعدی برای افزایش قدرت این ابزارها، حرکت به سوی سیستم‌های چند ایجنتی (Multi-Agent Systems) با استفاده از فریم ورک ADK است؛ سناریویی که در آن چند ایجنت تخصصی با بهره‌گیری از سرورهای MCP متصل، توانایی حل مسائل پیچیده و چند بعدی را به صورت هم‌افزا خواهند داشت.

پرسش‌های متداول درباره این ویدیو

پروتکل MCP (Model Context Protocol) استانداردی باز برای اتصال ایجنت‌های هوش مصنوعی به ابزارهای خارجی و دریافت داده‌های زنده یا اجرای سرویس‌های بیرونی است. این پروتکل ارتباطی ایزوله، مقیاس‌پذیر و مستقل از زبان برنامه‌نویسی ایجاد می‌کند.

گفت‌وگو و پرسش‌های تخصصی0

پرسش خود را مطرح کنید یا به پرسش دیگران پاسخ دهید. نظرات پس از تایید مدیر نمایش داده می‌شوند.

برای ثبت نظر یا پرسش، ابتدا وارد حساب کاربری خود شوید.

هنوز نظری ثبت نشده است. اولین نفر باشید!

ادامه یادگیری در اتوماسیون و ایجنت‌ها