DEV Community

Cover image for الترحيل إلى كلود فيبل 5.1 من فيبل 5 أو أوبس 5: كل التغييرات الكاسرة
Yusuf Khalidd
Yusuf Khalidd

Posted on Originally published at apidog.com

الترحيل إلى كلود فيبل 5.1 من فيبل 5 أو أوبس 5: كل التغييرات الكاسرة

ترحيل Claude Fable 5.1: قائمة تحقق عملية لأخطاء التوافق

الانتقال إلى Claude Fable 5.1 هو غالبًا مجرد تغيير لمعرّف النموذج، لكن ثلاثة تغييرات قد تعيد أخطاء لم يكن Fable 5 يعيدها، وقد يؤدي فحص ربط السجل إلى تدهور أداء مجموعة أدوات وكيلة مستقرة. أما الانتقال من Opus 5 فيضيف أربعة تغييرات أخرى. يقدّم هذا الدليل نص الخطأ والإصلاح بالترتيب العملي، مع أمثلة يمكن تشغيلها في Apidog قبل الإنتاج.

جرّب Apidog اليوم

الخطوة 0: هل تحتاج إلى الترحيل؟

توصي وثائق Anthropic بالبدء بـ Opus 5، واستخدام Fable 5.1 للتفكير المتطلب والعمل الوكيلي طويل الأمد، أو عندما لا تزال تقييمات Opus 5 بجهد أعلى قصيرة. إذا كان Opus 5 ينجح في تقييماتك، فقد يتضاعف سعر الرموز دون مكاسب ملموسة. أما Fable 5.1 وFable 5 فلهما السعر نفسه، مع قراءات ذاكرة تخزين مؤقت أرخص وأرقام أداء مُدّعاة أفضل؛ لذلك يصبح السؤال هو تكلفة الترحيل فقط.

راجع:

تحقق أولًا من:

  • الاحتفاظ بالبيانات: يتطلب Fable 5.1 الاحتفاظ بالبيانات لمدة 30 يومًا، ولا يعمل بموجب سياسة عدم الاحتفاظ بالبيانات (ZDR) إلا إذا سمحت Anthropic بذلك صراحةً. تحصل المؤسسات التي تستخدم ZDR على خطأ 400 invalid_request_error دون تفاصيل إضافية. Opus 5 متاح مع ZDR.
  • فئة الأولوية: غير مدعومة في Fable 5.1، لكنها مدعومة في Fable 5.
  • حدود المعدل: يشترك Fable 5.1 وFable 5 في مجمع واحد باسم Fable 5.x، لذلك يستهلك الترحيل التدريجي السعة نفسها.

نظرة عامة على Claude Fable 5.1

الخطوة 1: حدّث اسم النموذج

model = "claude-fable-5"    # قبل
model = "claude-opus-5"     # أو قبل
model = "claude-fable-5-1"  # بعد
Enter fullscreen mode Exit fullscreen mode

على Amazon Bedrock استخدم:

anthropic.claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

أما Google Cloud وMicrosoft Foundry ومنصة Claude على AWS فتستخدم:

claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

إذا كنت تستخدم Claude Managed Agents، فهذا هو التغيير الوحيد المطلوب.

التغيير الجذري 1: الاستخدام القسري للأدوات يعيد 400

قبل Fable 5 كانت قيم tool_choice المقبولة هي auto وnone وany وtool. يرفض Fable 5.1 القيمتين الأخيرتين في Messages API وBatches API ونقطة نهاية عدّ الرموز:

tool_choice: type "tool" and "any" are not supported for this model.
Enter fullscreen mode Exit fullscreen mode

السبب هو أن التفكير دائمًا مفعّل، بينما يتجاوز الاستدعاء القسري هذه الآلية وقد يدفع النموذج إلى كتابة خطوات عمله داخل وسائط الأداة.

قبل: Fable 5

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    tools=[record_summary_tool],
    tool_choice={"type": "tool", "name": "record_summary"},
    messages=[{"role": "user", "content": "Summarize: The meeting moved to Thursday."}],
)
Enter fullscreen mode Exit fullscreen mode

