قبل از اولین کلمهٔ تو، ۳۳ هزار توکن رفته
خلاصهٔ کاملتر
روش کار ساده و قابلتکراره: نویسندهها یه پراکسی لاگگیر بین هر ابزار و اندپوینت مدل گذاشتن که دو چیز رو ثبت میکنه — دقیقاً همون JSONای که ابزار فرستاده (بلوکهای سیستم، اسکیمای ابزارها و پیامها) و بلوک usageای که API برگردونده (توکن ورودی، نوشتن کش، خوندن کش و خروجی). هر دو ابزار روی یه مدل پین شدن، با پوشهٔ کانفیگ تازه، بدون MCP، بدون فایل دستورالعمل و با فضای کاری خالی، تا سربار ثابت جدا از بقیهٔ متغیرها اندازهگیری بشه.
اولین تسک فقط میگفت «دقیقاً جواب بده: OK» — ۲۲ کاراکتر. Claude Code برای همین حدود ۳۲٬۸۰۰ توکن فرستاد و OpenCode حدود ۶٬۹۰۰. سهم اصلی با اسکیمای ابزارهاست: ۲۷ ابزار در برابر ۱۰ ابزار، یعنی حدود ۲۴ هزار از ۳۳ هزار توکن اولی و حدود ۴٬۸۰۰ از ۶٬۹۰۰ دومی. وقتی ابزارها رو کامل خاموش کردن، خود پرامپت سیستم هم حدود ۶٫۵ هزار توکن در برابر ۲ هزار توکن بود؛ باقیمانده به گفتهٔ نویسندهها «دکترین رفتاری»ه: قواعد لحن، راهنمای ایمنی و توضیح محیط.
اما تو تسک چندمرحلهای (بنویس، اجرا کن، تست کن، درست کن) انتظار برعکس شد: Claude Code کل کار رو تو یه رفتوبرگشت موازی بستهبندی کرد و با ۳ درخواست حدود ۱۲۱ هزار توکن مصرف کرد، در حالی که OpenCode هر نوبت یه ابزار صدا زد و با ۹ درخواست به حدود ۱۳۲ هزار رسید. چون سربار پایه هر بار دوباره فرستاده میشه، مصرف کل تقریباً برابره با سربار ضربدر تعداد درخواستها. جالب اینکه با تکرار همین تسک روی یه مدل جدیدتر، تعداد درخواستهای Claude Code دو برابر شد و به حدود ۲۹۸ هزار توکن در برابر ۱۳۳ هزار رسید — یعنی مزیت بستهبندی رفتار مدله، نه ویژگی ثابت ابزار.
بعد سراغ ضریبدهندهها رفتن. یه فایل دستورالعمل ۷۲ کیلوبایتی از یه مخزن واقعی به هر درخواست هر دو ابزار کمی بیش از ۲۰ هزار توکن اضافه کرد؛ با این تفاوت مکانیکی که نسخهٔ تستشدهٔ Claude Code فایل AGENTS.md رو کاملاً نادیده گرفت و فقط با نام CLAUDE.md خوندش، در حالی که OpenCode هر دو اسم رو میخونه — پس بررسی کن ابزارت واقعاً کدوم اسم رو قبول داره، چون فایل نادیدهگرفتهشده بیصداست. هر سرور MCP کوچیک هم حدود ۱٬۰۰۰ تا ۱٬۴۰۰ توکن به هر درخواست اضافه میکنه و قالبهای فریمورکهای ورکفلو، چون وارد تاریخچهٔ گفتگو میشن، تو هر درخواست بعدی دوباره حمل میشن.
بزرگترین ضریب اما زیرایجنتهان: همون کاری که مستقیم ۱۲۱ هزار توکن خرج داشت، وقتی بین دو زیرایجنت موازی پخش شد به ۵۱۳ هزار توکن رسید — ضریب ۴٫۲ برابر. دلیلش اینه که هر زیرایجنت خودش یه ایجنت مستقله و تو هر نوبت پرامپت سیستم و ابزارهای خودش رو از نو میخونه، پس فناوت تعداد «سربارهای کامل در جریان» رو چند برابر میکنه. البته والد فقط نتیجهٔ برگشتی هر زیرایجنت رو میبلعه، نه کل رونوشتش. تو یه پیکربندی واقعی هم اولین درخواست، قبل از اینکه کاربر حتی یه کلمه تایپ کنه، بین ۷۵ تا ۹۰ هزار توکن اندازهگیری شد.
بخش تیزبینانهٔ تحقیق دربارهٔ کشِ پرامپته. کش واحدها رو عوض میکنه ولی نتیجه رو نه: پیلود یک بار با ضریب ۱٫۲۵ برابر نوشته میشه و بعد با یکدهم قیمت خونده میشه، اما سه هزینه از تخفیف جون سالم به در میبرن — نوشتن دوباره بعد از هر وقفهٔ طولانیتر از TTL، خوندن ضربدر تعداد درخواست، و مصرف پنجرهٔ کانتکست که اصلاً مشمول تخفیف نمیشه. نویسندهها با هشکردن بلوکهای سیستم و آرایهٔ ابزارها نشون دادن پیشوند درخواست OpenCode در همهٔ اجراها بایتبهبایت یکسان میمونه، ولی Claude Code تو هر سشن سه کلاس درخواست متفاوت تولید میکنه و وسط کار پیشوند کاملش رو دوباره مینویسه: روی یه تسک یکسان ۵۳٬۸۳۹ توکن نوشتن کش در برابر ۱٬۰۰۳ توکن، و بسته به دمای کش، اختلافی بین ۵٫۹ تا ۵۴ برابر.
ایراد منصفانهای که خودشون طرح میکنن اینه که «صورتحساب چیزی دربارهٔ کیفیت کار نمیگه». برای همین تسکها طوری انتخاب شدن که کیفیت متغیر نباشه: هر دو ابزار همهٔ تسکهای نمرهدار رو درست تموم کردن. تو یه بنچمارک جدا با مجموعه تست از پیش نوشتهشده و هششده (که هیچ ابزاری نمیتونست خودش رو نمره بده) هر دو پنج از پنج قبول شدن، ولی میانگین هزینهٔ هر اجرای موفق حدود ۲۶۸ هزار توکن برای Claude Code و ۷۲ هزار برای OpenCode بود و OpenCode هر لِین رو تو یکی دو دقیقه تموم کرد در برابر چهار تا هشت دقیقه. خود نویسندهها تأکید میکنن این یه برش اوله نه حکم نهایی، و ممکنه امکانات ارکستراسیون و ایجنتهای پسزمینهٔ ابزار سنگینتر روی کارهای واقعاً سخت توکنش رو در بیاره؛ ولی دو چیز به هر تعریفی اتلافه: بازنویسی پیشوند بایتیکسان وسط سشن، و فایل دستورالعملی که ابزار بیصدا نادیدهش میگیره.
نکات کلیدی:
- سربار ثابت برای یه درخواست ساده: حدود ۳۳ هزار توکن در برابر حدود ۷ هزار، که سهم عمدهاش اسکیمای ابزارهاست
- مصرف کل تقریباً برابره با سربار پایه ضربدر تعداد درخواستها؛ ابزاری که بستهبندی میکنه میتونه جبران کنه، ولی این رفتار به مدل وابستهست
- فایل دستورالعمل ۷۲ کیلوبایتی به هر درخواست هر دو ابزار بیش از ۲۰ هزار توکن اضافه کرد
- فناوت به دو زیرایجنت، همون کار ۱۲۱ هزار توکنی رو به ۵۱۳ هزار توکن رسوند
- پیشوند بایتپایدار یعنی کش واقعاً کار میکنه؛ بازنویسی وسط سشن با نرخ گرانتر حساب میشه و هیچ کیفیتی نمیخره
- مصرف پنجرهٔ کانتکست اصلاً مشمول تخفیف کش نیست؛ سربار سنگین یعنی جای کمتر برای خود کد
- کیفیت خروجی تو تسکهای سنجیدهشده یکسان بود، پس اختلاف توکن هزینهٔ همون نتیجهست




