منطق ایجنت‌ها › M3 — ابزار در عمل
۳.۶ فرّار تدریسی ~۳۰ دقیقه

MCP و اتصال به ابزارهای دیگر

قبل از این فصل: فصل ۳.۱

در یک نگاه

این فصل فرّار است

فهرست سرویس‌های قابل‌اتصال و نحوه‌ی نصبشان مدام عوض می‌شود. ایده‌ی استانداردِ مشترک و مدل client/server پایدار است.

آخرین به‌روزرسانی: ۱۴۰۵/۰۵/۰۴

۳.۶.۱

MCP چیست و چه مشکلی را حل می‌کند

اول مشکل، بعد راه‌حل — وگرنه اسمش گنگ می‌ماند.

مشکل: فرض کن ده ابزار هوش مصنوعی داریم و بیست سرویس (ایمیل، تقویم، فروشگاه، پایگاه‌داده). اگر هر ابزار بخواهد برای هر سرویس یک اتصال اختصاصی بسازد، می‌شود دویست اتصال — که هیچ‌وقت ساخته نمی‌شوند.

راه‌حل: یک زبان مشترک برای اتصال. هر سرویس یک بار آن را پیاده می‌کند، هر ابزار یک بار می‌فهمدش، و همه با همه کار می‌کنند.

اسمش MCP است، و خودِ مستندات رسمی‌اش یک تشبیه خوب دارد: مثل پورت USB-C برای ابزارهای هوش مصنوعی. همان‌طور که USB-C یک راه استاندارد برای وصل‌کردن دستگاه‌هاست، MCP یک راه استاندارد برای وصل‌کردن ابزارهای هوش مصنوعی به سیستم‌های بیرونی است.

و این دقیقاً همان دیواری است که در فصل ۳.۲ دیدی: ایجنت ایمیل و تقویم و پایگاه‌دادهٔ تو را نمی‌بیند. MCP راهی است که خودت آن دیوار را جای مشخصی سوراخ کنی.

۳.۶.۲

client و server در یک نگاه

دو کلمه که در همه‌ی توضیح‌های MCP می‌بینی، و ساده‌ترند از آنچه به نظر می‌رسند:

و API مفهوم عمومی‌ترش است: قراردادِ اینکه دو برنامه چطور با هم حرف بزنند. MCP در واقع یک API استانداردشده مخصوص همین کار است.

تشبیه رستوران، اگر کمک می‌کند: server آشپزخانه است، client تو، و MCP همان منو — قراردادی که می‌گوید چه چیزی می‌شود سفارش داد و جوابش چه شکلی می‌آید. بدون منو، هر بار باید بروی داخل آشپزخانه.

client ایجنت تو یک بار استاندارد را می‌فهمد استانداردِ مشترک MCP مثل پورت USB-C یک زبان، برای همه server‌ها فایل‌ها و پایگاه‌داده تقویم و ایمیل هر سرویس دیگری بدون استانداردِ مشترک، هر ابزار باید برای هر سرویس یک اتصال جدا بسازد. با آن، هر طرف یک بار پیاده‌اش می‌کند و همه با همه کار می‌کنند. ولی هر اتصال، یک در است که تو بازش می‌کنی — پس هرکدام یک تصمیمِ آگاهانه است.
client و server در یک نگاه. تکه‌ی وسط همان چیزی است که همه‌ی این اتصال‌ها را ممکن می‌کند.
۳.۶.۳

یک اتصال ساده، قدم‌به‌قدم

مراحل در همه‌ی ابزارها یکی است، حتی اگر شکل صفحه فرق کند:

  1. انتخاب کن چه چیزی را وصل کنی — و از کوچک‌ترین و بی‌خطرترین شروع کن، نه از حساب کاری‌ات.
  2. server را اضافه کن به تنظیمات ابزارت. معمولاً یک خط تنظیمات است.
  3. اجازه بده — بار اول از تو تأیید می‌خواهد. همان دروازه‌ی فصل ۳.۳.
  4. امتحان کن — یک درخواست ساده بده که فقط بخواند. مثلاً «چه چیزهایی را از این اتصال می‌بینی؟»
  5. و بعد ببین چه چیزی اضافه شد — چه ابزارهای تازه‌ای در دسترسش قرار گرفته.