بعد: Fable 5.1

اترك tool_choice على auto، واذكر الأداة صراحةً في التعليمات، واستخدم strict: true لمطابقة الوسائط مع المخطط:

record_summary_tool["strict"] = True
record_summary_tool["input_schema"]["additionalProperties"] = False

response = client.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    tools=[record_summary_tool],
    tool_choice={"type": "auto"},
    messages=[{
        "role": "user",
        "content": (
            "Summarize: The meeting moved to Thursday. "
            "Call the record_summary tool with your result."
        ),
    }],
)
Enter fullscreen mode Exit fullscreen mode

اختر الإصلاح بناءً على نية التطبيق:

  • إذا كنت تفرض أداة للحصول على JSON، استخدم المخرجات المنظمة عبر output_config.format.
  • إذا كان يجب استدعاء الأداة في الجولة الحالية، أضف رسالة role: "system" بعد آخر رسالة مستخدم، وسمِّ الأداة واذكر أن الاستدعاء مطلوب. احتفظ بالرسالة في السجل.
  • إذا استخدمت any لضمان أداة واحدة بالضبط، فما زال disable_parallel_tool_use: true يعمل مع auto، لكنه يعني الآن استدعاءً واحدًا على الأكثر.
  • احذف حلقات إعادة المحاولة التي تبحث عن أداة مفقودة؛ تقول Anthropic إن Fable 5.1 يتبع تعليمات الأدوات الصريحة بشكل موثوق.
  • في مؤسسة تستخدم CMEK، لا يتوفر strict: true ولا المخرجات المنظمة في نماذج Fable؛ اعتمد على التعليمات وحدها.

راجع الاستخدام الصارم للأداة.

التغيير الجذري 2: النماذج القديمة لا تقرأ كتل تفكير Fable 5.1

كل كتلة تفكير مرتبطة بالنموذج الذي أنشأها. يستطيع Fable 5.1 قراءة كتل Opus 5 وFable 5 وMythos 5 والنماذج الأقدم، لذلك يمكن الاحتفاظ بالتفكير عند الانتقال إليه. باستثناء Mythos 5.1، لا يستطيع أي نموذج آخر قراءة كتلة أنشأها Fable 5.1.

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

لا تغيّر الكتل يدويًا. مرّرها كما هي، بما في ذلك الكتل الفارغة؛ فقد يؤدي تجريدها إلى خطأ 400.

للمراقبة، أرسل الرأس التجريبي:

thinking-binding-controls-2026-08-01
Enter fullscreen mode Exit fullscreen mode

وسيحتوي الرد على input_transformations التي تسمّي الكتل المسقطة بسبب:

reason: "model_binding_mismatch"
Enter fullscreen mode Exit fullscreen mode

التغيير الجذري 3: تعديل الجولات السابقة يبطل كتل التفكير

هذه أهم نقطة في الترحيل. تكون كتلة تفكير Fable 5.1 صالحة فقط مقابل:

  • مطالبة system الدقيقة.
  • مصفوفة tools الدقيقة.
  • سجل الرسائل السابق للكتلة.

عند تطبيق الفحص، يؤدي تغيير أي من هذه العناصر إلى رفض الطلب:

messages.5.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block". That setting requires the `thinking-binding-controls-2026-08-01" value in the `anthropic-beta` header.
Enter fullscreen mode Exit fullscreen mode

الحسابات المتأثرة

  • الحسابات التي أُنشئت في 31 أغسطس 2026 أو بعده تطبق الفحص.
  • الحسابات الأقدم تسجل عدم التطابق، لكنها لا تتصرف بناءً عليه إلا عند ضبط prefix_mismatch_behavior.
  • تقول Anthropic إن النماذج المستقبلية ستفرض الفحص على جميع الحسابات.
  • إذا كانت أداتك تعمل بمفتاح API يملكه المستخدمون، اختبرها مع تفعيل الحقل لأن الحسابات الجديدة ستطبقه عليهم.
  • يحافظ Claude Code وclaude.ai وManaged Agents وAgent SDK على البادئة.
  • لا يطبق Mythos 5.1 الفحص أصلًا.

