ترحيل Claude Fable 5.1: قائمة تحقق عملية لأخطاء التوافق
الانتقال إلى Claude Fable 5.1 هو غالبًا مجرد تغيير لمعرّف النموذج، لكن ثلاثة تغييرات قد تعيد أخطاء لم يكن Fable 5 يعيدها، وقد يؤدي فحص ربط السجل إلى تدهور أداء مجموعة أدوات وكيلة مستقرة. أما الانتقال من Opus 5 فيضيف أربعة تغييرات أخرى. يقدّم هذا الدليل نص الخطأ والإصلاح بالترتيب العملي، مع أمثلة يمكن تشغيلها في 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، لذلك يستهلك الترحيل التدريجي السعة نفسها.
الخطوة 1: حدّث اسم النموذج
model = "claude-fable-5" # قبل
model = "claude-opus-5" # أو قبل
model = "claude-fable-5-1" # بعد
على Amazon Bedrock استخدم:
anthropic.claude-fable-5-1
أما Google Cloud وMicrosoft Foundry ومنصة Claude على AWS فتستخدم:
claude-fable-5-1
إذا كنت تستخدم 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.
السبب هو أن التفكير دائمًا مفعّل، بينما يتجاوز الاستدعاء القسري هذه الآلية وقد يدفع النموذج إلى كتابة خطوات عمله داخل وسائط الأداة.
قبل: 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."}],
)
بعد: 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."
),
}],
)
اختر الإصلاح بناءً على نية التطبيق:
- إذا كنت تفرض أداة للحصول على 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
وسيحتوي الرد على input_transformations التي تسمّي الكتل المسقطة بسبب:
reason: "model_binding_mismatch"
التغيير الجذري 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.
الحسابات المتأثرة
- الحسابات التي أُنشئت في 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
تسقط واجهة 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"}
عند جهد high أو أقل. يعيد Fable 5.1 خطأ 400 عند أي مستوى جهد. احذف الحقل، وتحكم في الإنفاق عبر جهد أقل، وأعد النظر في max_tokens للمسارات التي لا تحتاج إلى تفكير.
2. السرد بين الأدوات ينتقل إلى كتل التفكير
في Opus 5 كان النص بين استدعاءات الأدوات يعود ككتل text. في Fable 5.1 يعود ككتل thinking لتحديث التقدم، وتكون فارغة افتراضيًا عندما يكون display: "omitted".
إذا كانت واجهة المستخدم تعرض هذا السرد، فعّل التحديثات:
thinking = {
"type": "adaptive",
"display": "updates",
}
وأرسل الرأس التجريبي:
thinking-display-updates-2026-08-18
3. مجموعة المصنفات أوسع
كان Opus 5 يستخدم مصنفات إلكترونية فقط. أما Fable 5.1 فيغطي:
cyberbiofrontier_llmreasoning_extractiongeneral_harms
تعامل مع stop_reason: "refusal" قبل قراءة content، واستخدم:
fallbacks: "default"
مع الرأس التجريبي:
server-side-fallback-2026-07-01
الأهداف المسموح بها هي 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
أنشئ مجموعة تحتوي على طلب لكل تغيير جذري:
- استدعاء
tool_choiceقسري، مع توقع خطأ 400 المذكور. - استدعاء
thinking: disabled، مع توقع خطأ 400. - تسلسل من طلبين يعدّل مطالبة النظام بين الجولات مع تفعيل رأس ربط التفكير، مع توقع
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"
هل يفرض حسابي فحص تعديل السجل؟
نعم إذا أُنشئ الحساب في 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)