تتغير آليات التخزين المؤقت، وفئات التسعير، ومدد TTL، وعتبات الحد الأدنى للرموز مع تحديث Anthropic للمنصّة. لا تعتمد على أي أرقام محدّدة من أدلة الطرف الثالث. تحقّق دائمًا من وثائق التخزين المؤقت للمطالبة الرسمية ومن صفحة النماذج والتسعير للقيم الحالية.
اقتصاديات التخزين المؤقت للمطالبة
في كل مرة تستدعي فيها واجهة Claude API، تدفع ثمن كل رمز إدخال ترسله — بما في ذلك مطالبة النظام، وتعريفات أدواتك، وأي سياق تحقنه. إن كنت تُجري استدعاءات كثيرة بالبادئة الكبيرة نفسها، فأنت تدفع لمعالجة تلك البادئة من الصفر في كل مرة على حدة.
التخزين المؤقت للمطالبة يغيّر ذلك. تضع علامةً على جزء ثابت من مطالبتك كقابل للتخزين المؤقت. الاستدعاء الأول يعالجه ويخزّنه. والاستدعاءات اللاحقة التي تصيب الذاكرة المؤقتة تتخطّى تلك المعالجة — وتدفع جزءًا يسيرًا من المعدّل العادي لتلك الرموز.
التوفير ليس تجميليًا. بالنسبة للتطبيقات ذات مطالبات النظام الكبيرة الثابتة أو السياق الثقيل، يمكن للتخزين المؤقت أن يحوّل اقتصاديات ميزة ما من "مكلِفة جدًا للإطلاق" إلى "تكاد تكون مجانية في التشغيل".
النموذج الذهني: بادئة ثابتة، لاحقة متقلّبة
فكّر في كل استدعاء API كجزأين:
البادئة الثابتة — محتوى لا يتغير عبر الاستدعاءات. هنا ينطبق التخزين المؤقت. أمثلة:
- مطالبة النظام الخاصة بك
- تعريفات الأدوات
- مستند مرجعي كبير أو قاعدة شيفرة تحقنها في كل استدعاء
- كتلة طويلة من أمثلة قليلة اللقطات (few-shot)
اللاحقة المتقلّبة — محتوى يتغير مع كل استدعاء. هنا لا ينطبق التخزين المؤقت. أمثلة:
- رسالة المستخدم الحالية
- بيانات لحظية تحقنها مع كل طلب
- سجل المحادثة الذي ينمو مع كل دور
القاعدة بسيطة: هيكِل مطالباتك بحيث يأتي المحتوى الثابت أولًا، والمحتوى المتغير أخيرًا. نقاط فصل الذاكرة المؤقتة موضعية — كل ما يسبق نقطة الفصل المُعلَّمة مؤهَّل للتخزين المؤقت؛ وكل ما يليها ليس كذلك.
إن وضعت محتوى ديناميكيًا قبل محتوى ثابت، فإنك تكسر الذاكرة المؤقتة، لأن البادئة تتغير مع كل طلب.
كيف يعمل نموذج التكلفة
يُدخل التخزين المؤقت للمطالبة تقسيمًا ثلاثيًا لكيفية تسعير رموز الإدخال:
| نوع الرمز | متى يحدث | التكلفة مقارنةً بالإدخال العادي |
|---|---|---|
| كتابة الذاكرة المؤقتة | الاستدعاء الأول، أو بعد انتهاء صلاحية الذاكرة المؤقتة | أعلى من الإدخال العادي |
| قراءة الذاكرة المؤقتة | الاستدعاءات اللاحقة التي تصيب الذاكرة المؤقتة | أقل بكثير من الإدخال العادي |
| الإدخال العادي | الرموز بعد آخر نقطة فصل للذاكرة المؤقتة | المعدّل العادي |
المضاعِفات الدقيقة موجودة في صفحة التسعير الرسمية وهي متذبذبة — تحقّق منها مباشرةً. ما لا يتغير هو البنية: الكتابات تكلّف أكثر من العادي، والقراءات تكلّف أقل بكثير. نقطة التقاطع — حين تكون قد أجريت من الاستدعاءات المخزّنة ما يكفي لاسترداد عبء الكتابة — تأتي بسرعة في أي مطالبة ذات محتوى ثابت كبير.
زمن الاستجابة يتبع النمط نفسه. قراءات الذاكرة المؤقتة تتخطّى المعالجة الكاملة للجزء المخزَّن، ما يقلّل الزمن حتى الرمز الأول بشكل ملموس في الاستدعاءات ذات البادئات الكبيرة.
متى يساعد التخزين المؤقت للمطالبة
يؤتي التخزين المؤقت ثماره حين يتحقق شرطان معًا:
- لديك بادئة ثابتة كبيرة (هناك عتبة حد أدنى للرموز يصبح التخزين المؤقت دونها غير متاح — تحقّق من الوثائق الحالية للرقم الدقيق حسب النموذج).
- تُعيد استخدام تلك البادئة بتواتر كافٍ لإصابة الذاكرة المؤقتة أكثر من حين لآخر.
سيناريوهات يكون فيها التخزين المؤقت مناسبًا طبيعيًا:
- الأسئلة والأجوبة على المستندات — يُحقَن المستند الكبير نفسه لأسئلة مستخدمين كثيرة.
- مساعدو البرمجة — تُضمَّن قاعدة شيفرة أو شجرة ملفات كبيرة في كل طلب.
- حلقات الوكلاء — تُرسَل مطالبة النظام وتعريفات الأدوات نفسها في كل خطوة من سير عمل متعدد الخطوات.
- وكلاء محادثة بتعليمات طويلة — شخصية مفصّلة، أو مجموعة قواعد، أو قاعدة معرفة لا تتغير من استدعاء لآخر.
- المعالجة الدفعية — مدخلات كثيرة تُشغَّل مقابل القالب نفسه.
متى لا يساعد التخزين المؤقت للمطالبة
التخزين المؤقت غير مفيد حين:
- تكون مطالباتك قصيرة (دون عتبة الحد الأدنى للرموز القابلة للتخزين المؤقت).
- تتغير بادئتك مع كل استدعاء — حقن طابع زمني، أو سياق خاص بالمستخدم، أو أي تخصيص في الجزء "الثابت" يُبطل الذاكرة المؤقتة.
- تُجري استدعاءات متباعدة بفجوات طويلة بينها. ينتهي المحتوى المخزَّن بعد مدة TTL (مدة يمكنك ضبطها، ضمن الحدود التي تدعمها API). إن كانت حركة المرور لديك متناثرة، فستدفع غالبًا تكاليف كتابة مع قراءات قليلة.
- تكون بادئتك صغيرة نسبةً إلى المحتوى الديناميكي لكل استدعاء. التوفير يتناسب مع حجم ما يُخزَّن.
هيكلة المطالبات لتكون صديقة للتخزين المؤقت
المتطلب البنيوي الوحيد هو الترتيب: المحتوى الثابت يجب أن يأتي قبل المحتوى المتقلّب.
عمليًا:
[مطالبة النظام — التعليمات، الشخصية، القواعد]
[تعريفات الأدوات — إن كانت ثابتة]
[المستندات أو السياق المحقون الكبير — إن كان نفسه عبر الاستدعاءات]
--------- نقطة فصل الذاكرة المؤقتة هنا ---------
[المحتوى الديناميكي لكل استدعاء — رسالة المستخدم، المقاطع المسترجَعة الخاصة بهذا الطلب]
تضع علامة على نقطة الفصل بحقل cache_control على آخر كتلة تريد تضمينها في الذاكرة المؤقتة. كل ما يسبق تلك العلامة مؤهّل للتخزين المؤقت؛ وكل ما يليها إدخال عادي.
يمكنك وضع ما يصل إلى أربع نقاط فصل صريحة في طلب واحد. هذا مفيد عندما تتغير أجزاء مختلفة من مطالبتك بتواترات مختلفة — مثلًا، تعريفات الأدوات تتغير نادرًا، وسجل المحادثة يتغير في كل دور. يمكن لكل قسم أن يكون له نقطة فصله الخاصة.
قواعد إبطال الذاكرة المؤقتة
الذاكرة المؤقتة حسّاسة للترتيب. أي تغيير في كتلة مخزَّنة، أو في أي كتلة تسبقها في المطالبة، يُبطل الذاكرة المؤقتة عند تلك النقطة وكل النقاط اللاحقة.
التغييرات في تعريفات الأدوات تُبطل كل الذواكر المؤقتة. والتغييرات في مطالبة النظام تُبطل ذاكرة النظام والرسائل. والتغييرات في منتصف المحادثة تؤثر فقط في ذاكرة الرسائل.
الأثر العملي: إن كنت تحقن أي شيء يتغير مع كل طلب، فتأكّد تمامًا أنه يعيش بعد آخر نقطة فصل للذاكرة المؤقتة، لا قبلها أو داخلها.
التسخين المسبق والمراقبة
يمكنك تسخين الذاكرة المؤقتة مسبقًا قبل وصول حركة المرور من المستخدمين بإرسال طلب بـ max_tokens: 0 — هذا يكتب الذاكرة المؤقتة دون توليد مُخرَج. مفيد للمهام الدفعية أو لتحميل تكلفة الكتابة مقدّمًا خلال ساعات الذروة المنخفضة.
حقل usage في استجابة API يخبرك بعدد الرموز التي قُرئت من الذاكرة المؤقتة (cache_read_input_tokens)، والمكتوبة إليها (cache_creation_input_tokens)، والمحتسَبة كإدخال عادي. راقب هذه للتحقق من أن تخزينك المؤقت يصيب فعلًا ولقياس التوفير الذي تحقّقه.
استخدم حاسبة التكلفة لنمذجة التوفير المتوقّع قبل الالتزام ببنية تخزين مؤقت.
الخلاصة
التخزين المؤقت للمطالبة ليس تحسينًا دقيقًا. بالنسبة لأي تطبيق يرسل البادئة الكبيرة نفسها مرارًا، إنه قرار اقتصادي بنيوي. ونموذج التفكير فيه مباشر: المحتوى الثابت يأتي أولًا، والمحتوى المتقلّب أخيرًا، وضع نقطة الفصل عند الحدّ الفاصل.
إن كنت تبني مقابل API ولم تنظر بعد في التخزين المؤقت، فتفحّص مطالباتك الحالية بحثًا عن أقسام ثابتة كبيرة. إن وُجدت، فتفعيل التخزين المؤقت عادةً قليل الجهد والتوفير حقيقي.