ما الذي يبطل الكتل اللاحقة؟

  • تعديل أو إعادة ترتيب أو حذف جولة سابقة، بما في ذلك نتائج الأدوات القديمة.
  • حقن نص في كل طلب ثم حذفه في الطلب التالي.
  • إعادة بناء system أو tools بين الطلبات.
  • استخدام عنوان URL لصورة تقدم بايتات مختلفة في جولة لاحقة.

ما الذي يبقيها صالحة؟

  • إضافة السجل فقط.
  • إزالة سلسلة بادئة من كتل التفكير الأقدم أولًا.
  • تغيير أي معامل خارج system وtools وmessages.
  • نقل علامات cache_control.
  • ضغط السياق أو تحريره من جانب الخادم.

طوق النجاة: إسقاط الكتل غير المتطابقة

response = client.beta.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    thinking={
        "type": "adaptive",
        "block_binding": {
            "prefix_mismatch_behavior": "drop_block"
        },
    },
    betas=["thinking-binding-controls-2026-08-01"],
    messages=history,
)

for t in response.input_transformations or []:
    print(t.path, t.reason)  # prefix_binding_mismatch أو model_binding_mismatch
Enter fullscreen mode Exit fullscreen mode

تسقط واجهة API أول كتلة غير متطابقة وكل كتلة تفكير تليها، ثم تتابع التنفيذ وتبلغ عن كل إسقاط. ينطبق الإعداد على الطلب الحالي فقط، لذلك استمر في إرساله.

في CI استخدم "error" صراحةً حتى يفشل الاختبار عند تعديل السجل. راجع دليل التفكير المحفوظ لمعرفة المراجعة ثلاثية الخطوات وأشكال الضغط التي قد تتعطل، وراجع وثائق التفكير المحفوظ.

ما كنت تفعله افعل هذا بدلًا منه
تعديل system في منتصف الجلسة جمّده في البداية، ثم أضف رسالة role: "system" عندما يصبح التغيير صحيحًا
تعديل tools في منتصف الجلسة صرّح بالمجموعة كاملة مقدمًا، واستخدم كتل tool_addition وtool_removal داخل رسالة نظام مع الرأس التجريبي mid-conversation-tool-changes-2026-07-01
حقن تذكير في كل دورة ثم حذفه استخدم رسالة نظام ذات نطاق دورة مع clear_at: "next_user_message" والرأس التجريبي mid-conversation-system-clear-at-2026-08-21، واتركها في السجل
حذف نتائج الأدوات القديمة من العميل استخدم تحرير السياق من جانب الخادم
ضغط العميل مع إبقاء الجولات الأخيرة حرفيًا استخدم ضغط الخادم، أو رسالة ملخص واحدة مع جولة المستخدم الجديدة، دون إعادة تشغيل بقية السجل
الرجوع إلى صورة عبر URL في جولات متعددة ارفعها مرة واحدة إلى Files API وأرسل file_id

ربط كتل التفكير بالسجل

القادم من Opus 5: أربعة تغييرات إضافية

1. لا يمكن تعطيل التفكير

كان Opus 5 يقبل:

thinking = {"type": "disabled"}
Enter fullscreen mode Exit fullscreen mode

عند جهد high أو أقل. يعيد Fable 5.1 خطأ 400 عند أي مستوى جهد. احذف الحقل، وتحكم في الإنفاق عبر جهد أقل، وأعد النظر في max_tokens للمسارات التي لا تحتاج إلى تفكير.

2. السرد بين الأدوات ينتقل إلى كتل التفكير

في Opus 5 كان النص بين استدعاءات الأدوات يعود ككتل text. في Fable 5.1 يعود ككتل thinking لتحديث التقدم، وتكون فارغة افتراضيًا عندما يكون display: "omitted".

إذا كانت واجهة المستخدم تعرض هذا السرد، فعّل التحديثات:

