تم إطلاق Claude Fable 5.1 في الأول من سبتمبر 2026، ومعرف نموذج API هو السلسلة الدقيقة claude-fable-5-1، بدون لاحقة تاريخ. يكلف نفس السعر وهو 10 دولارات لكل مليون رمز إدخال و 50 دولارًا لكل مليون رمز إخراج مثل Fable 5، مع تخفيض تكلفة قراءات ذاكرة التخزين المؤقت إلى 0.25 دولار لكل مليون، ويحمل ثلاثة تغييرات جوهرية لم تكن موجودة في Fable 5.
يشرح هذا الدليل المسار بأكمله: الحصول على مفتاح، إرسال أول طلب، التحكم في الجهد، البث، استخدام الأدوات بدون فرض tool_choice، آليات التراجع عن الرفض، تحديثات التقدم، وقراءة كائن usage لتأكيد أن ذاكرة التخزين المؤقت تعمل بالمعدل الجديد. كل طلب هو HTTP عادي مع JSON، لذا يمكنك بنائه وتصحيح أخطائه في Apidog قبل أن يدخل في كود التطبيق.
إذا كنت تقوم بترحيل خدمة Fable 5 أو Opus 5 موجودة بدلاً من البدء من جديد، فاقرأ دليل الترحيل الكامل بالإضافة إلى هذا الدليل. للحصول على نظرة عامة عن النموذج، ابدأ بـ ما هو Claude Fable 5.1.

