هل سبق أن أوقفك هذا الخطأ فجأة في Claude Code أو في الـ API؟

Prompt is too long

# On the API, more specifically:
prompt is too long: 233153 tokens > 200000 maximum

"الموجّه طويل جدًا" — أي أن المدخل الذي تحاول إرساله (سجل المحادثة + الملفات المرفقة + تعريفات الأدوات، إلخ) يتجاوز نافذة السياق الخاصة بالنموذج (حد المدخلات). وفي الـ API يخبرك حتى بـ "كم عدد الـ tokens مقابل أي حد أقصى" كما في 233153 tokens > 200000 maximum. وهذا مختلف عن "usage limit" — فأنت لم تستنفد حصتك؛ بل إن مدخلًا واحدًا أكبر من اللازم فيزيائيًا.

ثلاث نقاط مهمة في البداية. (1) السبب هو "أن المدخل لا يتسع داخل النافذة". فهو ليس حد قطع الإخراج max_tokens، ولا حصة usage limit. (2) عادةً ما يتجنبه Claude Code تلقائيًا عبر auto-compact (التلخيص التلقائي)، لذا حين تراه فإنك إما "تجاوزت النافذة دفعة واحدة" أو أوقفت auto-compact. (3) أسرع الحلول هي /compact لتلخيص السجل، و/clear للبدء من جديد، وتحويل القراءات الضخمة إلى subagent. يغطي هذا المقال ما الذي يملأ النافذة، وأحجام النافذة (200K و 1M)، وكيفية الإصلاح، وكيفية التمييز بينه وبين الأخطاء التي يسهل الخلط بينها — بناءً على المعلومات الرسمية.

CLAUDE CODE · CONTEXT WINDOW

حتى تمتلئ "النافذة"

— ما الذي يملأ السياق، ومتى يفيض

system prompt
CLAUDE.md
MCP tool defs
الملفات التي قرأتها
نتائج الأدوات
المحادثة (تتزايد)

تتراكم حتى 100%، ثم...

100%
= 200K / 1M tokens
Prompt is
too long

عادةً يقوم auto-compact
بالتلخيص قبل الفيضان

هذا يعني أن "نافذة المدخلات" ممتلئةليست usage limit (الحصة)، وليست قطع إخراج (max_tokens).
نسب التراكم توضيحية فقط. تحقق من التفصيل الفعلي باستخدام /context.

1. ماذا يخبرك به هذا الخطأ

لدى نماذج الذكاء الاصطناعي حد للمدخلات يُسمى "نافذة السياق (context window)". وهو "الحد الأقصى لكمية المعلومات التي يمكن قراءتها في تبادل واحد"، ويُحسب بالـ tokens (أي تقريبًا أجزاء من الكلمات). يعني Prompt is too long أن إجمالي الـ tokens للمدخل الذي حاولت إرساله يتجاوز تلك النافذة. وفي الـ API يطبع لك الأرقام حتى: 233153 tokens > 200000 maximum (أرسلت 233,153 token؛ والحد هو 200,000).

النقطة الأساسية هي أن هذا يتعلق بجانب المدخلات. فنافذة السياق تجمع سجل المحادثة، والملفات المرفقة/المقروءة، ونتائج تنفيذ الأدوات، و system prompt، وتعريفات أدوات MCP. فإن أبقيت محادثة طويلة مستمرة، أو قرأت ملفًا ضخمًا بالكامل، أو راكمت الكثير من مخرجات الأدوات، تمتلئ النافذة تدريجيًا وتفيض عند نقطة ما. لمعرفة المفهوم نفسه، راجع ما هي نافذة السياق.

لاحظ أن Claude Code عادةً ما يكون لديه auto-compact (التلخيص التلقائي) مفعّلًا افتراضيًا، وهو يلخّص السجل تلقائيًا لتحرير مساحة كلما اقتربت النافذة من الامتلاء. لذا في الوضع الطبيعي لن ترى هذا الخطأ أبدًا. وإن ظهر رغم ذلك، فعادةً يكون بسبب (1) أن مدخلًا واحدًا تجاوز النافذة دفعة واحدة (مثل لصق ملف ضخم)، أو (2) أنك عطّلت auto-compact (DISABLE_AUTO_COMPACT).

2. ما الذي يملأ نافذة السياق

"يفيض أسرع مما هو متوقع" لأن العناصر غير المرئية تستهلك النافذة أيضًا. إليك التفصيل الرئيسي من الوثائق الرسمية لـ Claude Code.

ما الذي يملأ النافذةالمحتوىكيف تخفّفه
سجل المحادثةكل دور للمستخدم/المساعد. العامل الأكبر — فهو يستمر في النمو حتى يُمسح/compact للتلخيص، /clear لإعادة البدء
الملفات التي قرأتهاكل ملف تقرأه (Read) يدخل إلى النافذة. قراءة ملف ضخم بالكامل ثقيلةاقرأ بنطاقات الأسطر؛ حوّل القراءات الكبيرة إلى subagent
نتائج الأدواتمخرجات الأوامر ونتائج البحث، إلخ، تتراكم أيضًاتجنّب المخرجات الضخمة غير الضرورية؛ اضغط بـ compact كثيرًا
تعريفات أدوات MCPتعريفات أدوات خوادم MCP المتصلة. كلما زادت الخوادم، زاد استهلاكها من البدايةعطّل MCP غير المستخدمة بـ /mcp
CLAUDE.md / الذاكرةتعليمات المشروع/العامة، والذاكرة التلقائية. تُحمّل دائمًاتجنّب التضخم؛ تحقق بـ /doctor
system promptتعليمات السلوك الأساسية. حاضرة دائمًا، ثابتة، لا يمكن المساس بها(لا يمكن تقليصها. قلّل الباقي)

النقطة المهمة: "سجل المحادثة، وقراءات الملفات، ونتائج الأدوات" عوامل ديناميكية تنمو، بينما "تعريفات MCP، و CLAUDE.md، و system prompt" عوامل ثابتة حاضرة من البداية. والحيلة هي أن الـ subagent له نافذته الخاصة — فحوّل قراءة ملف ضخم أو تحقيقًا إلى subagent، ونتيجته (البيانات الخام الثقيلة) لن تدخل إلى نافذتك الرئيسية أبدًا. اطّلع على ما الذي يستهلك النافذة بالضبط عبر /context. ولمعرفة منهجية تصميم السياق بشكل متعمّد، راجع هندسة السياق.

3. أحجام النافذة — 200K و 1M

"ما هو الحد الأقصى" يعتمد على النموذج. إليك الصورة العامة لعام 2026 (القيم المحددة قد تُراجَع، لذا تأكد من القائمة الرسمية الأحدث).

200K vs 1M

قد تختلف النافذة بمقدار 5 أضعاف

المعيار 200K tokens
Sonnet 4.5، Haiku 4.5، Opus 4.5، إلخ. وهذا هو "200000 maximum" الذي تراه في الخطأ. يكفي لمعظم الأعمال اليومية، لكنه يفيض بسهولة في قواعد الكود الضخمة أو الجلسات الطويلة.
1M tokens
Opus 4.8/4.7/4.6، Sonnet 4.6، إلخ. خمسة أضعاف المعيار. واعتبارًا من 2026 فهو متاح بالسعر القياسي (لا توجد رسوم إضافية للسياق الطويل حاليًا). في Claude Code يظهر بلاحقة [1m].
تنبيه: 1M ليس علاجًا شاملًا
(1) في الاشتراكات، قد يتطلب نموذج [1m] رصيد استخدام (credits). (2) تستخدم النماذج الأحدث مُرمِّزًا (tokenizer) مختلفًا يستهلك تقريبًا 30-35% tokens أكثر للنص نفسه (فحتى 1M يتسع لأقل مما تشعر به). قبل توسيع النافذة، الخطوة الأساسية هي ألا تزدحمها.

أحجام النافذة، ودعم 1M، والأسعار تُراجَع مع الوقت. لا تحفظ قيمًا ثابتة — تأكد من القائمة الرسمية الأحدث للنماذج.

من المغري الاعتقاد بأن "التبديل إلى نموذج 1M يحل كل شيء"، لكن النافذة الأكبر هي مهرب، وليست دائمًا حلًا. فإن وسّعت النافذة مع إبقاء محادثة مزدحمة، وقراءات ملفات كاملة مهدِرة، و MCP غير مستخدمة، فلن تفعل سوى رفع التكلفة وإبطاء الاستجابات. النهج البارع هو أن ترتّب النافذة أولًا (compact، clear، subagents)، وأن تستخدم 1M فقط للمهام الكبيرة فعلًا التي ما زالت تحتاجه.

4. كيف تصلحه الآن

خطوات لحظة ظهور الخطأ، بترتيب الأولوية. اختر حسب الموقف (تضخّم السجل / أدخلت ملفًا ضخمًا).

FIXES

كيف تحرّر النافذة

