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

پیچیدگی ارکستراسیون در برابر هوش مدل؛ ریشه‌ی تکرارهای Claude Code

·۳ مرداد ۱۴۰۵۷ دقیقه مطالعه
شش بار دنبال توکن‌های هدررفته در Claude Code گشتم. پنج بار آنجا نبودند.
شش بار دنبال توکن‌های هدررفته در Claude Code گشتم. پنج بار آنجا نبودند.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی ابزار Clew که برای نخستین بار اتلاف توکن را به‌صورت قطعی (بدون استفاده از LLM) اندازه‌گیری می‌کند و ثابت می‌کند تعداد زیاد ابزارها عامل اصلی تکرار و اتلاف است، نه ضعف مدل.

تصور کنید برنامه‌نویسی هستید که در جستجوی توکن‌های تلف‌شده در Claude Code است؛ این جستجو به حقیقتی غافلگیرکننده ختم شد: مشکل از خودِ عامل (Agent) نیست. در ۲۵ ژوئیه ۲۰۲۶، سازنده یک ابزار تشخیصی جدید به نام Clew گزارش داد که در حالی که انتظار داشت تکرارهای قابل‌توجهی در ابزار کاربردی روزمره‌اش پیدا کند، داده‌ها دقیقاً عکس این موضوع را نشان دادند.

این کشف در حالی رخ می‌دهد که توسعه‌دهندگان با صورت‌حساب‌های رو به رشد API و «جعبه سیاه» انتقال تسک‌ها در عامل‌ها دست‌وپنجه نرم می‌کنند. همان‌طور که در تحلیل قبلی ما درباره‌ی نحوه عبور از بازبینی سخت‌گیرانهٔ پلاگین‌های Claude از طریق مانیفست‌های دقیق اشاره کردیم، تمرکز صنعت اکنون از «چگونه ابزار بسازیم» به «چگونه جلوی استفاده ناکارآمد عامل‌ها از ابزارها را بگیریم» تغییر کرده است. این وضعیت شبیه سرآشپز حرفه‌ای است که دقیقاً می‌داند از کدام چاقو استفاده کند، در حالی که یک تازه‌کار در آشپزخانه‌ای با ۵۰۰ گجت مختلف سردرگم شده است؛ در اینجا اتلاف ناشی از مهارت آشپز نیست، بلکه حاصل هرج‌ومرج ابزارهاست. این چالش‌های مدیریتی در حالی مطرح می‌شود که Claude Code با آوردن ابزارهای ویرایش مستقیم به ترمینال سعی کرده است تعامل با کد را تسهیل کند.

مکانیزم‌های عملکرد Clew

Clew بدون استفاده از یک مدل زبانی بزرگ (LLM) در چرخه عملیاتی عمل می‌کند و از دو گیت قطعی (Deterministic Gates) برای شناسایی اتلاف استفاده می‌کند. این طراحی تضمین می‌کند که هیچ بردار معنایی (Embedding)، هیچ داوری (Judge) و هیچ مدلی در فرآیند تصمیم‌گیری دخیل نباشد.

  • گیت ساختاری (Structural Gate): بازه‌ها (Spans) را بر اساس ترکیب (گره، ورودی نرمال‌شده) گروه‌بندی می‌کند. گروه‌هایی که شامل دو عضو یا بیشتر باشند، به عنوان کاندیدای اتلاف علامت می‌خورند.
  • گیت شناسایی (Identity Gate): شرط تطابق دقیق هش SHA256 خروجی‌ها را بررسی می‌کند (sha256(output_A) == sha256(output_B)). اگر خروجی‌ها بایت‌به‌بایت یکسان باشند، آن جفت به عنوان کاندیدا پذیرفته می‌شود. اگر خروجی‌ها متفاوت باشند — چه به دلیل تغییر وضعیت، یک تلاش مجدد موفق یا یک رشته متنی اندک متفاوت — آن جفت رد می‌شود.

پس از شناسایی، Clew برچسب‌های گزارش‌دهی را صرفاً بر اساس نام ابزار اختصاص می‌دهد. این برچسب‌ها برای راهنمایی خواننده هستند و هرگز زنجیره authoritative SHA256 را تغییر نمی‌دهند:

  • error_repeat: پاسخ با یک الگوی خطا مطابقت دارد، که نشان می‌دهد عامل ابزار را با همان آرگومان‌های غلط دوباره اجرا کرده است.
  • side_effect: یک ابزار تغییردهنده وضعیت (مانند Edit یا github-create_pull_request) با آرگومان‌های یکسان دوباره فراخوانی شده است.
  • idempotent: یک ابزار خواندنی یا اعلامی (مانند Read یا filesystem-list_directory) به‌طور مکرر فراخوانی شده است.
  • unclassified: ابزارهایی که اثر آن‌ها به محموله (Payload) بستگی دارد، مانند Bash ،PowerShell ،local-python-execute یا bigquery_run_query.

