Nâng cấp lên Claude Fable 5.1 từ Fable 5 hoặc Opus 5: Mọi Thay đổi Không Tương Thích

Di chuyển sang Claude Fable 5.1 từ Fable 5 hoặc Opus 5: buộc chọn công cụ 400, các khối tư duy đơn hướng, kiểm tra chỉnh sửa lịch sử, mọi bản sửa lỗi và một danh sách kiểm tra đầy đủ.

Ashley Goolam

Ashley Goolam

2 tháng 9 2026

Nâng cấp lên Claude Fable 5.1 từ Fable 5 hoặc Opus 5: Mọi Thay đổi Không Tương Thích

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Việc chuyển sang Claude Fable 5.1 chủ yếu là thay đổi ID mô hình. Giao diện API, giới hạn, giá mỗi token, bộ mã hóa, suy nghĩ thích ứng luôn bật và xử lý từ chối đều khớp với Fable 5. Tuy nhiên, có ba thay đổi trả về lỗi mà Fable 5 chưa từng gặp, và một trong số đó, kiểm tra chỉnh sửa lịch sử, có thể âm thầm làm suy giảm hiệu suất của một tác nhân đã hoạt động tốt trong một năm. Chuyển từ Opus 5 sẽ thêm bốn mục nữa.

Hướng dẫn này là danh sách kiểm tra với văn bản lỗi chính xác và cách khắc phục cho từng mục, theo thứ tự bạn sẽ gặp, được xây dựng từ hướng dẫn di chuyển của Anthropic và Có gì mới trong Claude Fable 5.1. Mỗi đoạn mã có thể được dán vào Apidog và chạy thử với điểm cuối thực tế trước khi đưa vào sản xuất. Để có cái nhìn tổng quan về mô hình, hãy bắt đầu với Claude Fable 5.1 là gì.

Bước 0: Xác nhận bạn có nên di chuyển hay không

Tài liệu của Anthropic khuyên nên bắt đầu với Opus 5 và sử dụng Fable 5.1 “cho các tác vụ suy luận phức tạp và tác vụ đại diện dài hạn, hoặc khi các đánh giá của bạn trên Claude Opus 5 với nỗ lực cao hơn vẫn chưa đạt yêu cầu.” Nếu Opus 5 vượt qua các đánh giá của bạn, việc di chuyển sẽ làm tăng gấp đôi giá mỗi token mà không mang lại lợi ích rõ rệt nào. Nếu bạn đang sử dụng Fable 5, giá vẫn như cũ với chi phí đọc bộ nhớ đệm rẻ hơn và các số liệu được công bố tốt hơn, vì vậy vấn đề chỉ là cần bao nhiêu công sức để chuyển đổi. Các so sánh Fable 5.1 so với Fable 5Fable 5.1 so với Opus 5 sẽ giúp bạn đưa ra quyết định.

Trước tiên, ba kiểm tra đủ điều kiện:

Bước 1: Cập nhật tên mô hình

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

Trên Amazon Bedrock, ID là `anthropic.claude-fable-5-1`. Google Cloud, Microsoft Foundry và Claude Platform trên AWS sử dụng `claude-fable-5-1`. Nếu bạn sử dụng Claude Managed Agents, đây là thay đổi duy nhất cần thiết.

Thay đổi gây lỗi 1: buộc sử dụng công cụ trả về lỗi 400

Fable 5 chấp nhận các giá trị `tool_choice` là `auto`, `none`, `any` và `tool`. Fable 5.1 từ chối hai giá trị cuối cùng này trên Messages API, Batches API và điểm cuối đếm token:

tool_choice: type "tool" and "any" are not supported for this model.

Lý do của Anthropic: quá trình suy nghĩ luôn bật, và một lệnh gọi bắt buộc sẽ bỏ qua nó, vì vậy mô hình sẽ ghi kết quả suy nghĩ của nó vào các đối số của công cụ.

Trước đây (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."}],
)

Sau này (Fable 5.1): để `tool_choice` ở `auto`, đặt tên công cụ trong hướng dẫn và đặt `strict: true` (sử dụng công cụ nghiêm ngặt) để các đối số vẫn khớp với schema của bạn.

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."}],
)

