خطأ invalid_request_error من Anthropic: المعنى والسبب والحل

تستخدم Anthropic هذا الخطأ 400 عندما يرفض التحقق صيغة الطلب أو أحد محتوياته. قد يكون JSON سليماً، لكن النموذج لا يقبل معاملاً أو رداً معبأً مسبقاً أو كتلة تفكير معدّلة.

بقلم فريق benchr · · تم التحقق من توثيق أخطاء API لدى Anthropic في 12 يونيو 2026

AnthropicHTTP 400الخطورة: متوسطةصيغة الطلب

ثلاثة أسباب مرتبطة بالنماذج الحديثة

1. معاملات الاعتيان على Opus 4.7 فأحدث

أوقفت Anthropic معاملات temperature وtop_p وtop_k على Claude Opus 4.7 وكل ما تلاه، بما فيه Opus 4.8. اضبط أياً منها على قيمة غير افتراضية فيفشل الاستدعاء بخطأ 400 بدل تجاهل الحقل بصمت. والحل إزالة لا ضبط: أسقط المعاملات ووجّه التنويع عبر الموجّه.

2. رسائل المساعد المملوءة مسبقاً

إنهاء المحادثة بدور مساعد جزئي كان الحيلة المعتادة لفرض شكل المخرج. النماذج الحالية ترفضه. كل من Claude Fable 5 وClaude Mythos 5 وClaude Mythos Preview وClaude Opus 4.8 وOpus 4.7 وOpus 4.6 وSonnet 4.6 يُرجع خطأ 400 بهذه الرسالة بالضبط:

"Prefilling assistant messages is not supported for this model."

تسمّي وثائق Anthropic ثلاثة بدائل: المخرجات المُهيكَلة، أو تعليمات موجّه النظام، أو output_config.format. إن كان كودك يبدأ الردود بـ { لانتزاع JSON، فذلك هو السطر الذي تحذفه.

3. كتل التفكير المُعدَّلة

يأتي التفكير الممتد بقاعدة ذهاب وإياب صارمة. إن عُدِّلت كتل thinking أو redacted_thinking في آخر رسالة مساعد، أو أُعيد ترتيبها أو رُشِّحت أو أُعيد بناؤها، أرجع API خطأ 400. تبدأ الرسالة بموضع الكتلة المخالفة، مثل messages.1.content.0، ثم تنص على القاعدة:

`thinking` or `redacted_thinking` blocks in the latest assistant message
cannot be modified. These blocks must remain as they were in the
original response.

مع استخدام الأدوات، يجب إعادة كل كتلة تفكير كما استُلمت، بما فيها الكتل الفارغة. راجع أي وسيط يختصر سجل المحادثة أو يحذف هذه الكتل، فقد لا يظهر الخلل إلا عند أول استدعاء لأداة.

الأسباب التقليدية

إذا لم ينطبق أي سبب مما سبق، فراجع الأسباب المعتادة: JSON غير صالح، أو حقل مطلوب مفقود مثل model أو max_tokens، أو نوع بيانات خاطئ، أو ترتيب غير صحيح للرسائل. ويحمل الرد request_id الذي يفيد عند التواصل مع الدعم:

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "..."
  },
  "request_id": "req_..."
}

الحل من سطرين

للحالة الأشيع في 2026، الإصلاح كله هو حذف حقول. قبل وبعد لاستدعاء Opus 4.8:

# BEFORE: returns 400 on claude-opus-4-8
{
  "model": "claude-opus-4-8",
  "max_tokens": 1024,
  "temperature": 0.7,
  "top_p": 0.9,
  "messages": [{"role": "user", "content": "Summarize this contract."}]
}

# AFTER: same call, sampling parameters removed
{
  "model": "claude-opus-4-8",
  "max_tokens": 1024,
  "messages": [{"role": "user", "content": "Summarize this contract."}]
}

إن كان temperature: 0.2 القديم موجوداً من أجل الثبات، فقل ذلك في الموجّه بدلاً منه — "أعطِ القراءة الأرجح وحدها، لا تطرح بدائل" — والجأ إلى المخرجات المُهيكَلة حين يستهلك مُحلِّل النتيجة.

إن كنت تهاجر عن Opus 4 أو 4.1

قد يظهر الخطأ 400 بعد الترحيل مباشرة بسبب معاملات أخذ العينات. أُوقف Opus 4 في 15 يونيو 2026، ويتبعه Opus 4.1 في 5 أغسطس، وكثير من التطبيقات المبنية لهما يرسل temperature. عند تغيير المعرّف إلى claude-opus-4-8، راجع منشئ الطلب في التعديل نفسه. يشرح دليل إيقاف Opus 4 و4.1 المواعيد وخطوات الانتقال، وتعرض صفحة تسعير Opus 4.8 فرق التكلفة.

أسئلة شائعة

لماذا يكسر temperature نموذج Opus 4.8 بينما يقبله GPT؟

تباعد المزوّدين. ما زالت OpenAI تحترم معاملات الاعتيان؛ أما Anthropic فأوقفت temperature وtop_p وtop_k على Opus 4.7 فأحدث، وأي قيمة غير افتراضية تُرجع خطأ 400 بالتصميم. الاسم نفسه للحقل، لكن العقد مختلف، فابنِ الطلبات لكل مزوّد.

هل أحصل على مخرج ثابت من دون temperature؟

نعم. اطلب من الموجّه الجواب الأرجح وحده وامنع التنويع الإبداعي. ولأي شيء يستهلكه مُحلِّل، تقيّد المخرجات المُهيكَلة الردَّ بثبات أكبر مما فعل مقبض اعتيان قط.

لماذا تصطدم حلقة وكيلي بخطأ 400 بُعيد استخدام أداة؟

غالباً كتل تفكير مُعدَّلة. الأطر التي تقص أو تعيد ترتيب السجل تنتهك القاعدة بأن كتل التفكير في آخر رسالة مساعد يجب أن تعود دون تغيير. أعدها حرفياً، بما فيها الفارغة.

سجل التغييرات

  • — نُشر. تم التحقق من قيد الملء المسبق، وقاعدة كتل التفكير، وإيقاف معاملات الاعتيان على Opus 4.7 فأحدث، وفق توثيق أخطاء API والإيقافات لدى Anthropic.

المراجع

  • Anthropic API errors · platform.claude.com/docs/en/api/errors (تم التحقق في 12 يونيو 2026)
  • Anthropic model deprecations · platform.claude.com/docs/en/about-claude/model-deprecations (تم التحقق في 12 يونيو 2026)
  • benchr api-errors.json · السجل المُهيكَل لهذا الخطأ