پرش به محتوای اصلی
پرش به محتوای مقاله

«عدم کاهش توکن‌ها»؛ محدودیت ابزارهای MCP در پنجره زمینه Claude

·۲۷ تیر ۱۴۰۵۴ دقیقه مطالعه
راهنما
چرا MCP نمی‌تواند توکن‌های ورودی شما را ذخیره کند (و چه چیزی در Claude Code واقعاً کار می‌کند)
چرا MCP نمی‌تواند توکن‌های ورودی شما را ذخیره کند (و چه چیزی در Claude Code واقعاً کار می‌کند)
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

افشای این واقعیت فنی که ابزارهای MCP در Claude Code به‌جای جایگزینی متن ورودی، آن را تکرار می‌کنند و در نتیجه هزینه استنتاج را افزایش می‌دهند، نه کاهش.

اگر برای بهینه‌سازی هزینه‌های استنتاج خود از ابزارهای MCP در Claude Code استفاده می‌کنید، احتمالاً در حال پرداخت مبلغی بیشتر از حد لازم هستید. این ابزارها به‌جای کاهش هزینه‌ها، در واقع تله‌ای هستند که صورت‌حساب شما را افزایش می‌دهند. دلیل این اتفاق آن است که این ابزارها در داخل حلقه عامل (agent loop) و پس از ورود متن به زمینه (context) اجرا می‌شوند؛ بنابراین شما به‌طور هم‌زمان هزینه متن خام، فراخوانی ابزار و متن پاک‌سازی شده حاصل را پرداخت می‌کنید.

این ناکارآمدی نشان می‌دهد که بسیاری از توسعه‌دهندگان هنوز نقطه شروع «کنتور توکن» در گردش‌کارهای عامل‌محور (Agentic) را اشتباه می‌فهمند. همان‌طور که در تحلیل قبلی ما درباره‌ی سازماندهی دانش داخلی در Claude Artifacts اشاره کردیم، این مسئله شکافی را در نحوه مدیریت هزینه‌های ورودی در لحظه توسط توسعه‌دهندگان آشکار می‌کند. در دنیای واقعی، این وضعیت شبیه به این است که پول یک وعده غذای کامل را بدهید و دوباره به یک متخصص تغذیه پول پرداخت کنید تا به شما بگوید کدام بخش‌های آن غذا را نباید می‌خوردید.

طبق گزارشی فنی که در ۱۷ ژوئیه ۲۰۲۶ در وب‌سایت dev.to منتشر شد، سه فرض غلط بنیادین درباره تغییر (Mutation) پرامپت‌ها وجود دارد:

  • ابزارهای MCP: یک ابزار پاک‌سازی پرامپت (clean_prompt) جایگزین ورودی نمی‌شود؛ بلکه نسخه‌ای پاک‌شده را به متن خام اولیه و هزینه‌های جانبی (Overhead) ابزار اضافه می‌کند.
  • قلاب‌های UserPromptSubmit: این قلاب‌ها می‌توانند زمینه یا کانتکست اضافه کنند یا به‌طور کلی جلوی ارسال پرامپت را بگیرند، اما توانایی تغییر یا جایگزینی متن اصلی کاربر را ندارند.
  • تزریق Bash در دستورات اسلش: هرچند دستور !command شبیه به یک جایگزینی به نظر می‌رسد، اما متن خام در گزارش JSONL به‌صورت <command-args> باقی می‌ماند. این متن اغلب تا چهار بار در گزارش ظاهر می‌شود: در آرگومان‌های دستور، آرگومان‌های ابزار، یادداشت بارگذاری مهارت (skill-load note) و خروجی Bash.

چرا MCP نمی‌تواند توکن‌های ورودی شما را ذخیره کند (و چه چیزی در Claude Code واقعاً کار می‌کند)

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

۱. میان‌برهای سراسری (Global Hotkeys): استفاده از Win32 RegisterHotKey یا AutoHotkey برای ارسال متن به یک API پاک‌سازی و جایگزینی آن در کادرباکس پیش از زدن دکمه ارسال.
۲. لوله‌کشی CLI (CLI Piping): اجرای دستور cat messy_prompt.txt | clean_prompt | claude code که تضمین می‌کند مدل هرگز متن بهینه‌نشده اولیه را نبیند.

چرا MCP نمی‌تواند توکن‌های ورودی شما را ذخیره کند (و چه چیزی واقعاً در Claude Code کار می‌کند)

البته برای کسانی که از MCP برای فراخوانی‌های پایین‌دستی (downstream calls) — مانند پرس‌وجوهای تولید بازیابی‌افزا (RAG) یا دستورات زیر-عامل (sub-agent instructions) — استفاده می‌کنند، کاهش هزینه‌ها واقعی است؛ چرا که آن فراخوانی‌های خاص هرگز پرامپت خام اولیه را نمی‌بینند. اما برای رابط کاربری اصلی، معماری سیستم اساساً افزودنی (Additive) است.

این واقعیت با مشخصات MCP v2 که در ۲۸ ژوئیه ۲۰۲۶ نهایی می‌شود، بیشتر تثبیت شده است. پروتکل جدید با حذف دست دادن اولیه (initialize handshake) و سرآیند Mcp-Session-Id است، پروتکل را بدون وضعیت (stateless) می‌کند. این تغییر به‌طور مؤثر هرگونه امید آینده برای بهینه‌سازی توکن‌ها بر اساس وضعیت نشست (session-state) را از بین می‌برد.

در نهایت، این بدان معناست که هر ابزاری که ادعا کند در داخل حلقه اجرای خودِ عامل، «توکن‌ها را بهینه می‌کند»، احتمالاً در حال گران‌تر کردن جلسه است. اگر هزینه محرک اصلی شماست، باید تمرکز خود را از ابزارهای سمت عامل به خط لوله‌های پیش‌پردازش (pre-processing pipelines) تغییر دهید.

گام بعدی شما

  • توقف استفاده از ابزارهای داخلی MCP برای پاک‌سازی پرامپت‌های ورودی
  • پیاده‌سازی یک خط لوله پیش‌پردازش (Pre-processing) در سطح سیستم‌عامل یا CLI
  • بررسی تنظیمات لوله‌کشی در محیط ترمینال برای حذف متون زائد پیش از ارسال به مدل

این تنها آغاز ماجراست؛ اثر موج‌گونه‌ی این تصمیم بر اکوسیستم ابزارهای متن‌باز را در گزارش بعدی بررسی خواهیم کرد.

چرا این موضوع مهم است؟

این یافته بر اساس تحلیل معماری پروتکل MCP است و نشان می‌دهد که ابزارهای بهینه‌ساز داخلی در سیستم‌های عامل‌محور می‌توانند باعث افزایش هزینه‌های عملیاتی شوند. این موضوع اعتبار ادعاهای ابزارهای «کاهش توکن» را به شدت زیر سوال می‌برد.

تأثیر برای ایران

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

·نگاه ما
تحریریه دات‌هوش

اعتماد به ابزارهای داخلی برای بهینه‌سازی هزینه، یک توهم مهندسی است. وقتی لایه ابزاری (Tool Layer) پس از لایه ورودی (Input Layer) قرار می‌گیرد، هرگونه تلاش برای «پاک‌سازی» در واقع حجم داده‌های ارسالی به مدل را بیشتر می‌کند. توسعه‌دهندگان باید استراتژی خود را از «مدیریت در مدل» به «مدیریت پیش از مدل» تغییر دهند.

منابع

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

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.