هزینه قابلیت حافظه Claude چقدر است؟
قابلیت حافظه در Claude هزینه جداگانهای ندارد اما متنهای ذخیرهشده به عنوان توکن ورودی محاسبه میشوند. هزینه نهایی به میزان بازپخش متن و استفاده از prompt caching بستگی دارد.
آیا قابلیتهای حافظه Claude هزینه اضافی دارند؟
قابلیتهای حافظه Claude هزینه جداگانهای ندارند. نرخهای اعلامشده توسط Anthropic بر اساس هر میلیون توکن ورودی و هر میلیون توکن خروجی محاسبه میشوند و نرخهای اضافی برای prompt caching وجود دارد، اما هیچکدام تحت عنوان توکن حافظه نیستند. ذخیرهسازی خودِ حافظه در Claude API (رابط برنامهنویسی اپلیکیشن) هزینهای ندارد، زیرا ابزار حافظه در سمت کلاینت (client-side) قرار دارد و فایل روی فضای ذخیرهسازی متعلق به شما نگهداری میشود.
حافظه همچنان بر صورتحساب شما تأثیر میگذارد، زیرا یک واقعیتِ بهخاطر سپردهشده تنها زمانی پاسخ را تغییر میدهد که درون درخواستی باشد که Claude میخواند. بهخاطر سپردن به معنای ارسال مجدد است. آن متن به عنوان توکنهای ورودی دریافت شده و با نرخ ورودی عادی مدل محاسبه میشود. دو عدد تعیینکننده میزان هزینه هستند: تعداد توکنهای متنِ بهخاطر سپردهشده که در هر نوبت بازپخش میکنید، و اینکه آیا آن متن بازپخششده میتواند از prompt cache سرو شود یا خیر.
در اشتراک Pro یا Max، شما اصلاً بر اساس توکن صورتحساب دریافت نمیکنید، بنابراین حافظه از سهمیه استفاده (usage allowance) شما مصرف میکند، نه از پول شما. مکانیزم زیر یکسان است و فقط واحد تغییر میکند. آن سهمیه محدود است، بنابراین پیش از آنکه تصمیم بگیرید هر نوبت باید چه مقدار حافظه داشته باشد، دانستن هزینه Claude Pro و نقطهای که محدودیتهایش شما را متوقف میکند ارزشمند است. وضعیت Claude Enterprise متفاوت است، زیرا علاوه بر هزینه اشتراک، هر توکن را با نرخهای API محاسبه میکند، بنابراین یک بلوک حافظه بیشازحد بزرگ، دوباره به جای سهمیه، به هزینه نقدی تبدیل میشود. اگر هرس کردن حافظه، میزان استفاده شما را بهراحتی به زیر سقف یک طرح کوچکتر بازمیگرداند، تغییر از Max به Pro اقدامی است که ارزش انجام دادن دارد و این تغییر در پایان دورهای که قبلاً برای آن پرداخت کردهاید، اعمال میشود. اگر مقایسهای که در حال بررسی آن هستید بین ارائهدهندگان مختلف است و نه بین سطوح مختلف خودِ Anthropic، مقایسه طرحهای Claude با ChatGPT با قیمتهای فعلی نقطه شروع مناسبی است.
معنای «حافظه» در هر یک از سطوح Claude
سه محصول مجزا از این واژه استفاده میکنند و ترکیب کردن آنها با یکدیگر، دلیل اصلی سردرگمی در این پرسش است.
ابزار حافظه در Claude API. شما یک ورودی به آرایه tools اضافه میکنید و عملیات فایل را در کد خود پیادهسازی میکنید.
{"type": "memory_20250818", "name": "memory"}از اوت 2026، این ابزار در Messages API بدون نیاز به هدر بتا، در مدلهای Claude 4 و نسخههای بعدی بهصورت عمومی در دسترس است. این ابزار سمت کلاینت (client-side) است: Claude درخواستی برای عملیاتی مانند view /memories ارسال میکند، هندلر شما آن را روی فضای ذخیرهسازی تحت کنترل خود اجرا میکند و شما نتیجه را در یک بلوک tool_result بازمیگردانید. Anthropic هرگز فایل را نگه نمیدارد، بنابراین هزینه ذخیرهسازی به شما تحمیل نمیشود. در عوض، شما هزینه رفتوبرگشت (round trip) را پرداخت میکنید. تعریف ابزار در هر درخواست ارسال میشود و محتوای فایلی که بازگردانده میشود، از آن لحظه به بعد در گفتگو باقی میماند.
Anthropic بخش ثابت این سربار را منتشر میکند. در Claude Opus 5 با انتخاب ابزار auto، پرامپت سیستمِ استفاده از ابزار، طبق مستندات اوت 2026، برابر با 286 توکن است. این مقدار هر بار که هر ابزاری (حافظه یا غیره) وجود داشته باشد، در هر درخواست پرداخت میشود.
Claude Code. دو مکانیزم در ابتدای هر نشست (session) بارگذاری میشوند. فایلهای CLAUDE.md حاوی دستورالعملهایی هستند که شما مینویسید. حافظه خودکار (Auto memory) یادداشتهایی را نگه میدارد که Claude برای خودش در مسیر ~/.claude/projects/<project>/memory/ مینویسد. تنها 200 خط اول یا 25KB از MEMORY.md بارگذاری میشود (هر کدام زودتر برسد) و فایلهای موضوعی (topic files) کنار آن، بهجای بارگذاری در زمان شروع، در صورت نیاز خوانده میشوند. هر چیزی که در زمان شروع بارگذاری شود، بخشی از پیشوندی (prefix) میشود که تمام درخواستهای بعدی در آن نشست با خود حمل میکنند. نحوه بازیابی حافظه بین نشستها در Claude Code ترتیب بارگذاری فایلبهفایل را پوشش میدهد.
Claude در وب. در claude.ai، حافظه مجموعهای از ورودیهاست که Claude هنگام گفتگو با شما مینویسد و بهروزرسانی میکند و برای هر پروژه یک فضای حافظه مجزا وجود دارد. در بخش Settings > Memory، موارد ذخیرهشده فهرست میشوند و کلید موجود در آنجا امکان Pause memory یا Reset memory را فراهم میکند. این سطح از طریق اشتراک محاسبه میشود، بنابراین حافظه در اینجا از محدودیتهای استفاده (usage limits) شما کسر میکند.
چرا متن بهخاطر سپردهشده بهعنوان توکن ورودی محاسبه میشود
رابط برنامهنویسی Messages بدون وضعیت (stateless) است. این رابط هیچ چیزی را بین فراخوانیها ذخیره نمیکند، بنابراین کلاینت شما در هر نوبت کل گفتگو را ارسال میکند و مدل دوباره تمام آن را میخواند. حافظه (Memory) نیز از این قاعده مستثنی نیست. حافظه صرفاً یک بلوک متنی دیگر در همان درخواست است.
این تفکیک در شیء usage در هر پاسخ قابل مشاهده است.
"usage": {
"input_tokens": 412,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 18240,
"output_tokens": 236
}input_tokens فقط توکنهایی را میشمارد که نه از حافظه پنهان (cache) خوانده شدهاند و نه برای ایجاد آن استفاده شدهاند؛ که در عمل به معنای توکنهای پس از آخرین نقطه شکست حافظه پنهان (cache breakpoint) است. مجموع ورودی برای درخواست برابر است با cache_read_input_tokens به علاوه cache_creation_input_tokens به علاوه input_tokens. یک فایل حافظه که Claude سه نوبت پیش باز کرده است، در هر نوبت از آن زمان، در این مجموع قرار میگیرد. این فایل تا زمانی که پیشوند حافظه پنهان معتبر باشد تحت cache_read_input_tokens و در غیر این صورت تحت input_tokens قرار میگیرد. متن یکسان، دو قیمت بسیار متفاوت. توکنهای ورودی و خروجی قیمتهای متفاوتی دارند و حافظه همیشه فقط در سمت ورودی محاسبه میشود.
نحوه مشاهده این اعداد در استفاده شخصی
به هیچ عددی از پستهای وبلاگی، از جمله همین متن، اکتفا نکنید. بلوک حافظه خود را اندازه بگیرید. شمارش توکن رایگان است و محدودیت نرخ (rate limit) خاص خود را دارد، بنابراین این اندازهگیری هیچ هزینهای برای شما ندارد.
curl https://api.anthropic.com/v1/messages/count_tokens \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5",
"system": "You are a scientist",
"messages": [{"role": "user", "content": "Hello, Claude"}]
}'پاسخ یک عدد است، مانند { "input_tokens": 14 }. این کار را یکبار با چسباندن متن حافظه خود در فیلد system و یکبار بدون آن انجام دهید؛ اختلاف این دو، هزینهای است که آن حافظه در هر نوبت برای شما دارد. دو نکته را در نظر داشته باشید. این شمارش یک تخمین است و توکنهای اضافی که Anthropic برای بهینهسازیهای سیستمی خود اضافه میکند، برای شما محاسبه نمیشود. همچنین، شمارش را با مدلی که واقعاً قصد اجرای آن را دارید انجام دهید، زیرا Claude 4.7 و نسخههای پس از آن از توکنایزر جدیدتری استفاده میکنند که برای متن یکسان، تقریباً 30 درصد توکن بیشتری تولید میکند.
در داخل Claude Code، همین پرسش بدون نیاز به هیچ دستور curl پاسخ داده میشود.
- دستور
/contextنشان میدهد که در حال حاضر چه چیزی بارگذاری شده است (شامل فایلهای حافظه)، بنابراین میتوانید پیش از تایپ هر چیزی، سهم آنها از پنجره کانتکست را ببینید. - دستور
/memoryفایلهای CLAUDE.md شما را فهرست کرده و پوشه حافظه خودکار را باز میکند. - دستور
/usageمجموع مقادیر نشست (session)، شامل خواندن و نوشتن در کش را چاپ میکند. - خط وضعیت (status line) میتواند میزان استفاده از پنجره کانتکست را بهطور مداوم نمایش دهد تا رشد آن در حین وقوع قابل مشاهده باشد.
بلاک نشست /usage به این شکل است:
Total cost: $0.55
Total duration (API): 6m 20s
Total duration (wall): 6h 33m 10s
Total code changes: 0 lines added, 0 lines removed
Usage by model:
claude-sonnet-4-6: 1.2k input, 5.3k output, 940.0k cache read, 50.0k cache write ($0.55)خط آخر را با دقت بخوانید. عدد 940.0k در بخش cache read، نشاندهنده کل گفتگو و حافظه است که در هر نوبت با نرخ کش مجدداً ارسال میشود. عدد 1.2k در بخش input، تنها بخشی است که جدید بوده است. Claude Code این مبلغ دلاری را بهصورت محلی و بر اساس قیمتهای لیست محاسبه میکند، بنابراین تخفیفهای شما را در نظر نمیگیرد و ممکن است با صورتحساب نهایی متفاوت باشد. صفحه Usage در Claude Console مرجع اصلی و معتبر برای این اعداد است.
سپس مقایسه را مستقیماً انجام دهید. پرسش آغازین یکسانی را در دو نشست جدید مطرح کنید؛ یکی در حالت عادی و دیگری با خاموش بودن حافظه خودکار.
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claudeدستور /context را در هر کدام اجرا کرده و ورودی فایلهای حافظه را مقایسه کنید. اختلاف این دو، هزینهای است که حافظه انباشتهشده شما در ابتدای هر نشست، پیش از انجام هر کاری، به شما تحمیل میکند. مطالعه تحلیل کامل نحوه مصرف توکن در Claude Code در کنار این دو عدد، بسیار مفید است.
هزینه بازخوانی حافظه به ازای هر میلیون توکن چقدر است؟
کش کردن پرامپت (Prompt caching) دلیل آن است که یک بلوک حافظه مشابه، در یک نوبت میتواند ده برابر نوبت دیگر هزینه داشته باشد. Anthropic نرخهای کش را به صورت مضربی از قیمت پایه ورودی هر مدل منتشر میکند، بنابراین این نسبت حتی با تغییر قیمتهای دلاری نیز ثابت میماند.
The data behind this chart
[
{
"label": "Base input",
"price_multiple": 1
},
{
"label": "5 minute cache write",
"price_multiple": 1.25
},
{
"label": "1 hour cache write",
"price_multiple": 2
},
{
"label": "Cache read",
"price_multiple": 0.1
}
]هزینه خواندن از کش برابر با 0.1 برابر قیمت پایه ورودی است. نوشتن یک ورودی با طول عمر 5 دقیقه، 1.25 برابر قیمت پایه و طول عمر 1 ساعت، 2 برابر قیمت پایه هزینه دارد. Anthropic نقطه سربهسر را به وضوح بیان میکند: کش کردن پس از یک بار خواندن در بازه 5 دقیقه، یا پس از دو بار خواندن در بازه 1 ساعت، صرفه اقتصادی پیدا میکند. نقطه سربهسر برای کش کردن پرامپت محاسباتی است که باید پیش از تصمیمگیری درباره محل قرارگیری حافظه انجام دهید.
این ضرایب، تعداد بازخوانی را به یک مسئله محاسباتی تبدیل میکنند. بلوک بعدی، محاسباتی است که بر اساس ضرایب منتشر شده در بالا به دست آمده و اندازهگیری یک workload واقعی نیست. این بخش، هزینه یک بلوک حافظه را در یک نشست 100 نوبتی به سه روش قیمتگذاری میکند که به صورت تعداد توکنهای معادل با نرخ پایه ورودی بیان شده است.
The data behind this chart
[
{
"label": "4,000 tokens, never cached",
"base_rate_equivalent_tokens": "400,000"
},
{
"label": "4,000 tokens, 1 write and 99 reads",
"base_rate_equivalent_tokens": "44,600"
},
{
"label": "1,000 tokens, 1 write and 99 reads",
"base_rate_equivalent_tokens": "11,150"
}
]یک بلوک حافظه 4,000 توکنی که در هر 100 نوبت از کش استفاده نمیکند، هزینهای معادل 400,000 توکن با نرخ پایه دارد. همان بلوک با یک بار نوشتن در کش 5 دقیقهای و 99 بار خواندن از آن، هزینهای معادل 44,600 دارد. اگر آن را به یکچهارم اندازه اصلی کاهش دهید و کش کردن را حفظ کنید، هزینه آن معادل 11,150 خواهد بود. قابلیت مذکور در طول این 3 ردیف تغییری نکرده است؛ تنها رفتار بازخوانی تغییر کرده است. اینها همچنان تعداد توکن هستند، نه مبلغ پول، و تبدیل تعداد توکن به رقمی در صورتحساب ماهانه تنها با یک ضرب در نرخ هر میلیون توکن مدل شما انجام میشود. آن نرخ توسط مدلی که اجرا میکنید تعیین میشود، بنابراین اگر قرار است ایجنت روی Claude Fable 5 اجرا شود، از نرخهای منتشر شده به ازای هر میلیون توکن و کاربردهای مناسب آن شروع کنید.
ردیف دوم فرض میکند که هر یک از 99 درخواست بعدی، در حالی میرسند که ورودی کش هنوز فعال است. این همان فرضی است که باعث اشتباه در محاسبه اکثر صورتحسابهای واقعی میشود.
چرا هزینه یک پرسش مشابه پس از یک وقفه افزایش مییابد؟
هر ورودی در حافظه کش دارای یک طول عمر مشخص است و زمانسنج آن از لحظه نوشتن یا خواندن درخواست آغاز میشود. مقدار پیشفرض این زمان 5 دقیقه است. گزینه 1 ساعته، هزینهای معادل 2 برابر نوشتن (که در بالا ذکر شد) دارد. در Claude Code، طول عمر کش در اشتراکهای عادی یک ساعت است، اما به محض استفاده از اعتبار مصرفی (usage credits)، این زمان به 5 دقیقه کاهش مییابد؛ در استفاده از API key یا ارائهدهندگان ابری نیز مقدار پیشفرض 5 دقیقه است. تنظیم ENABLE_PROMPT_CACHING_1H=1 باعث میشود طول عمر یکساعته حتی هنگام استفاده از اعتبار مصرفی نیز حفظ شود.
بنابراین، یک پرسش تکخطی که در جلسهای که هنگام ناهار باز گذاشتهاید تایپ میکنید، گران تمام میشود؛ زیرا ورودی کش در مدتی که دور بودهاید منقضی شده است. کل پیشوند (prefix)، شامل حافظه، دوباره با نرخ ورودی پایه پردازش شده و مجدداً در کش نوشته میشود. طول این وقفه تعیینکننده آن قیمت است.
شما میتوانید به جای حدس و گمان، این موضوع را تأیید کنید. در طرحهای Pro، Max، Team یا Enterprise، تفکیک /usage هر رفتاری را که مسئول 10 درصد یا بیشتر از مصرف اخیر باشد مشخص میکند و هم کانتکست طولانی و هم خطاهای کش (cache misses) با نام در آنجا ظاهر میشوند. در API، افزایش cache_creation_input_tokens به اندازه کامل پیشوند خود را در اولین درخواست پس از یک دوره سکوت مشاهده کنید.
چه چیزی بهطور نامحسوس کش را باطل میکند
پیشوند کششده دارای ترتیب است: ابزارها، سپس سیستم، و در نهایت پیامها. تغییر در هر سطح، همان سطح و تمام سطوح پس از آن را باطل میکند. ویرایش تعریف یک ابزار، کل کش را دور میریزد. ویرایش پرامپت سیستم، کش سیستم و پیامها را دور میریزد.
این همان دامی است که برای هر کسی که حافظه را در پرامپت سیستم نگه میدارد و همزمان با یادگیری ایجنت آن را بازنویسی میکند، وجود دارد. هر بازنویسی، نسخه کششده تمام موارد پس از خود را حذف میکند، بنابراین درخواست بعدی دوباره هزینه کامل نوشتن را متحمل میشود. مطالب ثابت را در ابتدا نگه دارید و آنها را تغییر ندهید، و اجازه دهید مطالب متغیر در انتهای لیست پیامها قرار بگیرند که باطل کردن آنها هزینه کمی دارد.
یک خطای دوم و نامحسوستر نیز وجود دارد. هر مدل حداقل پیشوند قابل کش شدن دارد: 512 توکن در Claude Opus 5، 1,024 توکن در Claude Sonnet 5، و 4,096 توکن در Claude Haiku 4.5، طبق مستندات منتشر شده در اوت 2026. مستندات Anthropic بهصراحت درباره آنچه زیر این مقدار رخ میدهد میگوید: «هر درخواستی برای کش کردن کمتر از این تعداد توکن، بدون کش شدن پردازش میشود و هیچ خطایی بازگردانده نمیشود.» بنابراین، یک فایل حافظه کوچک که با cache_control علامتگذاری شده است، در عمل هیچ کاری انجام نمیدهد و این اتفاق بهصورت بیصدا رخ میدهد. نشانهای که میتوانید مشاهده کنید این است که cache_creation_input_tokens روی 0 باقی میماند، در حالی که پرامپت شما بهوضوح حاوی یک breakpoint است.
حذف حافظهای که دیگر کارایی ندارد
هر خط از حافظه در هر دور از گفتگو، توکن مصرف میکند؛ بنابراین برای هر خط باید پرسید که آیا اخیراً تغییری در پاسخها ایجاد کرده است یا خیر. Claude Code محدودیتها را ملموس میکند. سعی کنید فایل CLAUDE.md را زیر 200 خط نگه دارید، زیرا فایلهای طولانیتر توکن بیشتری مصرف کرده و دقت Claude در پیروی از دستورالعملها را کاهش میدهند. MEMORY.md در زمان بارگذاری به 200 خط اول یا 25KB محدود میشود و هر چیزی فراتر از این حد در شروع نشست بعدی حذف میگردد؛ بنابراین یک ایندکس بیشازحد بزرگ، هم توکن هدر میدهد و هم اطلاعات مفیدی ارائه نمیکند.
دو عادت به کوچک نگهداشتن آن کمک میکند. جزئیات را از ایندکس خارج کرده و به فایلهای موضوعی منتقل کنید که Claude بهجای زمان راهاندازی، در صورت نیاز آنها را میخواند. دستورالعملهای گردش کار را از CLAUDE.md خارج کرده و به بخش مهارتها (skills) منتقل کنید که فقط هنگام فراخوانی بارگذاری میشوند. برای فایلهای حافظهای که از قبل دارای frontmatter هستند، Claude Code زمان نوشتن را در فیلد modified بهصورت یک timestamp با فرمت ISO 8601 در نسخه 2.1.214 یا بالاتر ثبت میکند و این timestamp سریعترین راه برای شناسایی اطلاعاتی است که اعتبار خود را از دست دادهاند. هرس کردن حافظه قدیمی عامل فرآیند بازبینی را با جزئیات بیشتری بررسی میکند.
زمانی که بازیابی اطلاعات بر بارگذاری کامل در کانتکست ارجحیت دارد
ابزار حافظه (memory tool) برای پشتیبانی از بازیابی اطلاعات در لحظه (just-in-time) طراحی شده است. بهجای بارگذاری همه چیز در ابتدای کار، ایجنت آنچه را میآموزد ثبت میکند و تنها زمانی که یک وظیفه به فایل نیاز داشته باشد، آن را میخواند. این رویکرد محاسبات را تغییر میدهد؛ زیرا خواندن یک فایل تنها یک بار هزینه توکن دارد و سپس در پیشوند کششده (cached prefix) باقی میماند، در حالی که یک بلوک که بهطور دائم بارگذاری شده، در هر نوبت هزینه مصرف میکند.
یک قاعده ساده از دو نمودار بالا استخراج میشود. متنی که تقریباً در هر نوبت استفاده میشود، متعلق به پیشوند کششده و پایدار است. متنی که در یک نوبت از هر بیست نوبت استفاده میشود، باید پشت یک فراخوانی view قرار گیرد. نقطه سربهسر (break-even) با تعداد دفعات تکرار شما تغییر میکند، نه با تعرفههای Anthropic.
در API، شما همچنین میتوانید به پلتفرم اجازه دهید مکالمه را کوتاه کند. ویرایش کانتکست (Context editing)، نتایج قدیمی ابزارها را پس از عبور مکالمه از آستانهای که شما تعیین کردهاید، پاک میکند.
{
"edits": [
{
"type": "clear_tool_uses_20250919",
"trigger": {"type": "input_tokens", "value": 30000},
"keep": {"type": "tool_uses", "value": 3},
"clear_at_least": {"type": "input_tokens", "value": 5000}
}
]
}مقادیر پیشفرض شامل آستانه 100,000 توکن ورودی و نگهداری 3 استفاده از ابزار است. پیش از فعالسازی، تعامل با کش را مطالعه کنید: پاکسازی محتوا باعث ابطال پیشوند کششده در نقطه پاکسازی میشود، بنابراین در درخواست بعدی هزینه نوشتن در کش را پرداخت خواهید کرد. این دقیقاً همان دلیلی است که clear_at_least برای آن وجود دارد. این قابلیت پاکسازی را تا زمانی که صرفهجویی حاصل از آن، هزینه نوشتن مجدد را توجیه کند، به تعویق میاندازد. پاسخ سیستم دقیقاً گزارش میدهد که چه اتفاقی تحت context_management رخ داده است، که با cleared_tool_uses و cleared_input_tokens همراه است؛ بنابراین این تبادل بهجای تئوری بودن، قابل اندازهگیری است. مدیریت پنجره کانتکست در Claude Code همین ایده را در یک نشست کدنویسی اعمال میکند.
چه مواردی ردیف هزینه جداگانه دارند
حافظه (Memory) هزینه مستقلی ندارد، اما برخی قابلیتها واقعاً هزینهبر هستند و آگاهی از آنها اهمیت دارد. اینها نرخهای منتشرشده Claude API تا اوت 2026 هستند. برخی عملیات هیچ هزینهای ندارند، اما هیچ سطح رایگانی برای Claude API وجود ندارد و تنها یک اعتبار اولیه هنگام ثبتنام ارائه میشود؛ بنابراین تمام موارد زیر از همان اولین درخواست، هزینه واقعی محسوب میشوند.
- جستجوی وب: 10 دلار به ازای هر 1,000 جستجو، بهعلاوه هزینه توکن معمولی برای تمام محتوایی که جستجو در context قرار میدهد.
- اجرای کد: 1,550 ساعت رایگان برای هر سازمان در هر ماه، و پس از آن 0.05 دلار به ازای هر ساعت برای هر container. این قابلیت هنگام استفاده همزمان با جستجوی وب یا دریافت وب (web fetch) رایگان است.
- ایجنتهای مدیریتشده Claude: زمان اجرای نشست (session runtime) با نرخ 0.08 دلار به ازای هر ساعت-نشست، علاوه بر هزینههای معمول توکن.
- دریافت وب (Web fetch): هزینه اضافی ندارد، تنها هزینه توکن محتوای دریافتشده محاسبه میشود.
حافظه در هیچکدام از این ردیفها قرار نمیگیرد. حافظه در شمارش توکنهای ورودی شما ظاهر میشود؛ دقیقاً همانجایی که میتوانید آن را اندازهگیری کنید و دقیقاً همانجایی که هرس کردن (pruning) و کش کردن (caching) میتوانند هزینهاش را کاهش دهند. اگر در حال بودجهبندی برای ایجنتی هستید که بهصورت خودکار روی یک سرور مجازی (VPS) اجرا میشود، کنترلهای هزینه برای یک ایجنت هوش مصنوعی روی VPS گام بعدی است که باید پیادهسازی کنید؛ زیرا ایجنتی که فایل حافظه آن بهطور مداوم رشد میکند و هرس نمیشود، هر هفته بدون اینکه گزارشی از افزایش هزینه دریافت کنید، گرانتر میشود.
FAQ
آیا برای قابلیتهای حافظه (memory) در Claude هزینه جداگانهای دریافت میشود؟
خیر. لیست قیمت Anthropic شامل نرخهایی برای هر میلیون توکن ورودی، هر میلیون توکن خروجی و ضرایب prompt caching است و هیچ ردیفی برای حافظه ندارد. در API مدل Claude، ابزار حافظه سمت کلاینت (client-side) است؛ بنابراین فایلها روی فضای ذخیرهسازی که از قبل بابت آن هزینه پرداخت میکنید، قرار دارند. آنچه حافظه به درخواستها اضافه میکند، توکنهای ورودی است که در هر نوبت (turn) که این دادهها را حمل میکنند، با نرخ عادی ورودی مدل محاسبه میشوند.
آیا خاموش کردن حافظه باعث ارزانتر شدن Claude میشود؟
این کار تعداد توکنهای هر درخواست را کاهش میدهد که منجر به کاهش هزینه هر درخواست میشود. اینکه آیا این کار در مجموع باعث صرفهجویی در هزینهها میشود یا خیر، به اتفاقات بعدی بستگی دارد. اگر Claude مجبور باشد سه فایل را دوباره بخواند و دو سوال از شما بپرسد تا آنچه را که حافظه قبلاً در اختیار داشت بازسازی کند، هزینه آن توکنها از هزینه حافظه بیشتر خواهد بود. بهجای حدس زدن، اندازهگیری کنید: دستور /context را در یک نشست با حافظه خودکار فعال و در نشستی که با CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 شروع شده اجرا کنید، سپس مجموع توکنهای مصرفشده برای یک کار مشابه را مقایسه کنید.
چرا با اینکه تغییری ایجاد نکردم، میزان مصرف من افزایش یافته است؟
شایعترین علت، cache miss پس از یک وقفه است. ورودیهای کش بهطور پیشفرض 5 دقیقه و در تنظیمات گسترده یک ساعت عمر میکنند؛ بنابراین اولین درخواست پس از یک وقفه، کل پیشوند (prefix) شما را با نرخ پایه ورودی پردازش کرده و دوباره مینویسد. دومین علت رایج، ویرایش پیشوند است: تغییر تعریف یک ابزار، کل کش را باطل میکند و تغییر system prompt، کش سیستم و پیامها را باطل میکند. در طرحهای اشتراکی، بخش /usage زمانی که این رفتار 10 درصد یا بیشتر از مصرف اخیر را تشکیل دهد، آن را گزارش میکند.
آیا حافظه باید در system prompt قرار بگیرد یا پشت یک فراخوانی ابزار (tool call)؟
وقتی تقریباً در هر نوبت از حافظه استفاده میکنید، آن را در system prompt قرار دهید؛ زیرا در این صورت در پیشوند کششده قرار میگیرد و با نرخ خواندن کش محاسبه میشود. وقتی فقط برخی از کارها به آن نیاز دارند، آن را پشت یک فراخوانی view قرار دهید؛ زیرا فایلی که یکبار خوانده میشود، توکنهایش را فقط یکبار مصرف میکند، نه در هر نوبت. عدد تعیینکننده، تعداد دفعات تکرار (replay count) شماست و شیء usage این عدد را مستقیماً به شما میدهد.
آیا قابلیتهای حافظه در محدودیتهای مصرف اشتراک لحاظ میشوند؟
بله، بهطور غیرمستقیم؛ زیرا محدودیتهای اشتراک توسط توکنهایی که هر درخواست حمل میکند، مصرف میشوند. مستندات راهنمای Anthropic بیان میکند که گفتگوهای طولانیتر که مدیریت خودکار context را فعال میکنند، بخش بیشتری از محدودیت مصرف شما را اشغال میکنند. حافظه باعث میشود هر درخواست کمی طولانیتر شود و یک نشست طولانی، آن طول را در هر نوبت تکرار میکند. نحوه عملکرد واقعی محدودیتهای مصرف Claude توضیح میدهد که چه چیزی و در چه زمانی ریست میشود.