قدم چهارم مهم‌ترین است و همان الگوی «ثابت کن کار می‌کند» فصل ۰.۷ است: اول یک درخواستِ فقط‌خواندنی، بعد کارِ واقعی.

۳.۶.۴

چه چیزهایی را می‌شود وصل کرد — و احتیاطش

دسته‌های رایج: فایل‌ها و پوشه‌ها · تقویم و ایمیل · پایگاه‌داده · ابزارهای مدیریت کار · سرویس‌های جستجو · و ابزارهای تخصصیِ حرفه‌ی خودت.

ولی نکته‌ی اصلی این بخش، فهرست نیست — احتیاط است.

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

چهار سؤال قبل از هر اتصال:

و یک قاعده‌ی عملی که تا آخر دوره به کارت می‌آید: با فقط‌خواندنی شروع کن. اتصالی که فقط می‌خواند، بدترین حالتش این است که چیزی را نفهمد. اتصالی که می‌نویسد، بدترین حالتش این است که چیزی را در سرویس واقعی‌ات خراب کند.

بحث کاملِ اینکه چه داده‌ای را کجا می‌فرستی، ماژول ۵ است — و MCP دقیقاً همان جایی است که این سؤال جدی می‌شود.

نکته‌ی طلایی بعد از هر اتصال تازه، یک بار بپرس «الان چه ابزارهایی در دسترس داری و هرکدام چه می‌کند؟» این کار دو چیز را روشن می‌کند: دقیقاً چه دری باز شده، و اینکه آیا بیشتر از آنچه می‌خواستی باز شده یا نه.
ضدالگو وصل‌کردن هرچه می‌شود، «تا وقتی لازم شد آماده باشد». هر اتصال دو هزینه دارد که دیده نمی‌شود: توضیح ابزارهایش در context هر session جا می‌گیرد (فصل ۲.۷)، و هر کدام یک درِ باز است. اتصالی که این ماه استفاده نکردی، بردار.

تمرین (ساختنی)

یک اتصال ساده برقرار کن و نتیجه‌اش را بگیر.

مهم: ساده‌ترین و بی‌خطرترین اتصال ممکن را انتخاب کن — چیزی که فقط می‌خواند و به داده‌ی حساس دسترسی ندارد. این تمرین درباره‌ی فهمیدن مکانیزم است، نه ساختن چیز به‌دردبخور.

بعد از وصل‌کردن، این چهار چیز را بنویس: چه وصل کردی · چه ابزارهای تازه‌ای اضافه شد · یک درخواستِ فقط‌خواندنی و جوابش · و اینکه چه چیزی را نمی‌بیند حتی با این اتصال.

اگر به هر دلیلی نتوانستی وصل کنی (که کاملاً ممکن است — فصل ۰.۷)، به‌جایش این را بنویس: کدام قدم گیر کرد و کدام مانع بود، دسترسی یا تنظیمات؟ این هم جوابِ قابل‌قبولی است.

پاسخنامه — یک نمونه‌ی خوب را ببین

چه وصل کردم: «یک server که به یک پوشه‌ی مشخص روی کامپیوترم دسترسی می‌دهد — همان زمین بازی، نه پوشه‌ی خانگی.»

چهار سؤال: «فقط آن پوشه را می‌بیند · فعلاً فقط خواندن دادم · server از منبع رسمی خودِ ابزار است · و برداشتنش یک خط تنظیمات است.»

ابزارهای تازه: «پرسیدم؛ سه ابزار اضافه شده بود: فهرست فایل‌ها، خواندن فایل، و جستجو در فایل‌ها. ابزار نوشتن نبود — چون فقط خواندن داده بودم. همان چیزی که انتظار داشتم.»

درخواست فقط‌خواندنی: «گفتم فهرست فایل‌های آن پوشه را بده. داد، و با آنچه خودم می‌دیدم یکی بود.»

هنوز نمی‌بیند: «پوشه‌های دیگر · ایمیلم · و چیزی که در session قبلی گفته بودم. اتصال فقط یک در باز کرد، نه همه‌ی درها.»

چرا این جواب خوب است: انتظارش از فهرست ابزارها را قبلش داشته و بعد تطبیق داده — یعنی اتصال را راستی‌آزمایی کرده، نه اینکه فرض کند کار می‌کند. و بند آخر نشان می‌دهد مرزها را درست فهمیده.

برای عمق بیشتر

ذخیره شد