برای حفظ ثبات، این ابزار از پارامترهای منجمد شده phi = 0.514345 و N = 2 استفاده می‌کند. مدل Embedding به یک تگ گیت با یک SHA256 مانیفست متصل شده است. مقدار N = 2 در برابر مقادیر {2, 3, 5, inf} در محک RedundancyBench بررسی شد و ثابت کرد که از نظر امتیاز F1 بهینه است، زیرا با افزایش N، مقدار F1 به‌طور یکنواخت کاهش می‌یابد.

شش بار دنبال توکن‌های هدررفته در Claude Code گشتم. پنج بار نبودند.

داده‌ها: Claude Code در برابر Toolathlon

به نقل از مستندات پروژه، توسعه‌دهنده ابتدا برای اعتبارسنجی از RedundancyBench (که دارای داده‌های مرجع برچسب‌گذاری شده توسط انسان است) استفاده کرد. Clew به امتیاز F1 در سطح گام معادل ۰.۲۶۴۲ رسید که از بهترین روش «مدل‌به‌مثابه-داور» در مقاله مذکور با امتیاز ۰.۲۴۸۸ پیشی گرفت و دقت (Precision) آن ۰.۸۲۶ بود. اگرچه فراخوانی (Recall) پایین بود (۰.۱۵۷)، اما ابزار به گونه‌ای طراحی شده بود که یک الگوی محدود را به‌خوبی شناسایی کند و بقیه را نادیده بگیرد.

وقتی این ابزار در ۱۹ ژوئیه ۲۰۲۶ در یک اسکن کامل روی trace-commons (شامل ۲۸ جلسه واقعی و عمومی Claude Code) اجرا شد، نتایج برای کسانی که به دنبال اتلاف بودند ناامیدکننده بود. ۲۸ جلسه از ۲۸ جلسه بدون هیچ کرشی (Crash) پردازش شدند. تنها ۱۰ جلسه از ۲۸ جلسه به عنوان «اتلافی» علامت‌گذاری شدند، در حالی که ۱۸ جلسه هیچ اتلافی نداشتند. مجموع پتانسیل صرفه‌جویی در این جلسات اتلافی تنها بین ۱.۰۱ تا ۱۰.۱۲ دلار بود (بسته به اینکه ضربه به حافظه پنهان یا Cache-hit باشد یا نباشد). برای جلسه میانه (Median)، هیچ اتلافی شناسایی نشد.

اما تصویر در تحلیل Toolathlon کاملاً تغییر کرد. این محک شامل ۶۷۸۰ مسیر (Trajectory) در ۲۲ مدل پیشرو و ۳ بار اجرا است. از میان ۱۷۶۲۷۰ بازه ابزار، Clew تعداد ۸۰۴۲ جفت تکراری را شناسایی کرد:

  • ناحیه خاکستری: ۴۷٪ این موارد (۳۷۹۱ جفت) از نوع idempotent بودند که در آن‌ها اتلاف به این بستگی دارد که آیا وضعیت خارجی بین دو فراخوانی تغییر کرده است یا خیر.
  • اتلاف خالص: با حذف ناحیه خاکستری، ۴۲۵۱ جفت باقی ماند (۲.۴۱٪ از کل بازه‌ها). این نرخ تقریباً ۳ برابر بیشتر از جلسات Claude Code (۰.۸۰٪) است.
  • اثرات جانبی: این بخش شامل ۱۳۴۳ جفت side_effect بود، از جمله ۴۵۹ جفت تکراری email-send در مدل‌های پیشرو.

تراکم کاندیداهای اتلاف به‌شدت متغیر بود و از ۰.۱۵۷ تا ۸.۴۶۳ در هر مسیر نوسان داشت (یک تفاوت ۵۴ برابری بین مدل‌ها). با این حال، چون Toolathlon تنها برچسب‌های «پاس/فیل» را ارائه می‌دهد و داده‌های مرجع در سطح گام ندارد، توسعه‌دهنده هشدار داد که نمی‌توان ادعا کرد یک مدل بیشتر از دیگری اتلاف دارد، زیرا ترکیب تسک‌ها و نرخ موفقیت کنترل نشده‌اند.

