فشردهسازی در Claude Messages API: دو مسیر بتا، بلوک امضاشده و ردیف صورتحساب
فشردهسازی یک مرحله نمونهبرداری اضافی هزینه دارد و بهطور خودکار ارزانتر نیست
Anthropic در 2026-02-05 API فشردهسازی را در حالت بتا عرضه کرد (پس از رسیدن به آستانه، یکبار خلاصه میکند) و در 2026-09-14 فشردهسازی بر اساس تقاضا را افزود: پارامتر سطحبالای compaction را بفرستید و API یک بلوک compaction امضاشده برمیگرداند. این دو مسیر نمیتوانند با هم در یک درخواست استفاده شوند؛ بلوک امضاشده باید نخستین مورد در messages باشد و مستندات، باقی گذاشتن پیامهای خلاصهشده پیش از آن را خطای 400 مینامند؛ usage.iterations تعیین میکند که هزینه واقعی فراخوانی چقدر بوده است؛ و مستندات همچنین نشان میدهند فشردهسازی چگونه با کش prompt کار میکند.
بهروزرسانی شده 2026-11-14
Claude، GPT و مدلهای چینی با یک کلید، با صورتحساب بهازای توکن؛ مدلهای قابل فراخوانی را در /models ببینید.
- صورتحساب بهازای توکن — نرخهای زنده در /models
- پرداخت با کارت (Visa / Mastercard)، Apple Pay، Google Pay یا رمزارز
- بهصورت خودخدمت: شارژ حساب و فعالسازی فوری
چهار نکته کلیدی
دو هدر بتای متفاوت
فشردهسازی آستانهای از compact-2026-01-12 استفاده میکند و درون context_management.edits با نوع ورودی compact_20260112 پیکربندی میشود؛ فشردهسازی بر اساس تقاضا از compact-2026-09-04 با پارامتر سطحبالای compaction استفاده میکند. عبارت رسمی: نمیتوانید `compaction` و `context_management` را در یک درخواست بفرستید.
محرک پیشفرض مسیر آستانه
جدول رسمی پارامترها: trigger بهطور پیشفرض {"type": "input_tokens", "value": 150000} است، input_tokens تنها نوع محرک پشتیبانیشده است و value باید حداقل 50,000 توکن باشد. پس از فعال شدن، API یک خلاصه مینویسد، آن را در یک بلوک compaction میگذارد و پاسخ را با زمینه فشردهشده ادامه میدهد.
بلوک امضاشده در جای نادرست یعنی 400
مسیر بر اساس تقاضا یک بلوک compaction امضاشده برمیگرداند. عبارت رسمی: اگر هر کدام جلوی بلوک باقی بمانند، درخواست خطای 400 برمیگرداند (`compaction_block_misplaced`). بلوک را اول در messages و بهجای نوبتهایی که خلاصه میکند بفرستید و آن را دقیقاً همانگونه که برگردانده شده، همراه با امضایش، نگه دارید. در مقابل، بلوک آستانهای بعد از محتوایی که خلاصه کرده مینشیند.
چرا جداگانه صورتحساب میشود
عبارت رسمی: فشردهسازی به یک مرحله نمونهبرداری اضافی نیاز دارد که در محدودیت نرخ درخواست و صورتحساب لحاظ میشود. پاسخ یک ورودی از نوع compaction به usage.iterations اضافه میکند؛ input_tokens و output_tokens سطحبالا آن را شامل نمیشوند، بنابراین ارائهدهنده از شما میخواهد برای هزینه واقعی فراخوانی، مقادیر را در iterations جمع بزنید.
این چیست
فشردهسازی سمت سرور: وقتی درخواست به آستانه پیکربندیشده شما میرسد، Claude خودش خلاصه گفتوگو را مینویسد و آن را درون یک بلوک compaction برمیگرداند؛ در درخواستهای بعدی، API هر بلوک محتوایی پیش از آن بلوک را حذف میکند و از خلاصه ادامه میدهد. مستندات آن را جایگزین کد خلاصهسازی سمت کلاینت معرفی میکند: خلاصه در سرور نوشته میشود، بنابراین به کد خلاصهسازی خودتان نیازی ندارید. مستندات از دو مورد استفاده نام میبرد: چت چندنوبتی که افراد مدتها آن را در یک پنجره ادامه میدهند، و promptهای وظیفهمحور که به کارهای پیگیری زیادی (اغلب استفاده از ابزار) نیاز دارند و ممکن است از پنجره زمینه فراتر بروند.
چه اتفاقی افتاد
هر دو تاریخ عیناً در یادداشتهای انتشار رسمی API آمدهاند. 2026-02-05: API مربوط به compaction وارد بتا شد و خلاصهسازی زمینه در سمت سرور را برای گفتگوهای عملاً بینهایت فراهم کرد، و این یادداشت میگوید که روی Opus 4.6 در دسترس بود. 2026-09-14: Messages API اکنون میتواند یک گفتگو را بهصورت درخواستی فشرده کند، در بتا با هدر بتای compact-2026-09-04؛ پارامتر سطح بالای compaction را بفرستید و API یک بلوک compaction امضاشده برمیگرداند، و در درخواستهای بعدی همان بلوک را بهجای آن پیامها بازمیفرستید. مسیر درخواستی یک بلوک امضاشده و هیچ پاسخی تولید نمیکند (stop_reason برابر compaction است)؛ آن درخواست میتواند در پسزمینه اجرا شود در حالی که گفتگو با تاریخچه کامل ادامه مییابد، و نوبتهای اخیر میتوانند پس از خلاصه بهصورت واژهبهواژه نگه داشته شوند.
خط زمانی
2026-02-05: یادداشتهای انتشار رسمی میگویند API compaction با خلاصهسازی زمینه سمت سرور برای مکالمات عملاً بینهایت وارد beta شد، و این مدخل بیان میکند که روی Opus 4.6 در دسترس بود - اولین beta compaction سمت سرور.
2026-09-14: همان صفحه compaction بهدرخواست را اضافه میکند (هدر beta با نام compact-2026-09-04): پارامتر compaction سطح بالا، یک بلوک امضاشده، خلاصهسازی پسزمینه و نوبتهای اخیر کلمهبهکلمه که پس از خلاصه نگه داشته میشوند.
مستندات رسمی .md و یادداشتهای انتشار API ثبت شدند، و هر پارامتر، مقدار پیشفرض و کد خطای نقلشده در بالا عیناً بررسی شد؛ فهرست رسمی پلتفرمهای پشتیبانیشده برای مسیر بهدرخواست، Google Cloud را نام میبرد و نه Amazon Bedrock، در حالی که فهرست مسیر آستانه Amazon Bedrock را نیز نام میبرد.
تأییدشده در برابر نیازمند توجه
تأییدشده در مستندات
عیناً در صفحات رسمی: trigger بهطور پیشفرض 150000 است و مقدار آن حداقل 50,000 است؛ input_tokens تنها نوع trigger پشتیبانیشده است؛ یک رشته instructions غیرخالی، prompt پیشفرض خلاصهسازی را بهطور کامل جایگزین میکند (تا 16,384 نویسه در مسیر بهدرخواست)؛ pause_after_compaction بهطور پیشفرض false است؛ compaction به یک مرحله نمونهگیری اضافی نیاز دارد که در محدودیت نرخ درخواست و صورتحساب لحاظ میشود؛ مصرف سطح بالا، تکرار compaction را مستثنی میکند و شما باید تکرارها را جمع کنید؛ نگه داشتن پیامهای خلاصهشده پیش از بلوک امضاشده، خطای 400 با کد compaction_block_misplaced است؛ compaction و context_management را نمیتوان در یک درخواست ترکیب کرد؛ نقطه پایانی شمارش توکن، پارامتر compaction را نادیده میگیرد؛ تصاویر، اسناد، بلوکهای container_upload و URLهای واکشیشده در محدوده خلاصهشده، وقتی بلوک جایگزین آنها شود، از بین میروند.
⚠️ نیازمند توجه
این ادعای رایج در جامعه را که compaction هر درخواست بعدی را گرانتر میکند نمیتوان بهعنوان واقعیت بیان کرد. ارائهدهنده میگوید compaction یک مرحله نمونهبرداری اضافه میکند که صورتحساب میشود، و در همان سند میگوید compaction با کش prompt خوب کار میکند، یک نقطه توقف cache_control را روی بلوک نشان میدهد و توصیه میکند نقطه توقفی در انتهای prompt سیستم قرار دهید تا کش prompt سیستم معتبر بماند؛ و همچنین میگوید اعمال دوباره یک بلوک compaction قبلی هیچ هزینه اضافی compaction ندارد. نسخه دقیق این است: compaction هزینه دارد، و اینکه بهصرفه باشد بستگی دارد به اینکه نقاط توقف کش شما کجا قرار دارند. همچنین: کل این قابلیت beta است؛ یک خلاصه ناموفق همچنان HTTP 200 با محتوای خالی برمیگرداند و آن فراخوانی همچنان صورتحساب میشود؛ یک مشکل موقت سرور، 529 overloaded_error قابل تلاش دوباره را با error.details.error_code compaction_unavailable برمیگرداند؛ و ارسال مقدار باقیمانده بودجه وظیفه همراه با compaction پاسخ 400 است.
شباهتها و تفاوتها
نقاط اشتراک
هر دو در سمت سرور خلاصهسازی میکنند، هر دو یک بلوک compaction برمیگردانند، هر دو از مدل موجود در درخواست شما برای نوشتن خلاصه استفاده میکنند (Current limitations میگوید گزینهای برای استفاده از مدلی متفاوت و ارزانتر وجود ندارد)، هر دو یک مرحله نمونهگیری اضافه میکنند که در محدودیت نرخ درخواست و صورتحساب محاسبه میشود، و هر دو هنوز بتا هستند.
تفاوتها
نحوه تحریک متفاوت است: مسیر آستانه در میانه درخواست فعال میشود و درجا compaction میکند، و میتواند در یک فراخوانی چندین بار فعال شود (با ابزارهای سرور، محرک در شروع هر تکرار نمونهگیری بررسی میشود)؛ مسیر درخواستی یک درخواست است که برای نوشتن خلاصه صرف میکنید و آن درخواست هیچ پاسخی تولید نمیکند. جایگذاری بلوک متفاوت است: بلوک آستانه پس از محتوایی میآید که خلاصه کرده است، و بلوک امضاشده جایگزین آن پیامها میشود. پلتفرمها نیز متفاوتاند: فهرست رسمی مسیر درخواستی شامل Google Cloud است و Amazon Bedrock را شامل نمیشود، در حالی که فهرست مسیر آستانه Amazon Bedrock را نیز نام میبرد.
نحوه استفاده از آن
پنج مرحله. 1) یک مسیر انتخاب کنید: threshold compaction اگر میخواهید API زمینه را داخل درخواستهای عادی مدیریت کند؛ پارامتر compaction اگر برنامهتان باید زمان وقوع آن را کنترل کند، نمیتواند هنگام نوشتن خلاصه مکث کند، یا باید نوبتهای اخیر و thinking آنها را نگه دارد. 2) هدر را درست ارسال کنید: حالت on-demand به compact-2026-09-04 روی درخواستی که خلاصه را میخواهد و روی هر درخواست بعدی که بلوک امضاشده را همراه دارد نیاز دارد؛ بدون آن، درخواست خلاصه با خطای 400 شکست میخورد که نام هدر بتای غایب را ذکر میکند، و درخواست بعدی که بلوک را همراه دارد با خطای اعتبارسنجی شکست میخورد که میگوید compaction یکی از انواع بلوک محتوای موردانتظار نیست، و هرگز به هدر اشاره نمیکند. 3) بلوک را دوباره در ابتدای messages قرار دهید و نوبتهای خلاصهشده را حذف کنید. 4) ردیابی هزینه را اصلاح کنید: بهجای خواندن فقط دو فیلد سطح بالا، usage.iterations را جمع بزنید. 5) حالت بدون خلاصه را مدیریت کنید: وقتی ابزارها تعریف شدهاند، مدل گاهی بهجای نوشتن خلاصه یک ابزار را فراخوانی میکند و بلوک با content: null برمیگردد؛ راهحل مستندشده دستورهایی است که صراحتاً فراخوانی ابزار را ممنوع میکنند.
در QCode
compaction یک پارامتر و هدر بتای Messages API است، نه سوئیچی که ما ارائه میدهیم. Anthropic این پارامتر را تفسیر میکند و ما از طرف آن هیچ وعدهای نمیدهیم. مدلهای فهرست رسمی پشتیبانی بتا — claude-opus-5، claude-sonnet-5، claude-fable-5، claude-fable-5-1، claude-opus-4-8 و claude-sonnet-4-6 — همگی در فهرست عمومی /models هستند (بررسیشده در 2026-10-20)؛ فهرست رسمی پشتیبانی همچنین claude-mythos-5 و claude-mythos-5-1 را نام میبرد. اینکه یک مدل از compaction پشتیبانی میکند یا نه، در فهرستهای رسمی Compatibility آمده است که فروشنده آنها را برای هر هدر بتا جداگانه نگه میدارد. بر اساس توکن صورتحساب میشود؛ نرخهای هر مدل در صفحه Models فهرست شدهاند.
پرسشهای متداول
آیا میتوان هر دو beta را همزمان فعال کرد؟
خیر. مستندات بیان میکند که compaction و context_management را نمیتوان در یک درخواست ارسال کرد، و اضافه میکند که compaction آستانهای (compact_20260112) نمیتواند روی درخواستی اجرا شود که بلوک امضاشده دارد. یکی از مسیرها را انتخاب کنید.
آیا فعالکردن compaction باعث صرفهجویی در هزینه میشود؟
بهخودیخود خیر. ارائهدهنده میگوید compaction به یک مرحله نمونهبرداری اضافی نیاز دارد که در محدودیتهای نرخ درخواست و صورتحساب لحاظ میشود، و اینکه input_tokens / output_tokens سطح بالا آن را شامل نمیشوند، بنابراین باید usage.iterations را جمع بزنید. چیزی که کوچک میشود زمینه درخواستهای بعدی است؛ اینکه هزینه خالص کمتر باشد بستگی دارد به نقاط توقف کش و به این واقعیت که اعمال دوباره یک بلوک قدیمی هیچ هزینه اضافی compaction ندارد.
بلوک امضاشده کجا قرار میگیرد؟
ابتدا در messages، با حذف نوبتهای خلاصهشده، و بلوک دقیقاً همانطور که برگردانده شده و همراه با امضایش نگه داشته میشود. مستندات میگوید اگر هر نوبتی پیش از بلوک باقی بماند، درخواست خطای 400 برمیگرداند (compaction_block_misplaced). هر درخواست بعدی که این بلوک را دارد باید هدر compact-2026-09-04 را داشته باشد.
چرا بلوک خالی برگشت؟
بیشتر اوقات به دلیل تعارض ابزار است: بخش محدودیتهای فعلی میگوید وقتی درخواست شامل ابزارها است، مدل گاهی در طول مرحله خلاصهسازی داخلی بهجای نوشتن خلاصه یک ابزار را فراخوانی میکند، و پاسخ سپس یک بلوک compaction با content: null حمل میکند. راهحل مستندشده، دستورالعملهایی است که صریحاً بگویند ابزارها را فراخوانی نکنید و فقط با متن پاسخ دهید. همچنین توجه کنید که خلاصه ناموفق همچنان HTTP 200 با محتوای خالی است، همچنان صورتحساب میشود و همچنان در usage.iterations گزارش میشود.
مدلهایی که از compaction پشتیبانی میکنند را کجا میتوانم پیدا کنم؟ این قابلیت را روی کدام مدلها میتوانم در QCode امتحان کنم؟
ارائهدهنده فهرستهای رسمی Compatibility را جداگانه برای هر هدر beta نگه میدارد: یکی برای مسیر بهدرخواست، یکی برای مسیر آستانه، که هر کدام شناسههای مدل را به همان شکلی که ارسال میکنید دارند. مدلهای فهرست رسمی پشتیبانی beta - claude-opus-5، claude-sonnet-5، claude-fable-5، claude-fable-5-1، claude-opus-4-8 و claude-sonnet-4-6 - همگی در فهرست عمومی /models هستند (بررسیشده در 2026-10-20)؛ فهرست رسمی پشتیبانی همچنین claude-mythos-5 و claude-mythos-5-1 را نام میبرد. compaction یک پارامتر API است، نه سوییچی که ما برای شما فعال کنیم؛ سطوح beta میتوانند تغییر کنند، و ما برای هیچیک از دو مسیر پشتیبانی بلندمدت وعده نمیدهیم.
آیا مدل ارزانتری میتواند خلاصه را بنویسد، یا آن را نادیده بگیرد؟
جایگزینی وجود ندارد. مستندات بیان میکند که مدل مشخصشده در درخواست شما برای خلاصهسازی استفاده میشود، و هیچ گزینهای برای استفاده از مدل متفاوت (برای مثال ارزانتر) برای خلاصه وجود ندارد. آنچه میتوانید تغییر دهید دستورالعملها (یک prompt خلاصهسازی سفارشی که بهطور کامل پیشفرض را جایگزین میکند) و آستانه فعالسازی است. کنترل کامل یعنی خاموشکردن compaction سمت سرور و خلاصهسازی در سمت کلاینت، که طراحی متفاوتی است.
منابع
صفحات رسمی فشردهسازی Anthropic: نمای کلی در https://platform.claude.com/docs/en/build-with-claude/compaction (جدول «Choose how to compact» و فهرست صفحه)، صفحه آستانه در https://platform.claude.com/docs/en/build-with-claude/compaction-threshold (Parameters / Understanding usage / Prompt caching / Current limitations) و صفحه فشردهسازی بر اساس تقاضا در https://platform.claude.com/docs/en/build-with-claude/compaction-on-demand (Request a summary / Errors / Count compaction usage)، بههمراه یادداشتهای انتشار API در https://platform.claude.com/docs/en/release-notes/api (مدخلهای 2026-02-05 و September 14, 2026 عیناً نقل شدهاند؛ همان روز در قالب .md رسمی دریافت شدند، HTTP 200).
پیش از تصمیمگیری برای compaction، حسابداری مصرف را درست کنید
سرصفحهها، جایگذاری بلوک و عبارتبندی صورتحساب در اینجا از مستندات رسمی بررسیشده در 2026-10-20 پیروی میکنند؛ این پارامتر توسط Anthropic تفسیر میشود و ما هیچ رفتاری را از طرف آن وعده نمیدهیم. سهمیهتان تمام شده؟ اگر پلن شخصی فعال دارید، بسته تقویتی بخرید؛ اگر ندارید، بستههای پرداخت بهازای مصرف را بخرید که از $4 برای سهمیه یکبارهای شروع میشوند که آن را ظرف 7 روز مصرف میکنید (شارژ حساب از $5 شروع میشود). قیمتها در /pricing و کاتالوگ فعلی در /models.
مطالب مرتبط
راهنمای کامل مهندسی زمینه 2026
فشردهسازی یکی از تکنیکهای مهندسی زمینه است؛ آن صفحه به روش میپردازد، نه به پارامترهای API.
افزودن و حذف ابزارها در میانه مکالمه
اینکه دستورالعملها و تغییرات ابزار در میانه مکالمه چگونه پس از خلاصهسازی حفظ میشوند، همانجا توضیح داده شده است.
«effort» زمانی پشتیبانی نمیشود که «thinking» غیرفعال باشد.
خانواده خطاهای بلوک thinking و تغییر تاریخچه: thinking نوبتهای نگهداشتهشده نیز باید سازگار بماند.
راهنمای پرداخت با رمزارز
نه رمزارز، 56 شبکه، کارمزد پلتفرم صفر برای اعتبار API کدنویسی با هوش مصنوعی.
این صفحه مستندات عمومی Anthropic را رونویسی میکند و وابسته به Anthropic نیست. نام پارامترها، مقادیر پیشفرض، کدهای خطا و جملات نقلشده مربوط به بررسی 2026-10-20 هستند؛ سطوح بتا بدون اطلاع تغییر میکنند. اینکه فشردهسازی بهصرفه است یا نه به مرحله نمونهبرداری اضافی و به موقعیت نقاط شکست کش بستگی دارد و مستندات چیزی فراتر از این نمیگویند. QCode دسترسی API را فراهم میکند و وضعیت بتای رابطهای Anthropic را تغییر نمیدهد.