المستوى المطلوب: محترف. هذا المقال يفترض إنك بتشتغل بالفعل على Anthropic SDK، فاهم الفرق بين system و messages، وعندك تطبيق إنتاج بيستهلك آلاف الـ requests يومياً على Claude.
Prompt Caching في Claude للمحترف: وفّر 90% من تكلفة الـ API و 6x من زمن الاستجابة
لو عندك تطبيق بيبعت نفس الـ system prompt الطويل (30K توكن مثلاً) مع كل request، أنت بتدفع كامل التكلفة كل مرة وبتنتظر Claude يقرأ نفس النص من الصفر كل مرة. Prompt Caching بيقطع تكلفة الـ input لـ 10% والـ time-to-first-token من 2.1 ثانية لـ 0.32 على نفس الموديل بنفس الجودة بالظبط.
المشكلة باختصار
تطبيقات الـ chatbot والـ RAG وأدوات الـ code review بتشترك في نمط واحد: system prompt كبير (تعليمات + أمثلة few-shot + سياق ثابت + tools schemas) بيتجمع لـ 20K أو 50K توكن، وفوقه سؤال متغيّر صغير في حدود 50 توكن.
المشكلة إن كل request جديد بيعيد إرسال الـ 50K دي للـ API ودفعها كاملة بسعر input عادي ($3/MTok على Sonnet 4.6). وفي الباك إند، Claude بيعيد forward pass كامل عليها.
الافتراض: لو عندك 1000 طلب يومي على نفس الـ system prompt 50K → 50M توكن إدخال يومي = $150/يوم = $4,500 شهرياً على الـ input وحده. مع الـ caching، الرقم بينزل لـ $20/يوم = $600 شهرياً بنفس الجودة بالظبط.
المفهوم العلمي: ما هو Prompt Caching فعلاً
قبل التعريف العلمي — مثال للمبتدئ
تخيّل إنك بتشتغل في مطعم وعندك زبون ثابت بيطلب نفس الطلب 100 مرة في اليوم: "ساندوتش فراخ، صوص حار، بدون بصل". الكاشير كل مرة بيكتب الطلب من الأول، يحسب السعر من الأول، يطبع الفاتورة من الأول. ضياع وقت واضح.
الحل البديهي: الكاشير يحفظ الطلب الجاهز في "ذاكرة سريعة" تحت الكاونتر باسم الزبون. لما الزبون ييجي تاني، الكاشير يضغط زر واحد، يجيب الطلب الجاهز، ويعدّل بس اللي اتغير (مثلاً السعر اليوم، أو الكمية). ده بالظبط فكرة الـ Prompt Caching: المطعم = Anthropic، الزبون = تطبيقك، الطلب الجاهز = الـ KV Cache.
التعريف العلمي الدقيق
Prompt Caching في Anthropic API بيشتغل على آلية اسمها KV Cache Persistence. لما Claude بيقرأ نص الإدخال، هو بيحوّل كل توكن لـ Key/Value vectors داخل طبقات Self-Attention في معمارية Transformer. الحالة الرياضية دي اسمها KV Cache.
في الحالة العادية، الـ KV Cache بيتحسب لكل request من الصفر ثم بيتمسح بعد الـ generation. مع Prompt Caching، Anthropic بتحفظ هذا الـ cache على infrastructure داخلية لمدة 5 دقائق افتراضياً (أو ساعة في الـ extended TTL) من آخر استخدام.
لما يجي request تاني بنفس البادئة (prefix) بالظبط، Claude بيستعيد الـ KV Cache مباشرة من الذاكرة بدل ما يعيد حساب الـ forward pass على الـ tokens دي. النتيجة: التوكنز المحفوظة بتتقاضى 0.1x من السعر العادي والـ time-to-first-token بينخفض بشدة لأن أكبر شغل في الـ inference (الـ prefill) بيتم تخطيه بالكامل.
التطبيق العملي: 4 خطوات
- في الـ payload: system prompt + tools schemas + documents مرفقة + few-shot examples.