Di chuyển theo mục đích. Nếu bạn buộc một công cụ để nhận lại JSON, hãy thay thế bằng đầu ra có cấu trúc (`output_config.format`). Nếu ứng dụng yêu cầu lệnh gọi trong lượt này, hãy thêm một thông báo `role: "system"` sau lượt người dùng gần nhất để đặt tên công cụ và nói rằng lệnh gọi là bắt buộc, đồng thời giữ nó trong lịch sử sau đó. Nếu bạn dựa vào `any` cho “chính xác một công cụ,” `disable_parallel_tool_use: true` vẫn hoạt động với `auto` nhưng giờ đây có nghĩa là tối đa một lệnh gọi. Xóa bất kỳ vòng lặp thử lại khi thiếu công cụ nào; Anthropic nói rằng Fable 5.1 tuân thủ các hướng dẫn công cụ rõ ràng một cách đáng tin cậy. Trong một tổ chức CMEK, `strict: true` và đầu ra có cấu trúc không có sẵn trên các mô hình Fable, vì vậy chỉ dựa vào hướng dẫn.

Thay đổi gây lỗi 2: các mô hình cũ hơn không thể đọc các khối suy nghĩ của Fable 5.1

Mỗi khối suy nghĩ ghi lại mô hình đã tạo ra nó. Fable 5.1 đọc các khối từ Opus 5, Fable 5, Mythos 5 và các mô hình trước đó, vì vậy một cuộc hội thoại chuyển sang Fable 5.1 vẫn giữ được lý do của nó. Ngoài Mythos 5.1, không có mô hình nào khác có thể đọc một khối của Fable 5.1.

Một cuộc hội thoại Fable 5.1 có thể chuyển sang một mô hình cũ hơn thông qua một bộ chuyển đổi định tuyến, một lần thử lại phía máy khách, hoặc một quy trình dự phòng từ chối phân loại. Trong mọi trường hợp, API sẽ loại bỏ các khối mà mô hình đó không thể đọc trước khi nó nhìn thấy chúng. Yêu cầu thành công, các token bị loại bỏ không bị tính phí, và mô hình đích sẽ lập kế hoạch lại mà không có lý do, điều này làm tăng chi phí và độ trễ trong lượt đầu tiên sau khi chuyển đổi.

Không có gì cần sửa trong mã. Tiếp tục truyền các khối suy nghĩ trở lại nguyên vẹn; tự loại bỏ chúng có thể gây ra lỗi 400 chữ ký. Để hiển thị, hãy gửi tiêu đề beta `thinking-binding-controls-2026-08-01` và phản hồi sẽ chứa một mảng `input_transformations` đặt tên cho mỗi khối bị loại bỏ với `reason: "model_binding_mismatch"`.

Thay đổi gây lỗi 3: chỉnh sửa các lượt trước đó làm mất hiệu lực các khối suy nghĩ

Đây là mục cần phân bổ thời gian. Một khối suy nghĩ của Fable 5.1 chỉ hợp lệ khi đối chiếu với `system` prompt, mảng `tools` và lịch sử tin nhắn chính xác đã đi trước nó (suy nghĩ được bảo toàn). Khi kiểm tra này được áp dụng, một yêu cầu phát lại một khối sau khi bất kỳ điều gì trong số đó đã thay đổi sẽ bị từ chối:

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.

Ai bị ảnh hưởng. Các tài khoản được tạo vào hoặc sau ngày 31 tháng 8 năm 2026. Các tài khoản cũ hơn sẽ ghi nhận sự không khớp nhưng chỉ hành động nếu yêu cầu đặt `thinking.block_binding.prefix_mismatch_behavior`. Anthropic cho biết các mô hình trong tương lai sẽ áp dụng điều này cho mọi tài khoản. Nếu bạn phát hành một công cụ mà người khác chạy bằng khóa API của riêng họ, hãy kiểm tra với trường đã đặt: người dùng của bạn trên các tài khoản mới sẽ bị áp dụng trước bạn. Claude Code, claude.ai, Managed Agents và Agent SDK giữ nguyên tiền tố cho bạn; Mythos 5.1 không chạy kiểm tra này chút nào.

Những gì làm mất hiệu lực mọi khối sau đó: chỉnh sửa, sắp xếp lại hoặc xóa một lượt trước đó (bao gồm xóa kết quả công cụ cũ); chèn văn bản mỗi yêu cầu mà bạn xóa trong yêu cầu tiếp theo; xây dựng lại `system` hoặc `tools` giữa các yêu cầu; một URL hình ảnh phục vụ các byte khác nhau sau này. Những gì giữ cho các khối hợp lệ: lịch sử chỉ thêm, xóa một chuỗi các khối suy nghĩ từ cũ nhất trước, thay đổi bất kỳ tham số nào ngoài `system`, `tools` và `messages`, di chuyển các dấu `cache_control`, và nén hoặc chỉnh sửa ngữ cảnh phía máy chủ.