1) /compact (أولًا)
لخّص السجل لتحرير مساحة. يمكنك تركيزه: /compact focus on the auth bug. يحافظ على السياق مع التخفيف.
2) /clear (مهمة جديدة)
امسح المحادثة. يبقى CLAUDE.md ومعلومات المشروع. الأسرع عند الانتقال إلى عمل غير ذي صلة.
3) حوّل القراءات الكبيرة
اقرأ الملفات الضخمة بـ نطاق أسطر، أو اجعل subagent يحقق ويعيد الاستنتاج فقط (يستخدم نافذته الخاصة).
4) قلّل الحمل الثابت
استخدم /context لرؤية التفصيل، ثم عطّل MCP غير المستخدمة وقلّص CLAUDE.md. يشير /doctor إلى التضخم.
5) نموذج 1M إن كان ضخمًا فعلًا
فقط عند الحاجة الحقيقية (مثل التعامل مع قاعدة كود كبيرة بالكامل)، بدّل بـ /model إلى نموذج بسياق 1M. لكن قم بالترتيب (1-4) أولًا. لا تعطّل auto-compact (أبقه مفعّلًا افتراضيًا).

الأساس هو 1) /compact ثم 2) /clear. إن كان الفيضان أساسًا "قراءة كبيرة"، فاستخدم 3). وإن كان مزمنًا، فقلّل الحمل الثابت بـ 4).

ملاحظة: قد يفشل /compact نفسه بـ "Conversation too long. Press esc twice..." — وهذا يعني أن النافذة ممتلئة لدرجة أنه لا توجد مساحة حتى لإدراج ملخص. في تلك الحالة، اضغط Esc مرتين للصعود بضع رسائل، أو /clear لإعادة البدء. لتوفير الـ tokens بشكل منهجي، راجع توفير الـ tokens في Claude Code.

5. التمييز بين ثلاثة أخطاء يسهل الخلط بينها

لعائلة "طويل جدًا / متوقف" عدة أفراد، وقد تكون الحلول متعاكسة. ميّز بين هذه الثلاثة (+ واحد) حتى لا تخلط بينها.

العرَضما هو حقًاالحل الرئيسي
Prompt is too long / N tokens > M maximumموضوع هذا المقال. تجاوز المدخل نافذة السياق/compact، /clear، حوّل القراءات الكبيرة إلى subagent، نموذج 1M
الاستجابة مقطوعة (stop_reason: max_tokens)اقتُطع الإخراج عند قيمة max_tokens التي حددتها في الطلب (ليست مشكلة نافذة)ارفع max_tokens / اطلب المتابعة
usage limit reachedاستُنفدت حصة استخدام خطتك (لا علاقة لها بنافذة الـ tokens)انتظر إعادة التعيين؛ حلول usage limit
Usage credits required for 1M contextمسألة صلاحية (entitlement). اخترت نموذج [1m] غير مشمول في خطتك (ليس فيضانًا، ولا حصة)فعّل الرصيد، أو /model إلى نافذة قياسية

المحور: إن رأيت أرقامًا مثل "N tokens > M maximum"، فهو فيضان مدخلات = هذا المقال. أما الاستجابة المقطوعة بشكل نظيف فهي سقف الإخراج (max_tokens). و"reset at [time]" فهي usage limit. و"credits required for 1M" فهي مسألة صلاحية (خطة). للاطلاع على أخطاء Claude Code الشائعة الأخرى، راجع مجموعة الأخطاء.

6. قائمة الوقاية

عادات تمنع فيضان النافذة.

(1) أبقِ auto-compact مفعّلًا افتراضيًا (لا تعطّله بـ DISABLE_AUTO_COMPACT). (2) استخدم /clear عند حدود المهام؛ و/compact كثيرًا أثناء المحادثة. (3) اقرأ الملفات الضخمة بنطاق أسطر أو عبر subagent؛ لا تلصقها بالكامل. (4) عطّل MCP غير المستخدمة ولا تدع CLAUDE.md يتضخم (تحقق بـ /doctor). (5) تحقق من التفصيل بـ /context قبل العمل الثقيل. (6) استخدم نموذج 1M فقط للمهام الكبيرة فعلًا؛ واعمل على النافذة القياسية + الترتيب بقية الوقت.

الخلاصة