thinking = {
    "type": "adaptive",
    "display": "updates",
}
Enter fullscreen mode Exit fullscreen mode

وأرسل الرأس التجريبي:

thinking-display-updates-2026-08-18
Enter fullscreen mode Exit fullscreen mode

3. مجموعة المصنفات أوسع

كان Opus 5 يستخدم مصنفات إلكترونية فقط. أما Fable 5.1 فيغطي:

  • cyber
  • bio
  • frontier_llm
  • reasoning_extraction
  • general_harms

تعامل مع stop_reason: "refusal" قبل قراءة content، واستخدم:

fallbacks: "default"
Enter fullscreen mode Exit fullscreen mode

مع الرأس التجريبي:

server-side-fallback-2026-07-01
Enter fullscreen mode Exit fullscreen mode

الأهداف المسموح بها هي Opus 4.8 وOpus 5، لذلك يمكن للطلب المرفوض العودة إلى النموذج الذي كنت تهاجر منه.

4. السعر والاحتفاظ

عند الانتقال من Opus 5 يصبح السعر 10 دولارات و50 دولارًا بدلًا من 5 دولارات و25 دولارًا، بينما تصبح قراءات ذاكرة التخزين المؤقت 0.25 دولار بدلًا من 0.50 دولار. وتُفقد ميزة ZDR.

راجع تحليل الأسعار.

إذا كنت قادمًا من Opus 4.8 أو أقدم، طبّق أولًا ترحيل Opus 4.8 إلى Opus 5. غالبًا ما تعيد تكاملات Opus 4.8 بناء المطالبة النظامية أو تقتطع الجولات القديمة، ولم يكن Opus 4.8 يعترض على ذلك.

تغييرات سلوكية يجب اختبارها

لا تعيد هذه التغييرات أخطاء، لكن لها آثارًا تشغيلية:

  • قد يصدر Fable 5.1 استدعاء أداة واحدًا في كل جولة بدل تجميع عدة استدعاءات كما في Fable 5. قِس نسبة الجولات متعددة الاستدعاءات، وأضف حافزًا للتجميع إذا انخفضت.
  • يكتب رسائل تقدم أقل. فعّل display: "updates" واحذف تعليمات المطالبة التي تطلب منه حجب النتائج.
  • عند الجهد low يستدعي أدوات البحث بمعدل أقل؛ ارفع الجهد للجولات التي تحتاج إلى بيانات حديثة.

التغييرات الموصى بها

  • تغيير الجهد لكل رسالة: باستخدام الرأس التجريبي mid-conversation-output-config-2026-07-01، غيّر الجهد عبر رسالة role: "system" ذات محتوى فارغ وتحمل output_config بدل تغيير القيمة العلوية؛ فهذا يعيد ضبط ذاكرة التخزين المؤقت.
  • ابدأ بـ high ثم امسح المستويات: تظهر أكبر مكاسب Fable 5 عند xhigh وmax. تقول Anthropic إن medium يقارب أداء Fable 5 بتكلفة أقل. أسماء مستويات الجهد لا تنتقل بين النماذج.
  • قصّ السياق من جانب الخادم: لا يُعد ضغط الخادم، المتاح تجريبيًا عبر compact-2026-01-12، ولا تحرير السياق تعديلات على السجل.

