محاسبه هزینه توکن در Claude و Claude Code
هر توکن Claude معادل 3.5 کاراکتر است. در این مطلب بررسی میکنیم چرا هر نوبت Claude Code تا 80000 توکن مصرف میکند و چرا 5 دقیقه وقفه، هزینه اجرای بعدی را 5 برابر افزایش میدهد.
توکنها در Claude چه هستند؟
توکن واحد متنی است که Claude آن را میخواند و مینویسد؛ قطعهای از یک کلمه که تقریباً معادل 3.5 کاراکتر انگلیسی است. این عدد از واژهنامه خود Anthropic استخراج شده و با احتساب فاصلهها و علائم نگارشی، به بیش از یک توکن برای هر کلمه میرسد؛ بنابراین هزار کلمه متن معمولی، بهراحتی بیش از 1300 توکن است. حجم کد در هر خط بیشتر است: آکولادها، عملگرها، آندرلاینها و تورفتگیها نسبت به متن انگلیسی به توکنهای بیشتری در هر کاراکتر تقسیم میشوند و یک فایل سورس چند صد خطی معمولاً چندین هزار توکن وزن دارد. فایلی با 2000 خط که ایجنت تصمیم به خواندن آن میگیرد، پیش از آنکه حتی یک خط کد جدید نوشته شود، خریدی پنجرقمی از توکن محسوب میشود.
دو نکته درباره توکنایزرها کاربران را به اشتباه میاندازد. نخست اینکه آنها مختص هر مدل هستند. تا ژوئیه 2026، مدلهای Opus 4.7 و نسخههای بعد از آن، Sonnet 5 و Fable 5 از توکنایزر جدیدتری استفاده میکنند که برای متن یکسان، تقریباً 30% توکن بیشتری نسبت به مدلهای قدیمیتر Claude تولید میکند (میزان دقیق افزایش بسته به محتوا متفاوت است)؛ این موضوع هر بودجهبندی توکنی را تغییر میدهد، حتی اگر قیمت هر توکن با آن افزایش نیافته باشد. دوم اینکه tiktoken، کتابخانهای که هر پست وبلاگی به آن ارجاع میدهد، توکنایزر OpenAI است و در متنهای معمولی حدود 15 تا 20 درصد و در کدها بیشتر از آن، تعداد توکنهای Claude را کمتر از مقدار واقعی نشان میدهد. تنها شمارش قابلاعتماد، اندپوینت count_tokens است که در ادامه به آن پرداخته شده است.
چرا هزینه جلسات کدنویسی شما اینگونه محاسبه میشود
هر صورتحساب Claude، چه فاکتور API باشد و چه محدودیت اشتراک، به یک معیار واحد وابسته است: توکنهای ورودی و توکنهای خروجی. صفحه قیمتگذاری این موضوع را ساده نشان میدهد: مبلغی مشخص به ازای هر میلیون توکن ورودی و مبلغی دیگر به ازای هر میلیون توکن خروجی. اما آنچه در این صفحه گفته نمیشود این است که در یک جلسه کدنویسی عاملی (agentic)، بخش ورودی بسیار سریعتر از حد تصور شما افزایش مییابد؛ زیرا کل تاریخچه گفتگو در هر نوبت دوباره ارسال میشود. من 15 سال است که زیرساختهای مبتنی بر متریک (metered) میفروشم و توکنها اولین معیاری هستند که اکثر مشتریان واقعاً نمیدانند چه چیزی باعث افزایش مصرف آن میشود. این درسِ خواندنِ کنتور است: چه چیزی در یک جلسه عاملی به عنوان ورودی و خروجی محسوب میشود، چرا حلقه ارسال مجدد (resend loop) تا این حد هزینهبر است، چرا کش کردن پرامپت (prompt caching) محاسبات را تغییر میدهد و کدام اهرمها واقعاً روی این اعداد تأثیرگذار هستند.
همه چیز ورودی است: آنچه کنتور واقعاً محاسبه میکند
افراد تصور میکنند که هزینه کدی که Claude مینویسد را میپردازند. در یک نشست عاملمحور (agentic session)، این تنها بخش کوچکی از هزینههاست. توکنهای ورودی، که نرخ ارزانتری دارند اما حجم آنها بسیار بالاتر است، شامل موارد زیر هستند:
- پرامپت سیستم. دستورالعملهای اجرایی خود Claude Code، بهعلاوه
CLAUDE.mdو فایلهای حافظه شما، که در ابتدای نشست بارگذاری شده و در هر درخواست بعدی حضور دارند. - تعاریف ابزارها. هر طرحواره (schema) ابزاری که عامل ممکن است فراخوانی کند. هر سرور MCP که متصل میکنید به این سربار ثابت میافزاید؛ اگرچه Claude Code اکنون بهطور پیشفرض تعاریف کامل ابزارهای MCP را به تعویق میاندازد، بنابراین تا زمانی که ابزاری برای اولین بار استفاده نشود، فقط نام ابزارها در کانتکست قرار میگیرد که این موضوع هزینه را کاهش میدهد اما حذف نمیکند.
- هر فایلی که عامل میخواند. یک
Readاز یک فایل منبع، کل محتوای آن را وارد کانتکست میکند و همانجا باقی میماند. - هر نتیجه ابزار. اجرای تستها، خروجی grep، دادههای ترمینال، لاگهای بیلد؛ همه اینها بهعنوان توکنهای ورودی بازگردانده میشوند. یک مجموعه تست ناموفق که 8000 خط چاپ میکند، هزینهای معادل یک کتاب کوچک برای شما فاکتور میکند.
- کل مکالمه تا این لحظه، که در هر نوبت دوباره ارسال میشود. این مورد شایسته بخش اختصاصی خود است.
هزینههای ارسال مجدد در هر مرحله
API مدل Claude بدون وضعیت (stateless) است. این مدل هیچگونه اطلاعاتی از نشست شما بین درخواستها ذخیره نمیکند؛ در واقع هیچ بخشی از سیستم این کار را انجام نمیدهد. بنابراین در مرحله 2، کلاینت باید مرحله 1، پاسخ آن و پیام جدید شما را ارسال کند. در مرحله 50، کلاینت باید مراحل 1 تا 49، تمام فایلهای خواندهشده، نتایج ابزارها، تمام diffها و در نهایت مرحله 50 را مجدداً ارسال کند. مدل هر بار کل تاریخچه گفتگو را بازخوانی میکند و تمام این توکنهای بازخوانیشده به عنوان ورودی (input) محاسبه و هزینهشان دریافت میشود.
نتیجه این است که هزینه هر مرحله تقریباً به صورت خطی با طول نشست افزایش مییابد و هزینه کل نشست به صورت درجه دوم (quadratic) رشد میکند. پیامی که در مرحله 3 نیم سنت هزینه داشت، ممکن است در مرحله 60 برای همان پرسش یکخطی، بیست برابر گرانتر تمام شود، زیرا باید بار شصت مرحله قبلی را حمل کند. این تنها واقعیتی است که اکثر تیکتهای «چرا صورتحساب من اینقدر زیاد است» را توضیح میدهد. این موضوع یک ویژگی خاص در Claude نیست؛ هر محصول LLM که «حالتدار» (stateful) به نظر میرسد، در واقع یک API بدون وضعیت است که در لایه زیرین خود یک حلقه ارسال مجدد (resend loop) دارد.
خروجی: آنچه میبینید، به علاوه تفکری که نمیبینید
توکنهای خروجی گرانترین بخش هستند و نرخ آنها در تمامی مدلهای فعلی، پنج برابر نرخ ورودی است (تا ژوئیه 2026، این نرخ برای Opus 4.8 برابر 5 دلار در برابر 25 دلار، برای Sonnet 5 برابر 3 دلار در برابر 15 دلار و برای Haiku 4.5 برابر 1 دلار در برابر 5 دلار است). خروجی شامل متن و کدی است که Claude تولید میکند، به علاوه توکنهای تفکر: استدلالهای داخلی که مدل پیش از پاسخدهی انجام میدهد. دو واقعیت در اینجا اهمیت دارند. تفکر با نرخ خروجی محاسبه میشود و در max_tokens لحاظ میگردد؛ یک پاسخ API که با stop_reason: "max_tokens" خاتمه مییابد و پاسخ ناقص، اغلب به این معناست که بودجه پیش از رسیدن به پاسخ، توسط فرآیند تفکر مصرف شده است. در مدلهای فعلی، خلاصه استدلال ممکن است اصلاً نمایش داده نشود؛ مدلهای Opus 4.8، Sonnet 5 و Fable 5 بهطور پیشفرض آن را حذف میکنند، اما تفکر همچنان رخ داده و هزینه آن محاسبه میشود. نامرئی بودن به معنای رایگان بودن نیست.
ابزار Claude Code بهطور پیشفرض تفکر گسترده را فعال میکند، زیرا این کار بهطور قابلاندازهگیری کیفیت کارهای چندمرحلهای را بهبود میبخشد و بودجه پیشفرض میتواند به دهها هزار توکن در هر درخواست برسد. برای وظایف سادهتر، میتوانید این مقدار را کاهش دهید: سطح تلاش را با /effort یا در /model پایین بیاورید، یا تنظیمات تفکر را در /config تغییر دهید. این یک اهرم واقعی برای مدیریت هزینه است، نه یک باور خرافی.
کش کردن پرامپت، محاسبات هزینه را تغییر میدهد
کش کردن پرامپت (Prompt caching) دلیلی است که حلقه ارسال مجدد، باعث ورشکستگی کاربران نمیشود. API میتواند پیشوند ثابتی از پرامپت، پرامپت سیستم، تعاریف ابزارها و تاریخچه گفتگو را کش کند و در درخواست بعدی، آن را با کسری از قیمت ارائه دهد. از ژوئیه 2026، ضرایب به این صورت هستند: هزینه نوشتن در کش 1.25 برابر نرخ پایه ورودی (و 2 برابر برای نسخه 1 ساعته) است، در حالی که هزینه خواندن از کش 0.1 برابر است. نوشتن با نرخ بالاتر محاسبه میشود، اما خواندن شامل 90 درصد تخفیف است. یک بار خواندن، هزینه اضافه نوشتن 5 دقیقهای را بهطور کامل جبران میکند.
Claude Code مدیریت کش را برای شما انجام میدهد و در یک نشست فعال، تقریباً تمام آن ارسال مجدد حجیم از طریق کش پاسخ داده میشود. اما کش پیشفرض فقط پنج دقیقه پس از آخرین استفاده باقی میماند. اگر برای صرف قهوه زمان زیادی صرف کنید، برگردید و پیامی بفرستید، کش منقضی شده است و کل پیشوند انباشتهشده بهجای خواندن با نرخ 0.1، با نرخ 1.25 بازنویسی میشود. در یک نشست 150K توکنی، آن یک نوبت سرد، هزینهای بیش از دهها نوبت گرم دارد. این نتیجهای خلاف شهود است که باید آن را درک کرد: ریتمِ «وقفه و سپس ادامه» میتواند هزینهای بیشتر از کار مداوم داشته باشد، زیرا هر وقفه طولانیتر از TTL، نوبت بعدی شما را از یک خواندن ارزان به یک بازنویسی گران تبدیل میکند. بهصورت متمرکز کار کنید؛ یک نشست بزرگ را با ارسال پیامهای پراکنده در فواصل ده دقیقهای هدر ندهید.
اگر در حال فراخوانی API از برنامه شخصی خود روی یک VPS هستید، هیچکدام از این مزایا بهصورت خودکار در دسترس نیست. اشتباه رایج و خودساخته در این حالت، درج یک timestamp یا request ID در پرامپت سیستم است که باعث میشود بایتهای پیشوند در هر درخواست تغییر کنند و کش بهطور نامحسوس غیرفعال شود. نشانه این اتفاق، صفر ماندن usage.cache_read_input_tokens در فراخوانیهایی است که در ظاهر یکسان به نظر میرسند.
فرمول، به همراه یک مثال عملی
به ادعای کسانی که صرفاً میگویند «هزینه هر نشست X دلار است» توجه نکنید. هزینه نشستها تا دو مرتبه بزرگی متغیر است. آنچه اعتبار دارد، این فرمول است:
turn cost = (uncached input x base input price)
+ (cache writes x 1.25 x base input price)
+ (cache reads x 0.10 x base input price)
+ (output incl. thinking x output price)
session cost = sum over all turnsمثال عملی برای Claude Opus 4.8 که تا ژوئیه 2026، هزینه آن 5 دلار به ازای هر میلیون توکن ورودی و 25 دلار به ازای هر میلیون توکن خروجی است. یک نوبت (turn) در میانه نشست با 80,000 توکن کانتکست انباشته: 75,000 توکن خواندهشده از کش، 3,000 توکن تازه نوشتهشده در کش، 2,000 توکن ورودی جدید بدون کش، و 1,500 توکن خروجی شامل بخش تفکر (thinking).
- خواندن از کش: 75,000 × 0.50 دلار/میلیون = 0.0375 دلار
- نوشتن در کش: 3,000 × 6.25 دلار/میلیون = 0.019 دلار
- ورودی بدون کش: 2,000 × 5 دلار/میلیون = 0.010 دلار
- خروجی: 1,500 × 25 دلار/میلیون = 0.0375 دلار
تقریباً 0.10 دلار برای این نوبت؛ پنجاه نوبت مشابه، حدود 5 دلار هزینه دارد. حال همان نوبت را پس از انقضای کش در نظر بگیرید: کل 80,000 توکن با نرخ 6.25 دلار/میلیون دوباره نوشته میشوند که پیش از محاسبه خروجی، 0.50 دلار هزینه دارد؛ یعنی تقریباً پنج برابر کل هزینه نوبتِ گرم (warm turn) برای همان کار یکسان. این شکاف، تمام ماجرای کشینگ را در یک عدد خلاصه میکند. همین چهار خط، تنها روش صادقانه برای مقایسه فروشندگان است، زیرا نرخهای اسمی، خواندن از کش و هزینه تفکر را کاملاً نادیده میگیرند و اجرای آنها روی سه پروژه واقعی نشان میدهد که هزینه Claude در کجا بالاتر یا پایینتر از OpenAI قرار میگیرد.
اگر به جای یک نوبت، به دنبال درک واحد صورتحساب هستید، اینکه یک میلیون توکن به چند صفحه، فایل و دلار تبدیل میشود همان محاسبات را یک سطح بالاتر انجام میدهد. برای کالیبراسیون (و نه پیشبینی): ارقام منتشرشده توسط Anthropic برای استقرار Claude Code در سازمانها، تا ژوئیه 2026، بهطور میانگین حدود 13 دلار به ازای هر توسعهدهنده در هر روز فعال، و 150 تا 250 دلار در ماه است، که 90 درصد کاربران هزینهای کمتر از 30 دلار در روز دارند. میزان مصرف شما تابعی از انتخاب مدل، بهداشت نشست (session hygiene) و اندازه کدبیس است؛ دقیقاً به همین دلیل است که اهرمهای زیر اهمیت دارند.
مشاهده میزان استفاده شخصی
در Claude Code، دستور /usage است (/cost نیز همچنان کار میکند و یک alias محسوب میشود). بلوک Session در بالا، آمار توکنها و تخمین هزینه محاسبهشده بهصورت محلی برای نشست فعلی را نمایش میدهد؛ در طرحهای اشتراکی، همین صفحه نوارهای محدودیت طرح و تفکیک استفادههای اخیر بر اساس مهارتها، زیر-عاملها (subagents)، پلاگینها و سرورهای MCP مجزا را نشان میدهد. برای صورتحساب معتبر در حسابهای API، صفحه usage در Claude Console منبع اصلی است و عدد نمایشدادهشده در CLI صرفاً یک تخمین است. دستور /context یک شبکه رنگی از آنچه فضای context window را اشغال کرده، شامل system prompt، ابزارها، تعاریف MCP، فایلها و تاریخچه را ترسیم میکند و سریعترین راه برای شناسایی یک CLAUDE.md حجیم یا یک سرور MCP پرحرف است؛ برای مشاهده تفکیک کامل هر آیتم، فلگ all را ارسال کنید.
از طریق API، هر پاسخ دقیقاً به شما میگوید چه اتفاقی افتاده است:
response = client.messages.create(model="claude-sonnet-5", max_tokens=2048,
messages=messages)
u = response.usage
total_prompt = u.input_tokens + u.cache_creation_input_tokens + u.cache_read_input_tokens
print(f"uncached={u.input_tokens} written={u.cache_creation_input_tokens} "
f"read={u.cache_read_input_tokens} output={u.output_tokens}")توجه داشته باشید که input_tokens فقط باقیمانده بدون کش (uncached) است؛ اندازه واقعی prompt مجموع هر سه فیلد ورودی است. عاملی که یک ساعت اجرا شده و input_tokens: 4000 را نشان میدهد ارزان نیست؛ 200,000 توکن دیگر از طریق کش سرو شدهاند. برای تخمین پیش از ارسال، از endpoint شمارش توکن استفاده کنید؛ فراخوانی آن رایگان است، محدودیت نرخ (rate limit) جداگانهای دارد و با tokenizer هر مدلی که نام ببرید شمارش را انجام میدهد (نتیجه را بهعنوان یک تخمین نزدیک در نظر بگیرید؛ صورتحساب نهایی بر اساس درخواست واقعی صادر میشود):
count = client.messages.count_tokens(model="claude-sonnet-5",
messages=[{"role": "user", "content": big_file}])
print(count.input_tokens)به دلیل ذکر شده در بالا، هرگز tiktoken را انجام ندهید.
طرحهای اشتراکی در مقابل پرداخت به میزان مصرف
مکانیسمهای این راهنما در همه جا یکسان هستند؛ تنها نحوه تسویه حساب متفاوت است. با داشتن یک API key، شرکت Anthropic هزینه را به صورت پرداخت به میزان مصرف (pay-as-you-go) و بر اساس هر توکن، طبق نرخهای اعلامشده محاسبه میکند؛ تمام اعدادی که در بالا ذکر شد، هزینههای واقعی هستند. این کنتور زودتر از آنچه اکثر افراد انتظار دارند شروع به کار میکند، زیرا هیچ سطح رایگان (free tier) دائمی برای بازگشت به آن وجود ندارد؛ تنها یک اعتبار اولیه کوچک هنگام ثبتنام و تعداد انگشتشماری endpoint وجود دارد که هزینهای ندارند، که این همان چیزی است که یک حساب API جدید پیش از ثبت کارت بانکی دریافت میکند. در اشتراک Claude (نسخههای Pro، Max، Team و Enterprise)، استفاده از Claude Code از سهمیه موجود در طرح شما کسر میشود: تا ژوئیه 2026، این سهمیه شامل یک بازه زمانی متغیر پنجساعته به اضافه یک بازه هفتگی است که بین مدلها و چت claude.ai مشترک است و رقم /usage دلار صرفاً جنبه اطلاعرسانی دارد و نه یک صورتحساب. اگر سقف بازه زمانی را پر کنید، پیام "You've hit your session limit" یا "You've hit your weekly limit" را به همراه زمان بازنشانی مشاهده خواهید کرد و تغییر مدل با /model دسترسی شما را بازیابی نمیکند، زیرا این بازهها بین مدلها مشترک هستند. این بازهها به حساب کاربری متصل هستند، نه به کلاینتی که در آن مشغول کار هستید؛ دانستن این موضوع زمانی که هنوز در حال بررسی آنچه به صورت بومی روی Linux اجرا میشود و اینکه هر طرح چه سطحی را پوشش میدهد هستید، مفید است. اینکه کدامیک از دو بازه زمانی را تمام کردهاید، تعیین میکند که چه مدت باید منتظر بمانید و در این فاصله چه کاری انجام دهید؛ بنابراین دانستن گزینههای موجود هنگام رسیدن به محدودیت در میانه کار ارزشمند است. طرحها میتوانند به صورت اختیاری اعتبار مصرف (usage credits) را فعال کنند که با /usage-credits مدیریت میشود تا بتوانید پس از رسیدن به سقف، همچنان از سرویس استفاده کنید. من عمداً سهمیههای طرحها را ذکر نمیکنم: آنها متغیرترین اعداد در کل این مبحث هستند، بنابراین به claude.com/pricing و نوارهای /usage در حساب خود مراجعه کنید. مکانیسمهای توکن همچنان در اشتراک اهمیت دارند؛ یک نشست غیربهینه، سهمیه بازه زمانی شما را دقیقاً به همان شکلی مصرف میکند که دلار را مصرف میکرد. برای بخش اشتراک، ببینید کدام طرح Claude با میزان استفاده شما متناسب است.
اهرمهایی که واقعاً کارساز هستند
- محدوده خواندن ایجنت را تعیین کنید. دستور «رفع باگ اعتبارسنجی در
auth.py» تنها یک فایل را میخواند؛ اما «بهبود این کدبیس» چهل فایل را.CLAUDE.mdرا سبک نگه دارید؛ چون در هر نشست بارگذاری میشود، پس فقط موارد ضروری را در آن قرار دهید و دستورالعملهای مختص به هر گردشکار را به مهارتهایی منتقل کنید که در صورت نیاز فراخوانی میشوند. - شفاف و فشرده باشید.
/clearبین وظایف نامرتبط، باعث میشود کانتکست قدیمی در هر پیام بعدی دوباره ارسال و محاسبه هزینه شود. در یک وظیفه طولانی،/compact Focus on the failing tests and the diffتاریخچه را خلاصه میکند و شما را از منحنی رشد نمایی هزینهها دور نگه میدارد. - مدل را متناسب با نیاز انتخاب کنید. مدل Sonnet اکثر کارهای کدنویسی را انجام میدهد که تا ژوئیه 2026 با قیمت 2 دلار برای ورودی و 10 دلار برای خروجی به ازای هر میلیون توکن (با قیمت پایه 3 دلار و 15 دلار، در مقایسه با Opus که 5 دلار و 25 دلار است) ارائه میشود، و Haiku با قیمت 1 دلار و 5 دلار ابزار مناسبی برای کارهای مکانیکی زیر-ایجنت مانند بررسی لاگهاست. مدل Fable 5 در انتهای دیگر طیف با قیمت 10 دلار و 50 دلار قرار دارد که دو برابر Opus است، بنابراین پیش از آنکه آن را برای کارهای روتین انتخاب کنید، ارزش دارد بدانید کدام کارها واقعاً چنین هزینهای را توجیه میکنند.
/modelدر میان نشست قابل تغییر است. - خروجیهای پرحجم را پیشفیلتر کنید. استفاده از یک hook که خروجی تست را پیش از مشاهده توسط Claude به خطاهای آن محدود میکند، 20000 توکن نتیجه ابزار را به 300 توکن کاهش میدهد و این کار در هر ارسال مجدد آن مرحله نیز تکرار میشود.
- کارهای غیرتعاملی را دستهای انجام دهید. برای خطلولههای API شخصی، دستهبندی، بازبینی انبوه و کارهای شبانه، Batches API همان مدلها را با 50 درصد تخفیف در ازای تحویل غیرهمزمان (asynchronous) اجرا میکند.
- به زمان انقضای کش احترام بگذارید. در بازههای زمانی پیوسته کار کنید. یک نشست Claude Code در tmux روی یک VPS در زمان بیکاری هزینهای ندارد، توکنها فقط هنگام اجرای یک مرحله مصرف میشوند، اما زمان بیکاری باعث از دست رفتن کش گرم میشود و مرحله بعدی هزینه بازنویسی مجدد را تحمیل میکند.
FAQ
یک نشست کدنویسی در Claude Code چند توکن مصرف میکند؟
عدد ثابتی وجود ندارد. یک نوبت (turn) در میانهٔ نشست، پس از انباشته شدن فایلها و تاریخچه، معمولاً دهها هزار توکنِ prompt به همراه دارد و یک نشست کاری ممکن است به میلیونها توکن برسد که بخش عمدهٔ آن از طریق cache و با یکدهم نرخ پایه محاسبه میشود. برای برآورد، ارقام سازمانی منتشرشده توسط Anthropic تا ژوئیه 2026، بهطور میانگین حدود 13 دلار برای هر توسعهدهنده در هر روز فعال است و 90 درصد کاربران زیر 30 دلار هزینه دارند. دستور /usage را در نشست خود اجرا کنید؛ پنج دقیقه مشاهدهٔ آن، دقیقتر از هر میانگین منتشرشدهای است.
آیا توکنهای تفکر (thinking tokens) حتی زمانی که آنها را نمیبینم هزینه دارند؟
بله. توکنهای تفکر با نرخ توکنهای خروجی (که نرخ گرانتری است) محاسبه میشوند و در سقف max_tokens لحاظ میگردند. مدلهای فعلی حتی زمانی که رابط کاربری، خلاصهٔ استدلال را نمایش نمیدهد، هزینهٔ آنها را محاسبه میکنند. اگر پاسخ با stop_reason: "max_tokens" پیش از پایان متنِ قابلمشاهده قطع شد، احتمالاً بودجه توسط بخش تفکر مصرف شده است. در Claude Code، برای وظایفی که به استدلال عمیق نیاز ندارند، سطح تلاش را با /effort کاهش دهید.
چرا یک نشست طولانی در Claude Code به ازای هر پیام گرانتر میشود؟
زیرا API فاقد وضعیت (stateless) است: هر نوبت، کل مکالمه، تمام فایلهای خواندهشده، نتایج ابزارها و تبادلات قبلی را دوباره بهعنوان ورودی (input) ارسال میکند؛ بنابراین نوبت 50، نوبتهای 1 تا 49 را نیز به عنوان بار اضافی حمل میکند. قابلیت Prompt caching پیشوند تکراری را با حدود یکدهم قیمت ورودی پایه ارائه میدهد، اما خودِ پیشوند دائماً در حال رشد است و هر وقفهٔ طولانیتر از TTL کش، باعث میشود نوبت بعدی با قیمت کامل محاسبه شود. دستور /compact تاریخچه را کوچک میکند و /clear آن را بازنشانی مینماید.
چگونه مصرف توکن و هزینهٔ Claude خود را بررسی کنم؟
در Claude Code، دستور /usage آمار توکنهای نشست، برآورد هزینهٔ محلی و نوارهای محدودیت اشتراک را نشان میدهد (/cost یک نام مستعار برای آن است)؛ /context نشان میدهد چه چیزی در حال پر کردن پنجرهٔ context است. برای صورتحساب رسمی API، از صفحهٔ usage در Claude Console استفاده کنید. در کد خود، response.usage را بخوانید؛ مجموع input_tokens، cache_creation_input_tokens و cache_read_input_tokens اندازهٔ واقعی prompt را به دست میدهد. برای برآورد پیشدستانه از endpoint مربوط به count_tokens استفاده کنید و هرگز از tiktoken برای این کار استفاده نکنید.