شش بار دنبال توکن‌های هدررفته در Claude Code گشتم. پنج بار آنجا نبودند.

چرا بازخوانی فایل‌ها اتلاف نیست؟

یکی از نقاط عطف این پروژه، شکست تشخیص‌دهنده «بازخوانی فایل» بود. توسعه‌دهنده یک تشخیص‌دهنده را پیش‌ثبت کرد تا عامل‌هایی را بگیرند که یک فایل را دوبار می‌خوانند بدون اینکه بین این دو خواندن، هیچ ویرایشی صورت گیرد. این مورد مستلزم دو بازه Read روی یک مسیر کانونی (Canonical Path) بود، بدون اینکه ابزار نویسنده یا دستور Bash/PowerShell بین آن‌ها باشد.

فرآیند پیش‌ثبت سخت‌گیرانه است: پیش‌بینی‌ها و شرایط توقف باید قبل از اجرای نتایج در PR ارسال شوند. آستانه موفقیت K4، دقت ۷۰٪ روی یک نمونه تصادفی ۳۰ جفتی بود. در ۲۴ ژوئیه ۲۰۲۶، با استفاده از seed تصادفی ۴۲، ابزار ۳۰ جفت را از مجموع ۲۰۹ جفت Read شناسایی شده نمونه‌برداری کرد.

تنها ۱ جفت از ۳۰ جفت دارای آرگومان‌های یکسان بود. ۲۹ مورد دیگر در واقع بازخوانی بخش‌های مختلف یک فایل بودند (مثلاً offset=163, limit=100 و سپس offset=260, limit=40). این یک گردش کار نرمال است، نه اتلاف. آن یک مورد تطبیقی هم مربوط به یک PDF رمزگذاری‌شده بود که دوبار پیام خطای یکسان داد — یعنی یک تلاش مجدد برای ابزار شکست‌خورده، نه بازخوانی فایل.

با دقت سخت‌گیرانه ۰٪ (یا ۳.۳٪ اگر PDF شمرده شود)، این تشخیص‌دهنده آستانه ۷۰٪ را رد کرد. این قابلیت «کشته شد» و تابع find_reread_candidates قبل از انتشار نسخه ۰.۳.۰ از سورس کد حذف شد. یک تلاش بعدی با استفاده از گیت args_equal تنها ۶ جفت را در کل مجموعه یافت: سه مورد قبلاً توسط مسیر ساختاری/SHA256 گرفته شده بودند و سه مورد دیگر همان PDF تکراری بودند. این تشخیص‌دهنده برای همیشه حذف شد.

یافته اصلی: رابطه سطح ابزار و اتلاف

داده‌ها همبستگی مستقیمی را بین «سطح ابزارها» (Tool Surface Area) و «اتلاف» نشان می‌دهند. Claude Code از حدود ۲۰ ابزار استفاده می‌کند و بهینه می‌ماند، اما عامل‌های Toolathlon با ۵۲۳ ابزار متمایز کار می‌کنند و دچار تکرار می‌شوند. این یعنی اتلاف محصول ارکستراسیون ابزار است؛ وقتی مدل گزینه‌های جایگزین زیادی دارد، شروع به تکرار می‌کند. این موضوع در راستای تلاش‌های گسترده‌تر برای کاهش هزینه‌های عملیاتی است، مشابه آنچه در معماری TokenFold برای کاهش ۳۰ درصدی هزینه‌های عامل‌ها مشاهده شد.

در این مسیر، چندین فرضیه رد شد:

  • شکاف‌های نرمال‌سازی: آداپتورها قبل از هشینگ داده‌ها را یکسان می‌کنند، پس ترتیب کلیدهای JSON تأثیری نداشت.
  • تلاش‌های احمقانه (Dumb Retries): تقریباً غایب بودند؛ Claude Code معمولاً خطا را می‌خواند و آرگومان‌ها را تغییر می‌دهد.
  • پینگ‌پنگ خواندن-ویرایش: باز کردن یک فایل ۷۶ بار، به دلیل ویرایش بخش‌های مختلف، رفتار نرمال توسعه بود.
  • جلسات ناکارآمد: هیچ همبستگی بین جلساتی که توکن‌های بیشتری سوزانده بودند و جلساتی که تکرارهای بیشتری داشتند، یافت نشد.

