DEV Community

Cover image for 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
Sebastian Petrus
Sebastian Petrus

Posted on Originally published at apidog.com

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

Checklist di chuyển từ Claude Fable 5 sang Fable 5.1

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, chế độ suy nghĩ thích ứng luôn bật và xử lý từ chối vẫn tương thích với Fable 5. Tuy nhiên, Fable 5.1 có ba thay đổi có thể gây lỗi, trong đó kiểm tra chỉnh sửa lịch sử có thể âm thầm làm giảm hiệu suất của một tác nhân đã hoạt động ổn định. Nếu chuyển từ Opus 5, bạn cần kiểm tra thêm bốn điểm.

Hãy thử Apidog ngay hôm nay

Hướng dẫn này tổng hợp các thông báo lỗi chính xác và cách khắc phục theo thứ tự thường gặp, dựa trên hướng dẫn di chuyển của Anthropic và bài Có gì mới trong Claude Fable 5.1.

Bạn có thể dán từng đoạn mã vào Apidog để kiểm thử với endpoint thực tế trước khi triển khai. Nếu cần tìm hiểu tổng quan, hãy bắt đầu với bài Claude Fable 5.1 là gì.

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

Anthropic khuyên nên bắt đầu với Opus 5 và 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 bài đánh giá, chuyển sang Fable 5.1 có thể làm tăng gấp đôi giá mỗi token mà không đem lại lợi ích rõ rệt. Nếu bạn đang dùng Fable 5, giá cơ bản vẫn giữ nguyên, chi phí đọc bộ nhớ đệm rẻ hơn và các số liệu được công bố tốt hơn. Hãy tham khảo:

Trước khi bắt đầu, kiểm tra ba điều kiện sau:

  • Lưu giữ dữ liệu: Fable 5.1 yêu cầu lưu giữ dữ liệu trong 30 ngày và không hỗ trợ chính sách lưu giữ dữ liệu bằng không (ZDR), trừ khi Anthropic cho phép rõ ràng. Tổ chức dùng ZDR sẽ nhận 400 invalid_request_error trên mọi yêu cầu. Opus 5 vẫn hỗ trợ ZDR.
  • Tầng ưu tiên: Fable 5.1 không hỗ trợ Priority Tier; Fable 5 có hỗ trợ.
  • Giới hạn tốc độ: Fable 5.1 dùng chung nhóm “Fable 5.x” với Fable 5, nên di chuyển dần không làm thay đổi tổng dung lượng hiện có.

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
Enter fullscreen mode Exit fullscreen mode

Trên Amazon Bedrock, ID là:

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

Google Cloud, Microsoft Foundry và Claude Platform trên AWS sử dụng:

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

Nếu đang dùng Claude Managed Agents, đây có thể là thay đổi duy nhất cần thực hiện.

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

Fable 5 chấp nhận tool_choice với các giá trị auto, none, anytool. Fable 5.1 từ chối anytool trên Messages API, Batches API và endpoint đếm [REDACTED CREDENTIAL]
tool_choice: type "tool" and "any" are not supported for this model.


Anthropic giải thích rằng chế độ suy nghĩ luôn bật. Một lệnh gọi công cụ bị ép sẽ bỏ qua quá trình suy nghĩ, khiến  hình ghi kết quả suy nghĩ vào đối số công cụ.

### Trước đây: Fable 5

Enter fullscreen mode Exit fullscreen mode


python
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 khi di chuyển: Fable 5.1

Để `tool_choice` ở `auto`, gọi tên công cụ trong hướng dẫn và bật `strict: true`. Xem thêm [Strict tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/strict-tool-use?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).

Enter fullscreen mode Exit fullscreen mode


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


Chọn cách di chuyển theo mục đích:

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

## Thay đổi gây lỗi 2: Mô hình cũ hơn không đọc được khối suy nghĩ của Fable 5.1

Mỗi khối suy nghĩ chứa thông tin về mô hình đã tạo ra nó. Fable 5.1 có thể đọc khối suy nghĩ từ Opus 5, Fable 5, Mythos 5 và các mô hình cũ hơn. Vì vậy, hội thoại chuyển sang Fable 5.1 vẫn giữ được quá trình suy luận.

Ngoại trừ Mythos 5.1, các mô hình khác không thể đọc khối suy nghĩ do Fable 5.1 tạo ra.

Nếu hội thoại Fable 5.1 chuyển sang mô hình cũ hơn qua bộ định tuyến, cơ chế thử lại phía máy khách hoặc quy trình dự phòng khi bị từ chối phân loại, API sẽ tự loại bỏ các khối mà mô hình đích không đọc được. Yêu cầu vẫn thành công, các token bị loại bỏ không bị tính phí, nhưng mô hình đích phải lập kế hoạch lại. Đ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ần thay đổi mã. Hãy tiếp tục truyền nguyên vẹn các khối suy nghĩ; tự loại bỏ chúng có thể gây lỗi 400 do chữ ký không hợp lệ.

Để xem các khối bị loại bỏ, gửi beta header `thinking-binding-controls-2026-08-01`. Phản hồi sẽ chứa `input_transformations`, trong đó mỗi phần tử có:

Enter fullscreen mode Exit fullscreen mode


json
{
"reason": "model_binding_mismatch"
}


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

Đây là thay đổi cần được kiểm thử kỹ nhất.

Một khối suy nghĩ của Fable 5.1 chỉ hợp lệ khi khớp với `system` prompt, mảng `tools` và toàn bộ lịch sử tin nhắn đã xuất hiện trước đó. Khi cơ chế kiểm tra được áp dụng, phát lại khối suy nghĩ sau khi một trong các thành phần này thay đổi sẽ trả về:

Enter fullscreen mode Exit fullscreen mode


text
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?

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

### Những thay đổi làm mất hiệu lực các khối phía sau

- Chỉnh sửa, sắp xếp lại hoặc xóa lượt trước, bao gồm xóa kết quả công cụ cũ.
- Chèn văn bản theo từng yêu cầu rồi xóa văn bản đó ở 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.
- Dùng một URL hình ảnh nhưng URL đó trả về byte khác ở các lượt sau.

### Những thay đổi vẫn giữ khối hợp lệ

- Chỉ thêm lượt mới vào lịch sử.
- Xóa một chuỗi khối suy nghĩ bắt đầu từ khối cũ nhất.
- Thay đổi tham số ngoài `system`, `tools` và `messages`.
- Di chuyển các dấu `cache_control`.
- Nén hoặc chỉnh sửa ngữ cảnh phía máy chủ.

### Giải pháp thoát: `drop_block`

Gửi beta header và đặt hành vi khi tiền tố không khớp thành `"drop_block"`:

Enter fullscreen mode Exit fullscreen mode


python
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ý, đồng thời báo cáo từng lần loại bỏ. Cấu hình này chỉ áp dụng cho yêu cầu hiện tại, vì vậy hãy tiếp tục gửi trường này trong các yêu cầu sau.

