Your MCP Servers Are Burning Tokens Before You Type a Word

شما در حال پرداخت هزینه برای داده‌هایی هستید که هرگز از آن‌ها استفاده نمی‌کنید.

هفته گذشته یک نشست عامل (agent session) را ردیابی کردم. ۴۷ ابزار MCP در آن بارگذاری شده بود. هر ابزار، طرحواره (schema) کامل JSON خود را به پرامپت سیستم (system prompt) می‌فرستاد. این اتفاق حتی قبل از اینکه کلمه‌ای تایپ کنم رخ می‌داد.

هر طرحواره ابزار بین ۱۵۰ تا ۴۰۰ توکن مصرف می‌کند. ۴۷ ابزار، ۱۱,۰۰۰ توکن هزینه اضافی (overhead) برای من داشت. مدل در هر مرحله (turn)، این توکن‌ها را می‌خواند. شما بابت این کانتکست (context) هزینه پرداخت می‌کنید، حتی اگر فقط از دو ابزار استفاده کنید.

بیشتر مردم نگران آپلود فایل‌های حجیم هستند. آن‌ها هزینه خودِ «منوی ابزارها» را فراموش می‌کنند.

وقتی سرورهایی مانند GitHub، Slack و پایگاه‌های داده را روی هم انباشته می‌کنید، در نهایت با ۶۰ تا ۱۰۰ ابزار مواجه می‌شوید. من نشست‌هایی را دیده‌ام که در آن‌ها تعریف ابزارها، ۲۰٪ از کل بودجه کانتکست را اشغال کرده بود.

از بارگذاری همزمان همه چیز دست بردارید. در عوض از بارگذاری تأخیری (deferred loading) استفاده کنید.

الگو به این صورت است: • ابزارها را فقط با نام و یک توضیح کوتاه فهرست کنید. • از یک ابزار جستجو برای فراخوانی طرحواره‌های کامل در صورت نیاز استفاده کنید.

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

نتایج خیره‌کننده است: • بارگذاری فوری (Eager loading) ۸۰ ابزار: ~۱۸,۰۰۰ توکن. • بارگذاری تأخیری (Deferred loading) ۸۰ ابزار: ~۱,۰۰۰ توکن.

این کار، تعریف ابزارها را از یک هزینه اصلی به یک خطای گرد کردن (rounding error) تبدیل می‌کند.

این استراتژی به این دلیل کار می‌کند که اکثر نشست‌ها تنها از بخش کوچکی از ابزارهای موجود استفاده می‌کنند. اگر از تمام ابزارهای یک نشست استفاده کنید، هزینه ثابت می‌ماند. اما برای اکثر کاربران، این کار مقدار عظیمی از کانتکست را ذخیره می‌کند.

نپرسید که مدل به فراخوانی چه ابزارهایی نیاز دارد. بپرسید که مدل به‌صورت پیش‌فرض باید بداند چه چیزهایی وجود دارند.

اکثر کاتالوگ‌ها همه چیز را یک‌جا ارائه می‌دهند چون کار آسانی است. اما این سریع‌ترین راه برای هدر دادن بودجه شما روی منویی است که هیچ‌کس آن را نمی‌خواند.

ساده نگهش دارید. یک نام، یک توضیح و یک تابع جستجو ارائه دهید. هزینه سه ابزاری را که استفاده می‌کنید بپردازید، نه هشتاد ابزاری را که نادیده می‌گیرید.

منبع: https://dev.to/enjoy_kumawat/your-mcp-servers-are-burning-tokens-before-you-type-a-word-3076

انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi