أثناء العمل مع Claude Code أو Anthropic API، قد تتوقف فجأةً عند خطأ كهذا:

API Error: 400 Output blocked by content filtering policy

# تبدو الاستجابة الخام على هذا الشكل:
{"type":"error","error":{"type":"invalid_request_error",
 "message":"Output blocked by content filtering policy"}}

«تم حظر المخرَج بموجب سياسة تصفية المحتوى» — أي أن الأمر ليس متعلقًا بمدخلاتك، بل إن مرشّح الأمان لدى Anthropic أوقف في منتصف الطريق المخرَج الذي كان Claude بصدد إرجاعه. حالة HTTP هي 400، والنوع invalid_request_error. ليس الأمر حدَّ استخدام ولا تجاوزًا للسياق، بل ما تعلّق هو «ما الذي حاول أن يُخرِجه».

أولًا ثلاث نقاط أساسية. ① السبب في الغالب هو حكمٌ بأنك «حاولت إعادة إنتاج عمل محمي كما هو». صُمّم Claude لتوليد محتوى جديد، ولديه آلية أمان تمنع النسخ الحرفي للنصوص الموجودة. ② لكن الإنذارات الكاذبة (false positive) كثيرة — فتوليد نصوص التراخيص القياسية مثل MIT/Apache، أو أعمال «المطابقة» لصفحة موجودة، قد يُشعِله دون أي نية سيئة. ③ جوهر الحل هو «ألّا تجعل النموذج ينسخ حرفيًا» — احصل على التراخيص وغيرها عبر الأدوات، ووجِّه المطالبات نحو «التحويل والتلخيص والتوليد الجديد»، وإذا وقعتَ في حلقة إعادة محاولة فأوقفها مرة واحدة ثم أعِد الصياغة. في هذا المقال، وبناءً على المعلومات الرسمية وتقارير الأعطال الفعلية، نرتّب الأسباب وأنماط الإنذارات الكاذبة وطرق الإصلاح والفرق عن الأخطاء المشابهة.

CLAUDE CODE · CONTENT FILTER

أين يقع التوقف؟

— ليس المدخل بل «المخرَج» هو ما يوقفه المرشّح

① مدخلاتك
المطالبة والملفات والتعليمات
✅ تمرّ
② Claude يولّد
يركّب رموز المخرَج
…يشبه عملًا موجودًا؟
③ مرشّح المخرَج
يكتشف إعادة إنتاج عمل محمي
⛔ يحظر بـ 400

ما يتوقف هو مرحلة المخرَج ③. ليس المدخل طويلًا جدًا (Prompt is too long)، ولا هو حدّ الاستخدام.
المخرَج الذي «يُنشئ شيئًا جديدًا» يمرّ، أما المخرَج الذي «ينسخ عملًا موجودًا حرفيًا» فيسهل أن يعلق.

1. ماذا يعني هذا الخطأ؟

يوجد في Anthropic API نظام أمان يفحص كلًّا من المدخل (ما ترسله أنت) والمخرَج (ما يُرجعه Claude). وOutput blocked by content filtering policy يعني، كما يوحي اسمه، أن مرشّح جانب «المخرَج» أوقف المحتوى الذي كان Claude بصدد إرجاعه. تُرجَع استجابة الـ API على هيئة HTTP 400/invalid_request_error، وفي Claude Code تتوقف الجلسة وتعرض API Error: 400 Output blocked by content filtering policy.

نقطة مهمة: هذا يختلف عن «رفض النموذج بلطف ضمن نص المحادثة (refusal)». فالرفض يُرجَع كنص، أما هذا الـ 400 فيعني أن استدعاء الـ API نفسه يصبح خطأً. لذلك لا يستطيع Claude Code استلام الاستجابة، وتنقطع المعالجة.

المهم أن هذا ليس «خللًا» بل «تفعيلًا لآلية أمان». لذلك فهو ليس من النوع الذي «يُصلَح بإعادة التشغيل»، بل الأسلوب الصحيح هو مراجعة ما الذي حاولتَ جعله يُخرِجه. ومع ذلك، وكما سيأتي، فإن الإنذارات الكاذبة كثيرة جدًا، لذا إذا ظهر أثناء عمل مشروع فيمكن في الغالب تجنّبه بإعادة الصياغة أو بتغيير الوسيلة.

2. لماذا يظهر؟ — آلية منع «إعادة إنتاج» الأعمال المحمية

بحسب الشرح الرسمي من Anthropic، فإن الغرض الأساسي من هذا المرشّح هو «ألّا يُجعَل المحتوى الموجود يُنسَخ ويُعاد إنتاجه (regurgitate) كما هو». ويحدّد الشرح الرسمي دور Claude بأنه «توليد محتوى وأفكار جديدة، لا إعادة إنتاج المحتوى الموجود»، ويضيف إلى ذلك سياسة تحظر الاستخدامات التي تنتهك حقوق الملكية الفكرية.

أي أن المرشّح يسهل أن يشتعل عندما يحكم بأن المخرَج «يشبه إلى حدّ بعيد نسخًا حرفيًا لنصٍّ موجودٍ في العالم بالفعل». وتحديدًا في حالات كالتالية.

📄 توليد حرفي لنصوص نمطية

حين تطلب «اكتب كما هو» النصَّ الكامل لترخيص مثل MIT / Apache-2.0 / BSL / MPL، أو مدونة سلوك أو قالبًا قياسيًا، يسهل أن يُحكَم عليه بأنه نسخٌ حرفي لعمل موجود.

🔁 أعمال «المطابقة» لمصدر موجود

تعليمات تنسخ عملًا خارجيًا موجودًا مثل «عدّل الملف ليطابق هذا المرجع الموجود على الإنترنت مطابقة تامة» أو «أعِد إنتاجه تمامًا كالمقال الأصلي».

📚 استنساخ مستندات طويلة

اقتباس كميّ كبير / إعادة نشر كامل لوثائق API موجودة أو كتب أو مقالات. التلخيص أو إعادة الهيكلة يمرّان بسهولة، أما النسخ الحرفي فيعلق.

تنبيه: ينصّ الرسمي أيضًا على أنه «إذا ظهر هذا التحذير لأنك تحاول فعلًا انتزاع عمل محمي، فإن التكرار قد يؤدي إلى تحذير أو تعليق الحساب أو إنهائه». لا تلتف على الأمر بقصد النسخ الحرفي المتعمّد. ما نتناوله هنا هو حصرًا الإنذارات الكاذبة في أثناء عمل مشروع.

3. أنماط الإنذارات الكاذبة الشائعة (false positive)

يقرّ الرسمي نفسه بوجود الإنذارات الكاذبة، إذ يذكر أن «بعض المستخدمين يواجهون هذا الرفض/الخطأ دون أي نية للاستنساخ». وفعلًا، في مسائل (Issues) Claude Code تقارير كثيرة عن اشتعاله في أعمال «خالية تمامًا من أي نية سيئة» كالتالي.

التهيئة الأولية لمستودع مفتوح المصدر

التوقف أثناء الإعداد المعتاد لإنشاء ملف LICENSE أو إعدادات CI أو ملفات تنظيم المجتمع (مثل CODE_OF_CONDUCT).

مطابقة قائمتين ببعضهما

في منتصف مهمة مقارنة مثل «قارِن بقائمة موجودة على الإنترنت وأصلح الفروق»، يقترب المخرَج من القائمة الموجودة فيشتعل.

في نهاية تشغيل وكيل طويل

قد يتوقف بـ 400 بعد ساعة أو ساعتين من التشغيل، فيُشخَّص خطأً على أنه «حدّ الرموز». لكن السبب الفعلي هو مرشّح المخرَج.

سلوك معروف من جانب Claude Code: عند تلقّي هذا الخطأ قد يدخل في حلقة إعادة محاولة يعيد فيها المخرَج نفسه مرارًا ولا يستطيع التقدّم. وقد يظلّ يدور طويلًا بلا أي ملف، فيسهل الخلط في تشخيص السبب. إذا لاحظتَ الحلقة فأوقفها يدويًا أولًا (الفصل التالي).

4. كيفية الإصلاح الآن

تختلف المعالجة بين حالة «عمِلت آلية الأمان بشكل صحيح» وحالة «الإنذار الكاذب»، لكن إن كان العمل مشروعًا فيمكن تجنّبه باحتمال عالٍ بالترتيب التالي.

① لا تجعل النموذج «ينسخ حرفيًا»

النصوص النمطية الكاملة كالتراخيص لا تجعل النموذج يكتبها، بل احصل عليها عبر أداة. مثال: npx license mit، أو اللصق من choosealicense.com، أو تحديد قالب في gh repo create.

② أعِد صياغة المطالبة نحو «التوليد»

بدلًا من «أعِد إنتاجه كما هو»، غيّرها إلى «لخّص» و«أعِد الهيكلة» و«أعِد الكتابة بكلماتك» و«أخرِج الفروق فقط». مجرد عدم اشتراط المطابقة الحرفية كثيرًا ما يجعله يمرّ.

③ أوقف حلقة إعادة المحاولة

إذا ظلّ Claude Code يعيد محاولة المخرَج نفسه، فقاطِعه بـ Esc. لا تُعِد إرسال التعليمات نفسها، بل أعِد الصياغة أولًا ثم استأنف.

④ قسِّم المهمة وغيّر عنصرًا واحدًا في كل مرة

لتحديد أيّ مخرَج هو الزناد، قسّم التوليد الدفعي الكبير إلى أجزاء صغيرة. مقارنةُ بنيةٍ تعمل مع تغيير متغيّر واحد في كل مرة تُسهّل تحديد السبب.

⑤ أبلِغ عن الإنذارات الكاذبة رسميًا

إن تكرّر ظهوره رغم أن العمل مشروع، فتوجّه إلى دعم Anthropic. الرسمي نفسه يرحّب بالملاحظات لتحسين المرشّح.

أمثلة على إعادة الصياغة (نفس الهدف لكن يمرّ بسهولة أكبر)

❌ «اكتب النص الكامل لترخيص MIT في LICENSE كما هو»
✅ «أريد إنشاء LICENSE. نفّذ npx license mit لتوليده»

❌ «الصق هذا المستند الرسمي حرفًا بحرف كما هو»
✅ «اقرأ هذا المستند الرسمي، ولخّص نقاطه الأساسية
     بكلماتك في نقاط. لا حاجة لنسخ الأصل حرفيًا»

5. كيف تميّزه عن الأخطاء المشابهة

مع أن الجميع «توقّف»، فإن السبب يمكن تمييزه من الرسالة. ميّز بينها بالحالة أو الكلمة المفتاحية.

الرسالة / النوع السبب الحقيقي المعالجة
Output blocked by content filtering policy (400) حُكِم على المخرَج بأنه إعادة إنتاج عمل محمي موجود تجنّب النسخ الحرفي وأعِد الصياغة / احصل عليه بأداة
Prompt is too long (400) تجاوز المدخل نافذة السياق /compact · /clear (شرح)
usage limit reached استُهلكت حصة الاستخدام في خطتك بالكامل انتظار إعادة الضبط / خطة أعلى (شرح)
529 Overloaded / 500 حِمل زائد أو عطل مؤقت من جانب الخادم أعِد المحاولة بعد فترة (شرح)
ينقطع المخرَج في منتصفه بلوغ حدّ المخرَج max_tokens ارفع حدّ المخرَج / ولّد على أجزاء

عند التردّد، فإن الحكم بناءً على نصّ الرسالة نفسه هو الأضمن. إن كُتب content filtering policy فهو موضوع هذا المقال، وإن كان too long فهو تجاوز المدخل، وإن كان usage limit فهو نفاد الحصة. أخطاء Claude Code عمومًا مجمّعة أيضًا في أخطاء Claude Code الشائعة وحلولها.

6. قائمة تحقق لمنع التكرار

  • التراخيص والوثائق النمطية لا تجعل النموذج يكتبها، بل احصل عليها بأداة أو قالب
  • الأعمال الموجودة اطلبها بصيغة «التلخيص وإعادة الهيكلة وبكلماتك» لا «إعادة الإنتاج»
  • أزِل من المطالبة عبارات مثل «حرفًا بحرف» و«كما هو» و«مطابقة تامة»
  • التوليد الدفعي الكبير قسّمه إلى أجزاء صغيرة بحيث يمكن عزل المخرَج الزناد
  • إذا توقّف بـ 400 فـ اقرأ نص الرسالة أولًا — لتجنّب الخلط في السبب (التشخيص الخاطئ بأنه حدّ الرموز)
  • إذا لاحظتَ حلقة إعادة المحاولة فأوقفها بـ Esc، وأعِد الصياغة أولًا ثم استأنف
  • الإنذارات الكاذبة في عمل مشروع أبلِغ عنها الدعم لتساهم في تحسين المرشّح

الخلاصة

API Error: 400 Output blocked by content filtering policy يعني أنه ليس حدّ استخدام ولا تجاوزًا للسياق، بل إن مرشّح الأمان أوقف «المخرَج» الذي كان Claude بصدد إرجاعه. محوره هو منع إعادة الإنتاج الحرفي للأعمال المحمية الموجودة، وكثيرًا ما يقع إنذار كاذب دون نية سيئة في توليد التراخيص القياسية أو أعمال «المطابقة لعمل موجود». جوهر الحل بسيط: لا تجعل النموذج ينسخ حرفيًا، واستبدِل ذلك بالتوليد والتلخيص والحصول عبر الأدوات. وإذا توقّف بـ 400 فاقرأ نص الرسالة أولًا كي لا تخلط في السبب — بهذا وحده يمكن للأغلبية أن تمضي قدمًا.

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

س. هل يعني هذا أن حسابي تلقّى تحذيرًا؟

ج. إن كان إنذارًا كاذبًا مفردًا فلا. لكن الرسمي ينصّ على أن التكرار في محاولة انتزاع عمل محمي فعلًا قد يؤدي إلى تحذير أو تعليق الحساب. لا داعي للقلق من ظهوره مرة واحدة في عمل مشروع.

س. أليس من المزعج ألّا أستطيع حتى كتابة ترخيص MIT؟

ج. النص الكامل للترخيص هو «نص نمطي موجود»، فبدلًا من جعل النموذج ينسخه حرفيًا، الحصول عليه عبر npx license mit أو من choosealicense.com أسرع وأضمن. وفيه أيضًا تجنّبٌ للإنذار الكاذب.

س. ما الفرق بينه وبين حدّ الرموز (Prompt is too long)؟

ج. مختلفان تمامًا. too long يتعلق بأن حجم المدخل تجاوز النافذة، ويُعالَج بـ /compact وغيره. أما content filtering policy هنا فيتعلق بـمضمون المخرَج، ولا يُصلَح بتقليل الحجم. للتفصيل هنا.

س. يتوقّف في عمل مشروع مهما فعلت. ماذا أفعل؟

ج. إن تكرّر رغم إعادة صياغة المطالبة نحو التوليد/التلخيص وتقسيم المهمة، فأبلِغ دعم Anthropic مرفقًا request id. المرشّح يتحسّن باستمرار، ومشاركة الإنذارات الكاذبة هي أقصر طريق للحل.