อัปเกรด Claude Fable 5.1 จาก Fable 5 หรือ Opus 5: ทุก Breaking Change

ย้ายไปใช้ Claude Fable 5.1 จาก Fable 5 หรือ Opus 5: การบังคับใช้ tool_choice 400, บล็อกการคิดแบบทางเดียว, การตรวจสอบการแก้ไขประวัติ, การแก้ไขทั้งหมด และรายการตรวจสอบฉบับสมบูรณ์

Ashley Goolam

Ashley Goolam

2 September 2026

อัปเกรด Claude Fable 5.1 จาก Fable 5 หรือ Opus 5: ทุก Breaking Change

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

การย้ายไปใช้ Claude Fable 5.1 ส่วนใหญ่เป็นการสลับ ID โมเดล อินเทอร์เฟซ API, ข้อจำกัด, ราคาต่อโทเค็น, ตัวแยกโทเค็น, การคิดแบบปรับตัวตลอดเวลา และการจัดการการปฏิเสธ ล้วนตรงกับ Fable 5 แต่มีการเปลี่ยนแปลงสามอย่างที่ทำให้เกิดข้อผิดพลาดที่ Fable 5 ไม่เคยมีมาก่อน และหนึ่งในนั้นคือการตรวจสอบการแก้ไขประวัติ ซึ่งอาจทำให้ระบบเอเจนต์ที่ทำงานได้ดีมาตลอดหนึ่งปีเสื่อมประสิทธิภาพลงโดยไม่รู้ตัว การเปลี่ยนจาก Opus 5 จะเพิ่มอีกสี่รายการ

คู่มือนี้คือรายการตรวจสอบพร้อมข้อความแสดงข้อผิดพลาดและวิธีแก้ไขที่แม่นยำสำหรับแต่ละรายการ ตามลำดับที่คุณจะพบ สร้างขึ้นจาก คู่มือการโยกย้าย และ มีอะไรใหม่ใน Claude Fable 5.1 ของ Anthropic ทุกส่วนย่อยสามารถคัดลอกลงใน Apidog และรันกับปลายทางจริงก่อนที่จะถึงการผลิต สำหรับภาพรวมโมเดล โปรดเริ่มต้นด้วย Claude Fable 5.1 คืออะไร

ขั้นตอนที่ 0: ยืนยันว่าคุณควรย้ายหรือไม่

เอกสารของ Anthropic ระบุให้เริ่มต้นด้วย Opus 5 และใช้ Fable 5.1 “สำหรับการให้เหตุผลที่ซับซ้อนและงานเอเจนต์ระยะยาว หรือเมื่อการประเมินของคุณบน Claude Opus 5 ที่ใช้ความพยายามสูงยังคงไม่เพียงพอ” หาก Opus 5 ผ่านการประเมินของคุณ การย้ายจะเพิ่มราคาต่อโทเค็นของคุณเป็นสองเท่าโดยไม่มีการวัดผลที่เพิ่มขึ้น หากคุณใช้ Fable 5 อยู่ จะเป็นราคาเดียวกันกับการอ่านแคชที่ถูกกว่าและตัวเลขที่อ้างว่าดีกว่า ดังนั้นคำถามคือต้องใช้ความพยายามในการปรับปรุงระบบมากแค่ไหน การเปรียบเทียบ Fable 5.1 vs Fable 5 และ Fable 5.1 vs Opus 5 ครอบคลุมการตัดสินใจนี้

สามการตรวจสอบคุณสมบัติเบื้องต้น:

ขั้นตอนที่ 1: อัปเดตชื่อโมเดล

model = "claude-fable-5"    # Before
model = "claude-opus-5"     # Or before
model = "claude-fable-5-1"  # After

บน Amazon Bedrock, ID คือ anthropic.claude-fable-5-1 Google Cloud, Microsoft Foundry และ Claude Platform บน 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.

เหตุผลของ Anthropic: การคิดจะเปิดใช้งานอยู่เสมอ และการเรียกใช้ที่ถูกบังคับจะข้ามขั้นตอนนี้ ทำให้โมเดลจะเขียนกระบวนการคิดลงในอาร์กิวเมนต์ของเครื่องมือ

ก่อนหน้า (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 แต่ตอนนี้หมายถึงการเรียกใช้ได้สูงสุดเพียงครั้งเดียว ลบการวนซ้ำการลองใหม่เมื่อไม่มีเครื่องมือ (retry-on-missing-tool) ออก Anthropic กล่าวว่า Fable 5.1 ปฏิบัติตามคำสั่งเครื่องมือที่ชัดเจนได้อย่างน่าเชื่อถือ ในองค์กร CMEK, strict: true และเอาต์พุตที่มีโครงสร้างไม่สามารถใช้ได้กับโมเดล Fable ดังนั้นให้พึ่งพาคำสั่งอย่างเดียว

การเปลี่ยนแปลงที่ส่งผลกระทบ 2: โมเดลรุ่นเก่าไม่สามารถอ่านบล็อกความคิดของ Fable 5.1 ได้

บล็อกความคิดทุกบล็อกจะบันทึกโมเดลที่สร้างมันขึ้นมา Fable 5.1 สามารถอ่านบล็อกจาก Opus 5, Fable 5, Mythos 5 และโมเดลรุ่นก่อนหน้าได้ ดังนั้นการสนทนาที่ย้ายไปยัง Fable 5.1 จึงยังคงรักษาการให้เหตุผลไว้ได้ ยกเว้น Mythos 5.1 ไม่มีโมเดลอื่นใดที่สามารถอ่านบล็อกของ Fable 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 บัญชีเก่าจะบันทึกความไม่ตรงกัน แต่จะดำเนินการก็ต่อเมื่อคำขอตั้งค่า thinking.block_binding.prefix_mismatch_behavior เท่านั้น Anthropic กล่าวว่าโมเดลในอนาคตจะบังคับใช้สำหรับทุกบัญชี หากคุณเผยแพร่เครื่องมือที่ผู้อื่นใช้งานด้วยคีย์ API ของตนเอง ให้ทดสอบโดยตั้งค่าฟิลด์นี้: ผู้ใช้ของคุณบนบัญชีใหม่จะถูกบังคับใช้ก่อนคุณ Claude Code, claude.ai, Managed Agents และ Agent SDK จะรักษา prefix ไว้ให้คุณ; Mythos 5.1 จะไม่ทำการตรวจสอบเลย

อะไรที่ทำให้บล็อกที่ตามมาทั้งหมดเป็นโมฆะ: การแก้ไข การจัดเรียงใหม่ หรือการลบเทิร์นก่อนหน้า (รวมถึงการลบผลลัพธ์เครื่องมือเก่า); การแทรกข้อความต่อคำขอที่คุณลบออกในคำขอถัดไป; การสร้าง system หรือ tools ใหม่ระหว่างคำขอ; URL รูปภาพที่แสดงผลเป็นไบต์ที่แตกต่างกันในภายหลัง สิ่งที่ทำให้บล็อกยังคงถูกต้อง: ประวัติแบบเพิ่มเท่านั้น (append-only histories), การลบลำดับบล็อกความคิดที่เก่าที่สุดก่อน, การเปลี่ยนพารามิเตอร์ใดๆ ที่อยู่นอกเหนือ system, tools และ messages, การย้ายตัวบ่งชี้ cache_control และการบีบอัดฝั่งเซิร์ฟเวอร์หรือการแก้ไขบริบท

ช่องทางหลบหนี ส่งส่วนหัวเบต้าและตั้งค่าฟิลด์เป็น "drop_block":

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 or model_binding_mismatch

API จะตัดบล็อกที่ไม่ตรงกันบล็อกแรกและบล็อกความคิดทุกบล็อกหลังจากนั้น ดำเนินการต่อ และรายงานการตัดแต่ละครั้ง มันใช้ได้กับคำขอนั้นเท่านั้น ดังนั้นให้ส่งฟิลด์นี้ต่อไป ตั้งค่า "error" อย่างชัดเจนใน CI เพื่อให้การแก้ไขประวัติทำให้การรันล้มเหลว คู่มือการคิดที่ถูกรักษาไว้ มีการตรวจสอบสามขั้นตอนและรูปแบบการบีบอัดที่อาจเสียหาย ตารางแก้ไข:

คุณกำลังทำอะไร ให้ทำสิ่งนี้แทน
การแก้ไข 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: อีกสี่รายการ

หากเปลี่ยนจาก Opus 4.8 หรือรุ่นก่อนหน้า ให้ใช้ การโยกย้ายจาก Opus 4.8 ไปยัง Opus 5 ก่อน จากนั้นจึงใช้คู่มือนี้ การรวมระบบที่เขียนขึ้นสำหรับ Opus 4.8 มักจะตัดทอนเทิร์นเก่าๆ หรือสร้าง system prompt ใหม่ในแต่ละคำขอ และ Opus 4.8 ก็ไม่เคยมีปัญหา

การเปลี่ยนแปลงพฤติกรรมที่ต้องทดสอบ

ไม่มีรายการใดส่งคืนข้อผิดพลาด และแต่ละรายการมีวิธีแก้ไขหนึ่งบรรทัดใน คู่มือการแจ้งเตือน ในลูปที่ยาวนาน Fable 5.1 อาจเรียกใช้เครื่องมือครั้งละหนึ่งครั้งต่อเทิร์น ในขณะที่ Fable 5 เรียกใช้หลายครั้งรวมกัน วัดสัดส่วนของเทิร์นที่มีการเรียกใช้หลายครั้งและเพิ่มคำแนะนำการรวมกลุ่มหากลดลง มันเขียนข้อความความคืบหน้าน้อยลง ดังนั้นให้ตั้งค่า display: "updates" และลบบรรทัดข้อความแจ้งที่บอกให้มันระงับผลการค้นพบ ที่ความพยายาม low มันจะเรียกใช้เครื่องมือค้นหาน้อยลง ดังนั้นให้เพิ่มความพยายามสำหรับเทิร์นที่ต้องการข้อมูลใหม่

การเปลี่ยนแปลงที่แนะนำ

รายการตรวจสอบการโยกย้าย

การเรียกใช้รายการตรวจสอบใน Apidog

สร้างคอลเลกชันที่มีหนึ่งคำขอต่อการเปลี่ยนแปลงที่ส่งผลกระทบ: การเรียกใช้ tool_choice แบบบังคับ (คาดว่าจะได้รับ 400 ตามที่กล่าวไว้ข้างต้น), การเรียกใช้ thinking: disabled (คาดว่าจะได้รับ 400), และลำดับคำขอสองครั้งที่แก้ไข system prompt ระหว่างเทิร์นพร้อมส่วนหัว thinking-binding ที่ตั้งค่าไว้ (คาดว่าจะได้รับรายการ prefix_binding_mismatch) เพิ่มเวอร์ชันที่ผ่านถัดจากสิ่งเหล่านี้พร้อมการยืนยันบน stop_reason และอาร์เรย์ input_transformations ที่ว่างเปล่า และรันใน CI ผ่าน Apidog CLI ในทุกการเปลี่ยนแปลงระบบ ดาวน์โหลด Apidog เพื่อสร้าง; คำแนะนำ API มีเนื้อหาคำขอ

คำถามที่พบบ่อย

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API