تنها الگوی واقعی، «تجمع زمینه» (Context accumulation) بود. عملیات خواندن ۶۵ تا ۹۰ درصد توکن‌ها را می‌بلعد و یک فایل خوانده شده تا حدود ۱۵۲ نوبت در زمینه می‌ماند. اما تشخیص اینکه آیا این زمینه در نوبت ۱۴۰ هنوز لازم است یا خیر، یک قضاوت کیفی است، نه یک مقایسه هش قطعی. این چالش با رویکردهایی نظیر اولویت‌دهی به مستندات فنی برای بهینه‌سازی توکن‌ها را می‌توان مدیریت کرد تا از پراکندگی پروژه جلوگیری شود.

این تغییر دیدگاه، معیار بهره‌وری عامل‌ها را عوض می‌کند. کاهش تعداد ابزارهای در دسترس یا دسته‌بندی بهتر آن‌ها، بسیار مؤثرتر از این است که صرفاً در پرامپت به مدل بگوییم «بهینه‌تر باش».

برای توسعه‌دهندگان، این یعنی تمرکز باید روی مسیریابی ابزارها (Tool Routing) و جایگذاری حافظه پنهان (Cache) باشد. اگر عامل شما یک سطح ابزار MCP عظیم با بیش از ۱۰۰ ابزار از تامین‌کنندگان مختلف دارد، احتمالاً توکن‌های زیادی را روی فراخوانی‌های تکراری می‌سوزانید که یک مجموعه ابزار کوچک‌تر و منتخب از آن‌ها جلوگیری می‌کرد.

پیاده‌سازی و استفاده

Clew یک ابزار تشخیصی است، نه یک راهکار اصلاحی. این ابزار گزارش Markdown تولید می‌کند و تصمیم درباره تغییر پرامپت‌ها یا مسیریابی ابزارها بر عهده توسعه‌دهنده است. در حال حاضر از فرمت‌های JSONL جلسات CC، OpenTelemetry SDK-JSON، OpenInference (Phoenix / TRAIL)، Toolathlon و RedundancyBench پشتیبانی می‌کند. فرمت‌های Cursor و Codex هنوز در حال ارزیابی هستند.

برای تضمین یکپارچگی ابزار، ۲۳۹ تست همراه با CI برای هر PR وجود دارد. تغییر پارامتر phi مستلزم کالیبراسیون مستند است، زیرا به عنوان یک تست شکست‌خورده اعمال می‌شود.

برای شروع تشخیص روی لاگ‌های خود، می‌توانید ابزار را نصب کنید:
pip install "clew-custos[detect]"
و سپس اجرا کنید:
python -m clew analyze ~/.claude/projects//.jsonl --out report.md

(توجه: نام clew در PyPI مربوط به پروژه دیگری است؛ حتماً از clew-custos استفاده کنید). مخزن کامل در گیت‌هاب با نام https://github.com/JEONSEWON/Clew-by-Custos در دسترس است.

گام بعدی شما

  • اگر از سیستم‌های عامل‌محور با تعداد ابزار زیاد (بیش از ۵۰ مورد) استفاده می‌کنید، تعداد ابزارهای در دسترس مدل را کاهش دهید یا آن‌ها را در دسته‌های کوچک‌تر تقسیم کنید.
  • از ابزار Clew برای شناسایی الگوهای side_effect در لاگ‌های خود استفاده کنید تا متوجه شوید مدل کجاها در حال تکرار عملیات‌های تغییردهنده است.
  • استراتژی مسیریابی ابزارها را جایگزین دستورات کلی «بهینه‌سازی» در پرامپت سیستمی کنید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

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

این تحلیل با تکیه بر داده‌های تجربی نشان می‌دهد که مدیریت ابزارها (Orchestration) گلوگاه جدید بهره‌وری در AI Agents است. توسعه‌دهندگان باید برای کاهش هزینه‌ها، به جای مهندسی پرامپت، روی محدود کردن و دسته‌بندی ابزارها تمرکز کنند.

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

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

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

اتلاف توکن‌ها در عامل‌ها برخلاف باور رایج، نقص در استدلال مدل نیست، بلکه نتیجه مستقیم «سرگیجه ابزاری» است. این یافته نشان می‌دهد که افزایش تعداد ابزارهای در دسترس (Tool Surface) بدون یک لایه مسیریابی هوشمند، عملاً بهره‌وری مدل را کاهش می‌دهد. بنابراین، آینده توسعه عامل‌ها نه در مدل‌های بزرگتر، بلکه در معماری‌های «تخصیص ابزار» نهفته است.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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