إن "Prompt is too long" في Claude Code / الـ API يعني أن المدخل (سجل المحادثة + الملفات + تعريفات الأدوات، إلخ) تجاوز نافذة السياق الخاصة بالنموذج. وفي الـ API يُظهر حتى السقف بصيغة N tokens > M maximum. وهو ليس usage limit (حصة) ولا قطع إخراج (max_tokens) — بل هو "أن المدخل أكبر من اللازم فيزيائيًا". عادةً ما يتجنبه Claude Code عبر auto-compact، لذا حين يظهر فإنك إما تجاوزت النافذة دفعة واحدة أو أوقفت auto-compact.

تُملأ النافذة بـ سجل المحادثة، وقراءات الملفات، ونتائج الأدوات (ديناميكية) + تعريفات MCP، و CLAUDE.md، و system prompt (ثابتة). وأسرع الحلول هي (1) /compact -> (2) /clear -> (3) تحويل القراءات الكبيرة إلى subagent -> (4) تقليل الحمل الثابت بـ /context -> (5) نموذج 1M فقط عند الحاجة الحقيقية. أحجام النافذة هي المعيار 200K و 1M؛ و1M بالسعر القياسي اعتبارًا من 2026، لكن لاحظ أن الاشتراكات قد تتطلب رصيدًا وأن المُرمِّز الجديد يستهلك أكثر. القاعدة الأساسية: قبل توسيع النافذة، توقف عن ازدحامها. ذات صلة: ما هي نافذة السياق، هندسة السياق، حلول usage limit.

الأسئلة الشائعة

Q. هل "Prompt is too long" و "usage limit reached" هما الشيء نفسه؟
A. مختلفان تمامًا. يعني "Prompt is too long" أن مدخلًا واحدًا تجاوز نافذة السياق (حد الـ tokens). أما "usage limit reached" فيعني أنك استنفدت حصة استخدام خطتك — لا علاقة لها بنافذة الـ tokens. يُحل الأول فورًا بتحرير النافذة عبر /compact أو /clear؛ ويحتاج الثاني إلى انتظار إعادة التعيين أو إجراء على الخطة.

Q. لا يظهر أبدًا في الوضع الطبيعي، ثم ظهر فجأة. لماذا؟
A. لدى Claude Code auto-compact مفعّل افتراضيًا، وهو يلخّص السجل تلقائيًا لتجنبه كلما اقتربت النافذة من الامتلاء. وإن ظهر رغم ذلك، فعادةً يكون بسبب (1) أنك أدخلت ملفًا ضخمًا أو كمية بيانات هائلة دفعة واحدة وتجاوزت النافذة، أو (2) أنك أوقفت auto-compact بـ DISABLE_AUTO_COMPACT. عالج الأول بالتقسيم / قراءة نطاق الأسطر / subagent، والثاني بإعادة تفعيل auto-compact.

Q. شغّلت /compact فحصلت على "Conversation too long" — لا يستطيع حتى التلخيص.
A. النافذة ممتلئة لدرجة أنه لا توجد مساحة حتى لإدراج ملخص. اضغط Esc مرتين للصعود بضع رسائل وأعد المحاولة، أو /clear لإعادة بدء المحادثة. ومن ثم استخدم /compact قبل أن تمتلئ وحوّل القراءات الكبيرة إلى subagent لمنع التكرار.

Q. هل سيحل التبديل إلى نموذج بسياق 1M المشكلة؟
A. يساعد في المهام الكبيرة، لكنه ليس علاجًا شاملًا. فتوسيع النافذة مع إبقاء سجل مزدحم، وقراءات ملفات كاملة مهدِرة، و MCP غير مستخدمة، لا يفعل سوى رفع التكلفة وإبطاء الاستجابات. كما أن النماذج الأحدث تستخدم مُرمِّزًا مختلفًا يستهلك تقريبًا 30-35% tokens أكثر للنص نفسه، فيتسع لأقل مما تشعر به. اللعب الذكي هو أن ترتّب أولًا (compact/clear/subagent)، ثم تستخدم 1M فقط عند الحاجة الحقيقية. ولاحظ أن الاشتراكات قد تتطلب رصيدًا لـ [1m].

Q. أريد معرفة ما الذي يستهلك النافذة.
A. يُظهر /context في Claude Code التفصيل — system prompt، و CLAUDE.md، وتعريفات أدوات MCP، وسجل المحادثة، والملفات التي قرأتها، إلخ. وفي معظم الحالات يكون سجل المحادثة المتنامي باستمرار وقراءات الملفات الكبيرة هما السببان الرئيسيان. كما يشير /doctor إلى CLAUDE.md المتضخم أو تعريفات subagent. وإن كان الحمل الثابت (تعريفات MCP، و CLAUDE.md) كبيرًا، فإن تقليصه فعّال.