Giải pháp thoát. Gửi tiêu đề beta và đặt trường thành `"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 sẽ loại bỏ khối không khớp đầu tiên và mọi khối suy nghĩ sau đó, tiếp tục xử lý và báo cáo từng lần loại bỏ. Điều này chỉ áp dụng cho yêu cầu đó, vì vậy hãy tiếp tục gửi trường này. Đặt `"error"` một cách rõ ràng trong CI để một chỉnh sửa lịch sử làm thất bại lần chạy. Hướng dẫn suy nghĩ được bảo toàn có kiểm toán ba bước và các hình dạng nén bị lỗi. Bảng sửa lỗi:

Bạn đã làm Thay vào đó, hãy làm điều này
Chỉnh sửa `system` giữa phiên Đóng băng nó khi bắt đầu phiên; thêm một tin nhắn `role: "system"` tại nơi thay đổi trở thành đúng
Chỉnh sửa `tools` giữa phiên Khai báo đầy đủ bộ công cụ ngay từ đầu; gửi các khối `tool_addition` / `tool_removal` trong tin nhắn hệ thống (beta `mid-conversation-tool-changes-2026-07-01`)
Chèn lời nhắc mỗi lượt và xóa nó Tin nhắn hệ thống giới hạn theo lượt với `clear_at: "next_user_message"` (beta `mid-conversation-system-clear-at-2026-08-21`), để lại trong lịch sử
Xóa kết quả công cụ cũ phía máy khách Chỉnh sửa ngữ cảnh phía máy chủ
Nén phía máy khách giữ nguyên các lượt gần đây Nén phía máy chủ, hoặc một tin nhắn tóm tắt cộng với lượt người dùng mới, không phát lại gì khác
Tham chiếu hình ảnh bằng URL qua các lượt Tải lên một lần vào Files API và gửi `file_id`

Chuyển từ Opus 5: bốn mục nữa

1. Không thể tắt suy nghĩ ở bất kỳ mức độ nỗ lực nào. Opus 5 chấp nhận `thinking: {"type": "disabled"}` ở mức `high` hoặc thấp hơn. Fable 5.1 trả về lỗi 400 ở bất kỳ mức độ nỗ lực nào. Xóa trường này, kiểm soát chi phí bằng cách giảm nỗ lực, và xem xét lại `max_tokens` cho các tuyến đường chạy mà không có suy nghĩ.

2. Lời kể giữa các công cụ di chuyển vào các khối suy nghĩ. Trên Opus 5, văn bản giữa các lệnh gọi công cụ được trả về dưới dạng các khối `text`. Trên Fable 5.1, nó được trả về dưới dạng các khối `thinking` cập nhật tiến độ mà trống rỗng dưới cài đặt mặc định `display: "omitted"`. Nếu giao diện người dùng của bạn đã hiển thị lời kể đó, hãy đặt `thinking: {"type": "adaptive", "display": "updates"}` với tiêu đề `thinking-display-updates-2026-08-18`.

3. Bộ phân loại rộng hơn. Opus 5 chỉ chạy các bộ phân loại liên quan đến an ninh mạng. Fable 5.1 bao gồm `cyber`, `bio`, `frontier_llm`, `reasoning_extraction`, và `general_harms`. Xử lý `stop_reason: "refusal"` trước khi đọc `content`, và chọn `fallbacks: "default"` với tiêu đề `server-side-fallback-2026-07-01`. Các mục tiêu được phép là Opus 4.8 và Opus 5, vì vậy một yêu cầu bị từ chối có thể quay lại mô hình bạn đã di chuyển từ đó.

4. Giá và lưu giữ dữ liệu. $10 và $50 thay vì $5 và $25, với chi phí đọc bộ nhớ đệm là $0.25 thay vì $0.50. ZDR bị mất. Phân tích giá có các tính toán chi tiết.

Nếu đến từ Opus 4.8 hoặc phiên bản cũ hơn, trước tiên hãy áp dụng di chuyển từ Opus 4.8 sang Opus 5, sau đó là hướng dẫn này. Các tích hợp được viết cho Opus 4.8 thường cắt bớt các lượt cũ hoặc xây dựng lại lời nhắc hệ thống mỗi yêu cầu, và Opus 4.8 chưa bao giờ phản đối.

Thay đổi hành vi cần kiểm tra

Không có lỗi nào được trả về, và mỗi mục đều có một bản sửa lỗi một dòng trong hướng dẫn tạo lời nhắc. Trong các vòng lặp dài, Fable 5.1 có thể thực hiện một lệnh gọi công cụ mỗi lượt trong khi Fable 5 đã thực hiện nhiều lệnh gọi cùng lúc; hãy đo lường tỷ lệ các lượt gọi nhiều công cụ và thêm gợi ý nhóm lệnh nếu nó bị giảm. Nó viết ít tin nhắn tiến độ hơn, vì vậy hãy đặt `display: "updates"` và xóa các dòng lời nhắc yêu cầu nó giữ kết quả. Với mức nỗ lực `low`, nó gọi các công cụ tìm kiếm ít thường xuyên hơn, vì vậy hãy tăng nỗ lực cho các lượt cần dữ liệu mới.

Những thay đổi được khuyến nghị

Danh sách kiểm tra di chuyển

Chạy danh sách kiểm tra trong Apidog

Xây dựng một bộ sưu tập với một yêu cầu cho mỗi thay đổi gây lỗi: một lệnh gọi `tool_choice` bị buộc (mong đợi lỗi 400 như trên), một lệnh gọi `thinking: disabled` (mong đợi lỗi 400), và một chuỗi hai yêu cầu chỉnh sửa lời nhắc hệ thống giữa các lượt với tiêu đề ràng buộc suy nghĩ được đặt (mong đợi một mục `prefix_binding_mismatch`). Thêm các phiên bản thành công bên cạnh chúng với các khẳng định về `stop_reason` và một mảng `input_transformations` trống, sau đó chạy nó trong CI thông qua Apidog CLI trên mỗi thay đổi bộ công cụ. Tải xuống Apidog để xây dựng nó; hướng dẫn API có các nội dung yêu cầu.

Câu hỏi thường gặp

Việc di chuyển từ Fable 5 sang Fable 5.1 có phải là một thay đổi chỉ cần thay thế không? Hầu hết là vậy. `tool_choice` bị buộc sẽ trả về lỗi 400, các mô hình cũ hơn không thể đọc các khối suy nghĩ của Fable 5.1, và việc chỉnh sửa các lượt trước đó sẽ làm mất hiệu lực các khối suy nghĩ sau này trên các tài khoản bị áp dụng. Mọi thứ khác vẫn được giữ nguyên.

“Ràng buộc với một cuộc hội thoại khác” nghĩa là gì? Mã của bạn đã thay đổi một cái gì đó trước một khối suy nghĩ của Fable 5.1 và sau đó phát lại khối đó. Hãy ngừng chỉnh sửa lịch sử, hoặc gửi tiêu đề `thinking-binding-controls-2026-08-01` với `prefix_mismatch_behavior: "drop_block"`.

Tài khoản của tôi có áp dụng kiểm tra chỉnh sửa lịch sử không? Nếu nó được tạo vào hoặc sau ngày 31 tháng 8 năm 2026, thì có. Các tài khoản cũ hơn chỉ áp dụng khi bạn đặt `prefix_mismatch_behavior`.

Tôi có thể giữ các lời nhắc Fable 5 của mình không? Có. Anthropic nói rằng chúng sẽ hoạt động tốt mà không cần thay đổi. Chạy lại quá trình quét nỗ lực và mong đợi ít lệnh gọi công cụ song song hơn trong các vòng lặp dài.

Điều gì sẽ bị lỗi khi tôi di chuyển từ Opus 5? Mọi thứ trong danh sách Fable 5, cộng với `thinking: disabled` trả về lỗi 400 ở bất kỳ mức nỗ lực nào, lời kể giữa các công cụ di chuyển vào các khối suy nghĩ, bộ phân loại rộng hơn, giá tăng gấp đôi, và ZDR bị mất.

Bedrock và Google Cloud có những thay đổi gây lỗi tương tự không? Các thay đổi mô hình, có. Các kiểm soát ràng buộc suy nghĩ đã có trên Claude API và Claude Platform trên AWS khi ra mắt và đang được triển khai theo từng mô hình trên Bedrock và Google Cloud. Nếu không có các kiểm soát này, cách khắc phục là loại bỏ các khối suy nghĩ và thử lại một lần.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API