قائمة تحقق الترحيل

  • [ ] تأكيد الاحتفاظ بالبيانات لمدة 30 يومًا وعدم الاعتماد على Priority Tier.
  • [ ] تحديث اسم النموذج إلى claude-fable-5-1.
  • [ ] استبدال tool_choice من النوع any أو tool بـauto مع تعليمات صريحة وstrict: true، أو استخدام مخرجات منظمة.
  • [ ] عند القدوم من Opus 5، إزالة thinking: {"type": "disabled"} وإعادة النظر في max_tokens.
  • [ ] تمرير كتل التفكير دون تغيير في كل جولة، بما فيها الكتل الفارغة.
  • [ ] تشغيل جلسة اختبار مع prefix_mismatch_behavior: "drop_block" وتسجيل input_transformations.
  • [ ] إصلاح كل prefix_binding_mismatch.
  • [ ] تجميد system وtools في بداية الجلسة.
  • [ ] نقل التذكيرات لكل جولة إلى رسائل نظام ذات نطاق دورة وعدم حذفها.
  • [ ] اختيار prefix_mismatch_behavior للإنتاج ومراقبته.
  • [ ] التعامل مع stop_reason: "refusal" وإضافة fallbacks: "default".
  • [ ] تفعيل display: "updates" إذا كانت الواجهة تعرض النص بين الأدوات.
  • [ ] إعادة مسح الجهد بدءًا من high وإعادة تحديد التكلفة الأساسية. لم تتغير أعداد الرموز عن Fable 5، وقراءات ذاكرة التخزين المؤقت أصبحت بربع السعر.

تشغيل الاختبارات في Apidog

أنشئ مجموعة تحتوي على طلب لكل تغيير جذري:

  1. استدعاء tool_choice قسري، مع توقع خطأ 400 المذكور.
  2. استدعاء thinking: disabled، مع توقع خطأ 400.
  3. تسلسل من طلبين يعدّل مطالبة النظام بين الجولات مع تفعيل رأس ربط التفكير، مع توقع prefix_binding_mismatch.

أضف النسخ الناجحة بجوارها، وتحقق من:

  • stop_reason
  • أن مصفوفة input_transformations فارغة

شغّل المجموعة في CI عبر واجهة سطر أوامر Apidog عند كل تغيير في مجموعة الأدوات. يمكنك تحميل Apidog لبناء الاختبارات؛ وتتوفر أمثلة طلبات واجهة API.

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

هل الترحيل من Fable 5 إلى Fable 5.1 مباشر؟

في الأغلب نعم، لكن:

  • tool_choice القسري يعيد خطأ 400.
  • لا تستطيع النماذج القديمة قراءة كتل تفكير Fable 5.1.
  • تعديل الجولات السابقة يبطل كتل التفكير اللاحقة في الحسابات التي تطبق الفحص.
  • بقية السلوك ينتقل عادةً دون تغييرات كبيرة.

ماذا يعني «مرتبط بمحادثة مختلفة»؟

غيّر الكود شيئًا قبل كتلة تفكير Fable 5.1 ثم أعاد تشغيلها. أوقف تعديل السجل، أو أرسل الرأس thinking-binding-controls-2026-08-01 مع:

prefix_mismatch_behavior = "drop_block"
Enter fullscreen mode Exit fullscreen mode

هل يفرض حسابي فحص تعديل السجل؟

نعم إذا أُنشئ الحساب في 31 أغسطس 2026 أو بعده. الحسابات الأقدم تفرضه فقط عند تعيين prefix_mismatch_behavior.

هل يمكنني الاحتفاظ بمطالبات Fable 5؟

نعم. تقول Anthropic إنها يجب أن تعمل جيدًا دون تغييرات. أعد تشغيل مسح الجهد، وتوقع عددًا أقل من استدعاءات الأدوات المتوازية في الحلقات الطويلة.

ما الذي يتعطل عند الترحيل من Opus 5؟

كل ما سبق، إضافةً إلى:

  • thinking: disabled يعيد خطأ 400 عند أي جهد.
  • السرد بين الأدوات ينتقل إلى كتل التفكير.
  • تصبح مجموعة المصنفات أوسع.
  • يتضاعف السعر.
  • تُفقد ميزة ZDR.

هل لدى Bedrock وGoogle Cloud التغييرات نفسها؟

تغيير اسم النموذج نعم. كانت عناصر التحكم في ربط التفكير متاحة في Claude API ومنصة Claude على AWS عند الإطلاق، وستصل إلى كل نموذج على Bedrock وGoogle Cloud. بدون عناصر التحكم، يكون الحل هو تجريد كتل التفكير وإعادة المحاولة مرة واحدة.

مراجع

Top comments (0)