قبل أول استدعاء لك: ثلاثة أمور تعيد رمز الخطأ 400
1. التفكير لا يمكن تهيئته، فقط توجيهه. يقوم Fable 5.1 بتشغيل التفكير التكيفي (adaptive thinking) في كل طلب. احذف حقل thinking، أو أرسل {"type": "adaptive"}. كلا الخيارين {"type": "disabled"} و {"type": "enabled", "budget_tokens": N} يعيدان رمز الخطأ 400. إذا كنت قادمًا من Opus 5، حيث كان disabled مقبولاً عند جهد high أو أقل، فقم بإزالته وتحكم في الإنفاق باستخدام output_config.effort بدلاً من ذلك.
2. انتهى استخدام الأدوات الإجباري. tool_choice: {"type": "any"} و {"type": "tool", "name": "..."} يعيدان رسالة tool_choice: type "tool" and "any" are not supported for this model. الحل موجود في خطوة استخدام الأدوات أدناه.
3. تحتاج مؤسستك إلى الاحتفاظ بالبيانات لمدة 30 يومًا. Fable 5.1 هو نموذج مغطى (Covered Model). الطلب من مؤسسة أو مساحة عمل لا تحتفظ بالبيانات يعيد رسالة 400 invalid_request_error بدون أي دليل آخر. إذا فشل استدعاؤك الأول وبدا النص صحيحًا، فتحقق من الاحتفاظ بالبيانات قبل أي شيء آخر.
تم توثيق هذه الأمور الثلاثة في قسم ما الجديد في Claude Fable 5.1 من Anthropic.
الخطوة 1: الحصول على مفتاح API
سجّل الدخول إلى Claude Console، وافتح قسم مفاتيح API في إعدادات مؤسستك، وأنشئ مفتاحًا. انسخه مرة واحدة؛ لا يمكنك قراءته لاحقًا. قم بتصديره بدلاً من لصقه في الكود:
export ANTHROPIC_API_KEY="sk-ant-..."
في Apidog، قم بتخزينه كمتغير بيئة باسم ANTHROPIC_API_KEY وارجع إليه كـ {{ANTHROPIC_API_KEY}} في الرأس (header)، حتى لا يصل المفتاح أبدًا إلى نص طلب محفوظ.
الخطوة 2: إرسال طلبك الأول
أنشئ طلب POST إلى https://api.anthropic.com/v1/messages بثلاثة رؤوس (headers): x-api-key، anthropic-version: 2023-06-01، و content-type: application/json.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-fable-5-1",
"max_tokens": 16000,
"messages": [
{"role": "user", "content": "Explain the difference between idempotent and safe HTTP methods, with one example each."}
]
}'
الاستدعاء نفسه في بايثون باستخدام SDK الرسمي:
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
messages=[{"role": "user", "content": "Explain the difference between idempotent and safe HTTP methods, with one example each."}],
)
if response.stop_reason == "refusal":
print("declined:", response.stop_details.category if response.stop_details else None)
else:
for block in response.content:
if block.type == "text":
print(block.text)
عادتان يجب بناؤهما من أول استدعاء. تحقق من stop_reason قبل قراءة content، لأن رفض المصنف (classifier refusal) هو HTTP 200 مع مصفوفة محتوى فارغة. وامنح max_tokens مساحة كافية. فهو يحدد سقف رموز التفكير بالإضافة إلى رموز الاستجابة معًا، والتفكير يعمل دائمًا، لذا فإن القيمة الضيقة التي تم ضبطها لنموذج لا يستخدم التفكير ستؤدي إلى الاقتطاع هنا.
تتضمن الاستجابة كتلة thinking يكون نصها فارغًا ضمن العرض الافتراضي "omitted". هذا متوقع. قم بإعادتها دون تغيير في الجولة التالية.
الخطوة 3: التحكم في التكلفة والعمق باستخدام الجهد (effort)
يعتبر معامل الجهد (effort parameter) الرافعة الأساسية في Fable 5.1. يتم وضعه داخل output_config، وليس في المستوى الأعلى، ويقبل القيم low و medium و high و xhigh و max. القيمة الافتراضية هي high.
{
"model": "claude-fable-5-1",
"max_tokens": 16000,
"output_config": {"effort": "medium"},
"messages": [{"role": "user", "content": "Summarize this changelog in five bullets."}]
}
إرشادات Anthropic: ابدأ بـ high، ثم قم بتجربة القيم الأخرى مقابل تقييماتك الخاصة، وأعد تشغيل التجربة حتى لو كنت قد قمت بها على Fable 5، لأن أسماء المستويات لا تتوافق مع نفس كمية التفكير عبر النماذج. يدّعون أن medium يطابق Fable 5 تقريبًا بتكلفة أقل وأن low غالبًا ما يكون منافسًا لـ Opus و Sonnet من حيث التكلفة لكل مهمة. سلوكان خاصان بالجهد يجب معرفتهما: عند low، يستدعي Fable 5.1 أدوات البحث والاسترجاع بشكل أقل ويرد من الذاكرة أكثر، وعند xhigh و max يمكنه صياغة مخرجات طويلة في تفكيره ثم إعادة كتابتها، لذا قم بتعيين max_tokens لكليهما.
تغيير الجهد أثناء المحادثة (تجريبي). في Fable 5، كان تغيير الجهد على المستوى الأعلى بين الطلبات يؤدي إلى حذف البادئة المخزنة مؤقتًا. في Fable 5.1، رسالة role: "system" بمحتوى فارغ و output_config تغير الجهد من دور المستخدم التالي فصاعدًا دون إبطال ذاكرة التخزين المؤقت. يتطلب ذلك رأس بيتا mid-conversation-output-config-2026-07-01 واسم مساحة client.beta.messages.
response = client.beta.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
output_config={"effort": "high"},
betas=["mid-conversation-output-config-2026-07-01"],
messages=[
{"role": "user", "content": "Plan a migration from SQLite to PostgreSQL in three short steps."},
{"role": "assistant", "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."},
{"role": "system", "content": [], "output_config": {"effort": "low"}},
{"role": "user", "content": "Summarize the plan in one sentence."},
],
)
تخفيض الجهد بهذه الطريقة موثوق به. رفعه يعمل بشكل أفضل للقفزات الكبيرة، مثل من low إلى xhigh. يغطي دليل معامل الجهد لـ Opus 5 المستويات الخمسة بعمق، وتنطبق نفس الدلالات هنا.
الخطوة 4: بث الاستجابة
يمكن أن تستمر المهام الصعبة في Fable 5.1 لدقائق بجهد أعلى، لذا قم ببث أي شيء قد يكون طويلاً. يتطلب SDK البث لقيم max_tokens القريبة من الحد الأقصى 128,000 لتجنب مهلات HTTP.
with client.messages.stream(
model="claude-fable-5-1",
max_tokens=64000,
messages=[{"role": "user", "content": "Write a test plan for a rate-limited public API."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print(final.stop_reason, final.usage.output_tokens)
في Apidog، يتم عرض الاستجابات المتدفقة فور وصولها، وهي أسرع طريقة لمعرفة المدة التي تستغرقها جولة الجهد العالي high في التفكير قبل ظهور أول رمز نصي.
الخطوة 5: إضافة استخدام الأداة بدون فرضها
عرّف الأدوات بنفس الطريقة كما في Fable 5. ما يتغير هو كيفية ضمان استدعاء. في Fable 5، كان بإمكانك فرضه باستخدام tool_choice: {"type": "tool", ...}. في Fable 5.1، هذا يعيد خطأ 400، لأن الاستدعاء الإجباري كان سيتخطى التفكير وسيقوم النموذج بكتابة تفكيره في الوسيطات.
يتكون البديل من ثلاثة أجزاء: حافظ على tool_choice عند auto، قم بتسمية الأداة في التعليمات، واضبط strict: true (استخدام صارم للأدوات) على الأداة مع additionalProperties: false في المخطط لكي تكون الوسيطات صالحة دائمًا.
record_summary_tool = {
"name": "record_summary",
"description": "Record the structured summary of the document.",
"strict": True,
"input_schema": {
"type": "object",
"properties": {"summary": {"type": "string"}},
"required": ["summary"],
"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" بعد آخر دور للمستخدم تحدد الأداة وتقول إن الاستدعاء مطلوب، واحتفظ بهذه الرسالة في السجل بعد ذلك. لا يزال tool_choice: {"type": "none"} يعمل لدورة لا يجب أن تستدعي الأدوات.
الحلقة العاملة نفسها لم تتغير: عندما يكون stop_reason هو tool_use، نفذ كل كتلة tool_use، أعد جميع كتل tool_result في رسالة مستخدم واحدة، وألحق دور المساعد بالضبط كما تم إرجاعه، بما في ذلك كتل التفكير. هذه العبارة الأخيرة تهم Fable 5.1 أكثر من أي نموذج سابق، لأسباب يفسرها دليل التفكير المحفوظ.
سلوك واحد يجب مراقبته: في الحلقات الطويلة حيث تكون القراءات المستقلة التالية ضمنية فقط من خلال المهمة، قد يصدر Fable 5.1 استدعاء أداة واحدًا لكل دور حيث كان Fable 5 يجمع عدة استدعاءات. إصلاح Anthropic هو تلميح من جملة واحدة يلحق بعد كل رسالة نتيجة أداة: "أولاً، اذكر بشكل خاص ما تحتاجه بعد ذلك؛ ثم اطلب كل عنصر لا يعتمد على نتيجة آخر في هذه الاستجابة الواحدة." أرسله كرسالة نظام نطاقها جولة (clear_at: "next_user_message"، رأس بيتا mid-conversation-system-clear-at-2026-08-21) واترك كل نسخة سابقة في مكانها.
الخطوة 6: معالجة حالات الرفض باستخدام آليات التراجع (fallbacks)
يشغّل Fable 5.1 مصنفات الأمان. يتم إرجاع الطلب المرفوض كـ HTTP 200 مع stop_reason: "refusal" وكائن stop_details يحدد الفئة: cyber، bio، frontier_llm، reasoning_extraction، أو general_harms. لا يتم محاسبة الرفض قبل أي إخراج.
قم بالاشتراك في آليات التراجع افتراضيًا. أبسط شكل هو fallbacks: "default" مع رأس بيتا server-side-fallback-2026-07-01، والذي يعيد محاولة طلب مرفوض على النموذج الذي توصي به Anthropic لهذه الفئة. بالنسبة لـ Fable 5.1، الأهداف المسموح بها هي claude-opus-4-8 و claude-opus-5.
response = client.beta.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
fallbacks="default",
betas=["server-side-fallback-2026-07-01"],
messages=[{"role": "user", "content": "Audit this authentication middleware for logic bugs."}],
)
fallback_ran = any(
entry.type == "fallback_message" for entry in (response.usage.iterations or [])
)
if fallback_ran and response.stop_reason != "refusal":
print("served by", response.model)
تسمي الاستجابة النموذج المستخدم في حقل model على مستوى أعلى، وتشير كتلة محتوى fallback إلى التسليم. حافظ على هذه الكتلة حيث ظهرت عند إعادة إرسال الدور. هناك قيدان: يتم رفض fallbacks على Batches API، وهو غير متاح على Bedrock، Google Cloud، أو Foundry، حيث يجب عليك تسجيل BetaRefusalFallbackMiddleware الخاص بـ SDK على العميل بدلاً من ذلك. يغطي دليل معالجة الرفض الفوترة، والتوجيه الثابت، وإعادة المحاولة اليدوية مع رصيد التراجع.
الخطوة 7: الحصول على تحديثات التقدم خلال الدورات الطويلة
بين استدعاءات الأدوات، يكتب Fable 5.1 ملاحظات قصيرة عما وجده وما سيفعله بعد ذلك. تصل كل واحدة منها ككتلة thinking خاصة بها فورًا قبل استدعاء الأداة، وتحت العرض الافتراضي display تكون هذه الكتل فارغة. اضبط display: "updates" مع رأس البيتا thinking-display-updates-2026-08-18 لاستقبالها كنص بينما يظل التفكير نفسه مخفيًا.
{
"model": "claude-fable-5-1",
"max_tokens": 16000,
"thinking": {"type": "adaptive", "display": "updates"},
"tools": [...],
"messages": [{"role": "user", "content": "Review the PRs open against our billing service."}]
}
أي كتلة thinking بنص غير فارغ تكون سطر حالة يمكنك عرضه. يكتب Fable 5.1 عددًا أقل منها مقارنة بـ Fable 5، لذا إذا كانت واجهة المستخدم الخاصة بك تعتمد على السرد، فقم أيضًا بإزالة أي سطر مطالبة يخبر النموذج بالاحتفاظ بالنتائج للاستجابة النهائية.
الخطوة 8: قراءة كائن الاستخدام للحصول على سعر ذاكرة التخزين المؤقت 0.25 دولار
إن التخزين المؤقت للمطالبات هو المكان الذي يظهر فيه تغيير تسعير Fable 5.1. ضع cache_control على البادئة الثابتة وتأكد من وجود نتائج في usage:
response = client.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
system=[{"type": "text", "text": LONG_STABLE_SYSTEM_PROMPT, "cache_control": {"type": "ephemeral"}}],
messages=[{"role": "user", "content": "Which endpoints in the spec lack an error schema?"}],
)
u = response.usage
print(u.input_tokens, u.cache_creation_input_tokens, u.cache_read_input_tokens)
عند الإرسال الأول، تكون قيمة cache_creation_input_tokens غير صفرية (يتم محاسبتها بسعر 12.50 دولارًا لكل مليون لـ TTL لمدة 5 دقائق). عند الإرسال الثاني خلال خمس دقائق، يجب أن تكون قيمة cache_read_input_tokens غير صفرية، ويتم محاسبتها بسعر 0.25 دولار لكل مليون. إذا بقيت صفرًا عبر الطلبات المتطابقة، فإن شيئًا ما في البادئة يتغير في كل مرة: طابع زمني في مطالبة النظام، JSON غير مرتب، مصفوفة أدوات متغيرة. الحد الأدنى للمطالبة القابلة للتخزين المؤقت هو 512 رمزًا.
حقيقتان حول ذاكرة التخزين المؤقت خاصتان بهذا النموذج. نظرًا لأن الفشل يكلف 40 ضعف التخزين الناجح، فإن الحفاظ على ذاكرة التخزين المؤقت دافئة أصبح أكثر أهمية مما كان عليه في Fable 5، كما أن كلاً من الجهد لكل رسالة ورسائل النظام المحددة للدورة موجودة جزئيًا حتى تتمكن من تغيير الأمور في منتصف الجلسة دون إعادة تعيين. كما أن نفس التعديلات التي تعيد تعيين ذاكرة التخزين المؤقت (إعادة بناء system، تعديل الدورات السابقة) تبطل الآن أيضًا كتل التفكير، لذا فإن انضباط الإلحاق فقط يؤتي ثماره مرتين.
اختبار وتصحيح الأخطاء في التدفق بأكمله باستخدام Apidog
احفظ كل خطوة من الخطوات المذكورة أعلاه كطلب في مجموعة Apidog واحدة: أول استدعاء، متغيرات الجهد، البث، حلقة الأداة، آلية التراجع، فحص ذاكرة التخزين المؤقت. استخدم متغيرات البيئة للمفتاح ولـ model، بحيث يصبح التبديل بين مجموعتي claude-fable-5 و claude-fable-5-1 تعديلاً واحدًا. ثم أضف التأكيدات: stop_reason ليس refusal في مطالبات الاختبار السليمة لديك، usage.cache_read_input_tokens أكبر من الصفر في طلب ذاكرة التخزين المؤقت الثاني، ولا يوجد إدخال input_transformations له reason: "prefix_binding_mismatch" عند التشغيل برأس ربط التفكير. قم بتشغيل المجموعة قبل وبعد أي تغيير في التجهيزات. قم بتنزيل Apidog لإعداده؛ تعمل نفس المجموعة كفحص CI من خلال Apidog CLI.
الأخطاء والمآزق التي ستواجهها
- 400
tool_choice: type "tool" and "any" are not supported for this model.قم بالتبديل إلىautoبالإضافة إلى تعليمات وstrict: true. - 400 على
thinking: {"type": "disabled"}. أزل الحقل. قلل الجهد بدلاً من ذلك. - 400
invalid_request_errorمع نص صحيح. تحقق من أن المؤسسة أو مساحة العمل لديها احتفاظ بالبيانات لمدة 30 يومًا. - 400
Invalid signature in thinking block. The block is bound to a different conversation.قام الكود الخاص بك بتحرير دور سابق، أو مطالبة النظام، أو مصفوفة الأدوات. راجع دليل التفكير المحفوظ. - نص تفكير فارغ صامت. متوقع تحت
display: "omitted". استخدم"summarized"أو"updates"إذا كنت تقوم بعرضه. - قراءات ذاكرة التخزين المؤقت بصفر. بادئة متقلبة. قم بالتدقيق بحثًا عن الطوابع الزمنية والكائنات غير المرتبة.
- فشل التحقق من صحة طلب Priority Tier. لا يدعم Fable 5.1 فئة الأولوية (Priority Tier). يدعمها Fable 5.
الأسئلة الشائعة
ما هو معرّف النموذج لـ Claude Fable 5.1 API؟ claude-fable-5-1. على Amazon Bedrock هو anthropic.claude-fable-5-1؛ تستخدم Google Cloud و Microsoft Foundry و Claude Platform على AWS claude-fable-5-1.
هل أحتاج إلى رأس بيتا (beta header) لاستخدام Claude Fable 5.1؟ لا. النموذج الأساسي، التفكير التكيفي، الجهد، الأدوات، والتخزين المؤقت كلها تعمل على رأس anthropic-version: 2023-06-01 القياسي. لا تكون رؤوس البيتا ضرورية إلا لضبط الجهد لكل رسالة، ورسائل النظام ذات النطاق الدوري، وتحديثات التقدم، وآليات التراجع من جانب الخادم، وعناصر التحكم في ربط التفكير.
هل يمكنني فرض استدعاء أداة على Claude Fable 5.1؟ لا. tool_choice any و tool يعيدان رمز الخطأ 400. استخدم auto، قم بتسمية الأداة في المطالبة، واضبط strict: true للوسيطات الصالحة للمخطط، أو استخدم المخرجات المنظمة لاستخراج JSON.
ما هو الحد الأقصى للإخراج في Claude Fable 5.1 API؟ 128,000 رمز على Messages API. قم بالبث لأي شيء كبير. لم يتم إدراج إصدار بيتا Batch API البالغ 300,000 رمز لـ Fable 5.1.
كيف أرى قراءات ذاكرة التخزين المؤقت الأقل تكلفة؟ انظر إلى usage.cache_read_input_tokens في طلب متكرر. تُحاسب هذه الرموز بسعر 0.25 دولار لكل مليون في Fable 5.1، مقابل 1 دولار في Fable 5 و 0.50 دولار في Opus 5. تفاصيل التسعير توضح الأرقام.
هل لا يزال دليل Fable 5 API ينطبق؟ بشكل عام. يغطي دليل Fable 5 API نفس نقطة النهاية، لكن أمثلته لاستخدام الأدوات الإجبارية تعيد الآن رمز الخطأ 400 ويسبق تغيير الجهد لكل رسالة وتحديثات التقدم.