Trong CI, có thể đặt `"error"` để mọi chỉnh sửa lịch sử làm thất bại lần chạy. Xem thêm [Hướng dẫn suy nghĩ được bảo toàn](https://apidog.com/vi/blog/claude-fable-5-1-preserved-thinking?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).

| 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 `system` khi bắt đầu phiên; thêm tin nhắn `role: "system"` tại thời điểm thay đổi có hiệu lực |
| Chỉnh sửa `tools` giữa phiên | Khai báo đầy đủ công cụ ngay từ đầu; dùng khối `tool_addition` hoặc `tool_removal` trong tin nhắn hệ thống với beta `mid-conversation-tool-changes-2026-07-01` |
| Chèn prompt mỗi lượt rồi xóa | Dùng tin nhắn hệ thống giới hạn theo lượt với `clear_at: "next_user_message"` và giữ tin nhắn đó trong lịch sử, cùng beta `mid-conversation-system-clear-at-2026-08-21` |
| Xóa kết quả công cụ cũ phía máy khách | Dùng chỉnh sửa ngữ cảnh phía máy chủ |
| Nén phía máy khách nhưng giữ lượt gần đây | Dùng nén phía máy chủ, hoặc một tin nhắn tóm tắt kèm lượt người dùng mới; không phát lại phần còn lại |
| Tham chiếu hình ảnh bằng URL qua nhiều lượt | Tải ảnh một lần lên Files API rồi gửi `file_id` |

![Kiểm tra ràng buộc khối suy nghĩ](https://assets.apidog.com/blog-next/2026/09/image-40.png?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation)

## Nếu chuyển từ Opus 5: thêm bốn điểm cần kiểm tra

### 1. Không thể tắt suy nghĩ

Opus 5 chấp nhận:

Enter fullscreen mode Exit fullscreen mode


json
{"thinking": {"type": "disabled"}}


ở mức nỗ lực `high` hoặc thấp hơn. Fable 5.1 trả về lỗi 400 với cấu hình này ở mọi mức nỗ lực.

Hãy xóa trường `thinking`, kiểm soát chi phí bằng mức nỗ lực và xem xét lại `max_tokens` cho các tuyến chạy không cần suy nghĩ.

### 2. Lời kể giữa các công cụ chuyển thành khối suy nghĩ

Trên Opus 5, văn bản giữa các lần gọi công cụ được trả về dưới dạng khối `text`. Trên Fable 5.1, văn bản này nằm trong các khối `thinking` cập nhật tiến độ. Với cấu hình mặc định `display: "omitted"`, các khối đó có thể rỗng.

Nếu giao diện cần hiển thị lời kể, dùng:

Enter fullscreen mode Exit fullscreen mode


json
{
"thinking": {
"type": "adaptive",
"display": "updates"
}
}




và beta header `thinking-display-updates-2026-08-18`.

### 3. Bộ phân loại an toàn rộng hơn

Opus 5 chủ yếu chạy bộ phân loại liên quan đến an ninh mạng. Fable 5.1 mở rộng sang:

- `cyber`
- `bio`
- `frontier_llm`
- `reasoning_extraction`
- `general_harms`

Hãy xử lý `stop_reason: "refusal"` trước khi đọc `content`, đồng thời chọn `fallbacks: "default"` với beta header `server-side-fallback-2026-07-01`.

Các mục tiêu fallback được phép là Opus 4.8 và Opus 5, nên 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

Khi chuyển từ Opus 5:

- Giá tăng từ **$5 lên $10** và từ **$25 lên $50**.
- Chi phí đọc bộ nhớ đệm giảm từ **$0.50 xuống $0.25**.
- ZDR không còn khả dụng.

Xem [Phân tích giá Claude Fable 5.1](https://apidog.com/vi/blog/claude-fable-5-1-pricing?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) để biết các phép tính chi tiết.

Nếu đang dùng Opus 4.8 hoặc phiên bản cũ hơn, hãy di chuyển theo hai giai đoạn:

1. [Di chuyển từ Opus 4.8 sang Opus 5](https://apidog.com/vi/blog/claude-opus-5-migration-opus-4-8?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).
2. Áp dụng checklist Fable 5.1 trong bài này.

Các tích hợp Opus 4.8 thường cắt bớt lượt cũ hoặc xây dựng lại system prompt ở mỗi yêu cầu. Opus 4.8 không phát hiện các chỉnh sửa lịch sử này, nhưng Fable 5.1 thì có.

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

Không phải thay đổi nào cũng trả về lỗi. Hãy kiểm thử các hành vi sau:

- Trong vòng lặp dài, Fable 5.1 có thể gọi một công cụ mỗi lượt thay vì gọi nhiều công cụ song song như Fable 5. Đo tỷ lệ lượt gọi nhiều công cụ; nếu tỷ lệ giảm, thêm hướng dẫn nhóm các lệnh.
- Fable 5.1 tạo ít tin nhắn tiến độ hơn. Nếu cần hiển thị, đặt `display: "updates"` và xóa các prompt yêu cầu mô hình tự giữ kết quả.
- Với mức nỗ lực `low`, mô hình gọi công cụ tìm kiếm ít thường xuyên hơn. Tăng mức nỗ lực cho các lượt cần dữ liệu mới.
- Chạy lại các đánh giá prompt thay vì giả định rằng prompt Fable 5 sẽ cho kết quả giống hệt.

Xem thêm [hướng dẫn tạo prompt cho Claude Fable 5.1](https://apidog.com/vi/blog/prompting-claude-fable-5-1?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).

## Các thay đổi được khuyến nghị

- **Điều chỉnh mức nỗ lực theo từng tin nhắn:** Dùng beta `mid-conversation-output-config-2026-07-01`. Thay đổi mức nỗ lực bằng tin nhắn `role: "system"` không có nội dung nhưng mang `output_config`, thay vì thay đổi giá trị cấp cao nhất. Cách này không đặt lại bộ nhớ đệm.
- **Bắt đầu ở `high`:** Lợi ích so với Fable 5 lớn nhất ở `xhigh` và `max`. Anthropic cho biết `medium` gần tương đương Fable 5 nhưng chi phí thấp hơn. Tên mức nỗ lực có thể không nhất quán giữa các mô hình.
- **Cắt bớt ngữ cảnh phía máy chủ:** Dùng nén phía máy chủ với beta `compact-2026-01-12`. Nén phía máy chủ và chỉnh sửa ngữ cảnh không được tính là chỉnh sửa lịch sử.

## Checklist di chuyển

- [ ] Xác nhận lưu giữ dữ liệu 30 ngày và không phụ thuộc vào Priority Tier.
- [ ] Cập nhật tên mô hình thành `claude-fable-5-1`.
- [ ] Thay mọi `tool_choice` loại `any` hoặc `tool` bằng `auto` kết hợp hướng dẫn và `strict: true`, hoặc dùng đầu ra có cấu trúc.
- [ ] Nếu chuyển từ Opus 5, xóa `thinking: {"type": "disabled"}` và xem xét lại `max_tokens`.
- [ ] Truyền nguyên vẹn các khối suy nghĩ ở mỗi lượt, bao gồm cả khối rỗng.
- [ ] Nếu mã tự xây dựng `messages`, chạy một phiên với `prefix_mismatch_behavior: "drop_block"`, ghi log `input_transformations` và sửa mọi `prefix_binding_mismatch`.
- [ ] Đóng băng `system` và `tools` khi bắt đầu phiên.
- [ ] Di chuyển prompt theo lượt sang tin nhắn hệ thống giới hạn theo lượt và không xóa chúng khỏi lịch sử.
- [ ] Chọn `prefix_mismatch_behavior` cho môi trường production và giám sát kết quả.
- [ ] Xử lý `stop_reason: "refusal"` và thêm `fallbacks: "default"`.
- [ ] Nếu UI hiển thị văn bản giữa các lần gọi công cụ, đặt `display: "updates"`.
- [ ] Chạy lại đánh giá mức nỗ lực từ `high` và cập nhật chi phí cơ sở. Số token không thay đổi so với Fable 5; chi phí đọc bộ nhớ đệm bằng một phần tư.

## Chạy checklist trong Apidog

Tạo một collection gồm một request cho mỗi thay đổi gây lỗi:

1. Request ép `tool_choice`, mong đợi lỗi 400 như trên.
2. Request dùng `thinking: disabled`, mong đợi lỗi 400.
3. Chuỗi hai request chỉnh sửa system prompt giữa các lượt, bật tiêu đề ràng buộc suy nghĩ và mong đợi `prefix_binding_mismatch`.

Thêm các phiên bản thành công bên cạnh chúng với assertion cho:

- `stop_reason`.
- Mảng `input_transformations` rỗng.

Sau đó chạy collection trong CI bằng Apidog CLI sau mỗi thay đổi về bộ công cụ. Bạn có thể [tải Apidog](https://apidog.com/download?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) để xây dựng collection; xem thêm [hướng dẫn API Claude Fable 5.1](https://apidog.com/vi/blog/claude-fable-5-1-api?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).

![Chạy bộ kiểm thử di chuyển trong Apidog](https://assets.apidog.com/blog-next/2026/09/image-41.png?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation)

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

### Di chuyển từ Fable 5 sang Fable 5.1 có chỉ cần thay thế ID không?

Phần lớn là có, nhưng cần xử lý ba ngoại lệ:

- `tool_choice` loại `any` và `tool` trả về lỗi 400.
- Mô hình cũ hơn không đọc được khối suy nghĩ của Fable 5.1.
- Chỉnh sửa lượt trước làm mất hiệu lực các khối suy nghĩ sau đó trên các tài khoản đã được áp dụng kiểm tra.

Các hành vi khác nhìn chung vẫn tương thích.

### “Bound to a different conversation” nghĩa là gì?

Mã đã thay đổi một thành phần trước khối suy nghĩ của Fable 5.1 rồi phát lại khối đó. Hãy ngừng chỉnh sửa lịch sử, hoặc gửi beta header `thinking-binding-controls-2026-08-01` cùng `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 tài khoản được tạo vào hoặc sau ngày **31 tháng 8 năm 2026**, kiểm tra sẽ được áp dụng. Tài khoản cũ hơn chỉ áp dụng khi bạn chủ động đặt `prefix_mismatch_behavior`.

### Có thể giữ nguyên prompt Fable 5 không?

Có. Anthropic cho biết prompt Fable 5 thường hoạt động tốt mà không cần thay đổi. Tuy nhiên, hãy chạy lại đánh giá mức nỗ lực và dự kiến í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ẽ lỗi khi chuyển từ Opus 5?

Ngoài các mục của Fable 5, bạn cần xử lý:

- `thinking: disabled` trả về lỗi 400 ở mọi mức nỗ lực.
- Lời kể giữa các công cụ chuyển vào khối suy nghĩ.
- Bộ phân loại an toàn mở rộng.
- Giá tăng gấp đôi.
- ZDR không còn khả dụng.

### Bedrock và Google Cloud có các thay đổi tương tự không?

Các thay đổi về ID mô hình thì 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, đồng thời đang được triển khai theo từng mô hình trên Bedrock và Google Cloud.

Nếu nền tảng chưa hỗ trợ 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.
Enter fullscreen mode Exit fullscreen mode

Top comments (0)