DEV Community

Cover image for Chuyển đổi từ Claude Opus 4.8 sang Opus 5: Mọi thay đổi đột phá
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Chuyển đổi từ Claude Opus 4.8 sang Opus 5: Mọi thay đổi đột phá

Việc chuyển đổi từ claude-opus-4-8 sang claude-opus-5 có vẻ như chỉ là thay đổi một dòng. Phần lớn là như vậy. Nhưng một vài cài đặt mặc định đã thay đổi mà bạn không nhận ra, một tổ hợp yêu cầu trước đây hợp lệ giờ đây trả về lỗi 400 cứng nhắc, và một tính năng mà các nhóm doanh nghiệp trả tiền đã biến mất trên mô hình mới.

Dùng thử Apidog ngay hôm nay

Anthropic đã ra mắt Claude Opus 5 vào ngày 24 tháng 7 năm 2026 với cùng mức giá với Opus 4.8 (5 đô la cho mỗi triệu token đầu vào, 25 đô la cho mỗi triệu token đầu ra), vì vậy đây hiếm khi là một quyết định về ngân sách. Đó là một quyết định về tính đúng đắn. Dưới đây là mọi khác biệt có thể làm hỏng một tích hợp đang hoạt động, được sắp xếp theo mức độ khả năng bạn gặp phải ngay từ ngày đầu tiên, kèm theo các đoạn mã trước và sau để bạn có thể dán vào client của mình. Hướng dẫn di chuyển từ Opus 4.8 sang Opus 5 của Anthropic là nguồn chính cho bề mặt API. Để kiểm tra từng thay đổi với điểm cuối trực tiếp trước tiên, hãy lưu một yêu cầu trong Apidog và nhân bản nó cho mỗi biến thể.

Tóm tắt

Thay đổi Tác động Hành động
Tư duy (Thinking) bật mặc định Cắt bớt đầu ra một cách âm thầm Tăng max_tokens
thinking: disabled + nỗ lực xhigh/max Lỗi HTTP 400 Chọn một trong hai
Các mức độ nỗ lực được hiệu chỉnh lại Điểm chi phí/chất lượng không đúng Quét lại, không giữ cài đặt cũ
Ngữ cảnh 1M không cần beta header Header hiện đã thừa Xóa nó đi
Ngưỡng bộ nhớ đệm giảm xuống 512 token Tiết kiệm miễn phí Không làm gì, hoặc lưu thêm lời nhắc vào bộ nhớ đệm
Tin nhắn hệ thống giữa cuộc trò chuyện Trước đây lỗi 400, giờ được chấp nhận Đơn giản hóa tùy chọn
Bậc Ưu tiên (Priority Tier) Không được hỗ trợ trên Opus 5 Giữ 4.8 cho lưu lượng đó
Chế độ Nhanh (Fast mode) Giờ hoạt động trên Opus 5 Tùy chọn, 10 đô la / 50 đô la
fallbacks: "default" Mạng lưới an toàn mới cho việc từ chối về an ninh mạng Beta header tùy chọn
Tham số lấy mẫu, số lượng token Không thay đổi Không làm gì

1. Tính năng tư duy (Thinking) bật mặc định, và max_tokens vẫn giới hạn mọi thứ

Đây là thay đổi có thể làm hỏng mã đang hoạt động một cách âm thầm.

Trên Opus 4.8, một yêu cầu không có trường thinking sẽ chạy mà không có quá trình tư duy. Trên Opus 5, cùng yêu cầu đó sẽ chạy với quá trình tư duy thích ứng. JSON của bạn không thay đổi, nhưng mô hình giờ đây sử dụng token để suy luận trước khi đưa ra câu trả lời hiển thị.

max_tokens vẫn là giới hạn cứng cho tổng token tư duy + token phản hồi. Vì vậy, một yêu cầu từng phù hợp với ngân sách 1.024 token trên 4.8 giờ đây có thể tiêu thụ phần lớn ngân sách cho quá trình tư duy và trả về câu trả lời bị cắt bớt.

Yêu cầu trước đây an toàn:

{
  "model": "claude-opus-4-8",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Summarize this incident report in three bullets."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Chỉ đổi ID mô hình sẽ có rủi ro bị cắt bớt. Hãy tăng ngân sách:

{
  "model": "claude-opus-5",
  "max_tokens": 8192,
  "messages": [
    {
      "role": "user",
      "content": "Summarize this incident report in three bullets."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Sau khi tăng giới hạn, kiểm tra hai điểm:

  1. Theo dõi stop_reason:
    • max_tokens: phản hồi bị cắt ngang.
    • end_turn: mô hình đã hoàn thành.
  2. Đọc khối usage để biết quá trình tư duy thực tế đã tiêu thụ bao nhiêu token trên lời nhắc thật.

Nếu cần hành vi không tư duy như trước đây, hãy gửi rõ ràng:

{
  "thinking": {
    "type": "disabled"
  }
}
Enter fullscreen mode Exit fullscreen mode

Tuy nhiên, hãy đọc phần tiếp theo: cài đặt này có thể tạo lỗi 400 khi kết hợp với mức độ nỗ lực cao.

2. Lỗi 400: tư duy bị tắt cộng với nỗ lực xhigh hoặc max

Trên Opus 5, tổ hợp sau trả về HTTP 400:

  • thinking: {"type": "disabled"}
  • output_config.effort: "xhigh" hoặc "max"

Hai phần này có thể hợp lệ riêng lẻ trên Opus 4.8, nhưng không còn hợp lệ khi dùng cùng nhau trên Opus 5. Hai mức nỗ lực cao nhất được thiết kế để dùng thêm quá trình tư duy; tắt tư duy trong khi yêu cầu nỗ lực tối đa là mâu thuẫn.

Yêu cầu sẽ thất bại:

{
  "model": "claude-opus-5",
  "max_tokens": 8192,
  "thinking": {
    "type": "disabled"
  },
  "output_config": {
    "effort": "xhigh"
  },
  "messages": [
    {
      "role": "user",
      "content": "Refactor this module and explain the tradeoffs."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Giải pháp A: giữ khả năng suy luận

Bỏ trường thinking và giữ mức nỗ lực cao. Đây là hướng Anthropic khuyến nghị cho công việc lập trình và tác nhân:

{
  "model": "claude-opus-5",
  "max_tokens": 32000,
  "output_config": {
    "effort": "xhigh"
  },
  "messages": [
    {
      "role": "user",
      "content": "Refactor this module and explain the tradeoffs."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Giải pháp B: tắt tư duy để ưu tiên độ trễ

Nếu đường dẫn thực sự nhạy cảm về độ trễ và không cần tư duy, giữ disabled nhưng giảm nỗ lực xuống high hoặc thấp hơn:

{
  "model": "claude-opus-5",
  "max_tokens": 4096,
  "thinking": {
    "type": "disabled"
  },
  "output_config": {
    "effort": "high"
  },
  "messages": [
    {
      "role": "user",
      "content": "Classify this ticket into one of five categories."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Cần thận trọng với Giải pháp B. Anthropic ghi nhận các hiện tượng có thể xuất hiện khi tắt tư duy:

  • Lệnh gọi công cụ được viết dưới dạng văn bản thuần thay vì được thực thi.
  • Thẻ XML nội bộ như <thinking> có thể bị rò rỉ vào đầu ra.
  • Trong vòng lặp tác nhân, văn bản bị rò rỉ có thể làm ô nhiễm các lượt tiếp theo.

Mặc định an toàn là giữ tư duy bật và kiểm soát chi phí qua mức effort thấp hơn.

3. Các mức độ nỗ lực đã được hiệu chỉnh lại: hãy quét lại thay vì sao chép cài đặt

Opus 5 mặc định dùng mức độ nỗ lực high, và các mức độ này đã được hiệu chỉnh lại.

lowmedium mạnh hơn đáng kể trên Opus 5 so với các mô hình Opus trước đó. Vì vậy, cấu hình đã tinh chỉnh cho 4.8 không còn đảm bảo cùng điểm chi phí/chất lượng.

Thay vì chuyển nguyên cấu hình cũ, hãy chạy lại đợt quét nỗ lực:

  • Khối lượng công việc ghim ở high hoặc xhigh trên 4.8 có thể vẫn đạt chất lượng ở medium trên Opus 5.
  • Khối lượng công việc ghim ở low để tiết kiệm chi phí có thể đáng để nâng thêm một cấp độ vì chất lượng mỗi token đã cải thiện.
  • Với lập trình và tác nhân dài hạn, xhigh vẫn là điểm khởi đầu được khuyến nghị.
  • Ở các mức cao nhất, hãy dùng max_tokens rộng rãi. 64k là ngân sách khởi đầu hợp lý.

Chạy thử nghiệm trên bộ đánh giá riêng của bạn, không phải chỉ trên benchmark công khai. Cố định lời nhắc, chỉ thay đổi effort, sau đó ghi lại:

  • Chất lượng đầu ra
  • Độ trễ
  • usage
  • stop_reason

Phân tích sâu về tham số nỗ lực bao gồm cơ chế của từng cấp độ. Về chi phí, xem phân tích giá Opus 5.

4. Xóa beta header cho ngữ cảnh dài

Opus 5 có cửa sổ ngữ cảnh 1M token làm cả mặc định lẫn tối đa. Không cần beta header để bật ngữ cảnh dài và không có phụ phí riêng cho nó.

Nếu client vẫn gửi giá trị beta ngữ cảnh mở rộng trong header anthropic-beta từ cấu hình Opus 4.8, hãy xóa nó. Header beta lỗi thời trong HTTP client dùng chung có thể trở thành nguyên nhân khó gỡ lỗi cho các yêu cầu không liên quan trong tương lai.

Lưu ý:

  • Messages API có đầu ra tối đa 128k token.
  • Nếu cần đầu ra lớn hơn, Batch API có thể xuất ra 300k token với beta header:
anthropic-beta: output-300k-2026-03-24
Enter fullscreen mode Exit fullscreen mode

Beta header này là lựa chọn riêng cho độ dài đầu ra, không liên quan đến ngữ cảnh 1M.

5. Ngưỡng bộ nhớ đệm lời nhắc giảm xuống 512 token

Trên Opus 4.8, một phân đoạn lời nhắc cần đạt 1.024 token để đủ điều kiện lưu vào bộ nhớ đệm. Trên Opus 5, ngưỡng giảm còn 512 token.

Bạn không cần thay đổi mã hiện có. Tuy nhiên, nên rà soát các phần lời nhắc dài từ 512 đến 1.024 token mà trước đây chưa đáng để thêm điểm ngắt cache_control, chẳng hạn:

  • Lời nhắc hệ thống
  • Định nghĩa công cụ
  • Khối few-shot
  • Hướng dẫn định dạng dài

Xác minh cache bằng khối usage. Ở lần gọi giống hệt thứ hai, cache_read_input_tokens phải khác 0.

{
  "usage": {
    "cache_read_input_tokens": 800
  }
}
Enter fullscreen mode Exit fullscreen mode

Token đọc từ cache có giá 0,50 đô la cho mỗi triệu token, so với 5 đô la cho mỗi triệu token đầu vào cơ bản. Xem thêm hướng dẫn cắt giảm hóa đơn API Claude.

6. Tin nhắn hệ thống giữa cuộc trò chuyện giờ đây được chấp nhận

Opus 4.8 từ chối mục {"role": "system"} trong mảng messages với lỗi 400. Opus 5 chấp nhận cấu trúc này.

Điều này không làm hỏng tích hợp hiện có, nhưng có thể loại bỏ các giải pháp thay thế. Thay vì nhét hướng dẫn giữa cuộc trò chuyện vào lượt người dùng tổng hợp, bạn có thể thêm trực tiếp một tin nhắn hệ thống:

{
  "model": "claude-opus-5",
  "max_tokens": 8192,
  "messages": [
    {
      "role": "user",
      "content": "Draft the release note."
    },
    {
      "role": "assistant",
      "content": "Here is a first draft..."
    },
    {
      "role": "system",
      "content": "From here on, keep responses under 150 words."
    },
    {
      "role": "user",
      "content": "Tighten it."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Đây là khả năng theo từng mô hình. Nếu bạn định tuyến cùng lịch sử trò chuyện sang Opus 4.8 làm dự phòng, mô hình cũ vẫn trả về lỗi 400 cho tin nhắn hệ thống giữa cuộc trò chuyện.

7. Bậc Ưu tiên (Priority Tier) không được hỗ trợ trên Opus 5

Opus 4.8 hỗ trợ Bậc Ưu tiên. Opus 5 thì không.

Nếu bạn đã mua thông lượng cam kết để bảo đảm độ trễ cho một đường dẫn sản xuất, việc chuyển đường dẫn đó sang Opus 5 sẽ đưa nó về năng lực tiêu chuẩn.

Cách xử lý thực tế:

  1. Xác định các luồng đang dùng Bậc Ưu tiên.
  2. Đo độ trễ p95/p99 trên năng lực tiêu chuẩn.
  3. Giữ các luồng nhạy cảm độ trễ trên claude-opus-4-8 nếu cần.
  4. Chuyển các luồng khác sang Opus 5 theo từng khối lượng công việc.

Đừng chuyển toàn bộ hệ thống trong một lần nếu Bậc Ưu tiên là yêu cầu vận hành quan trọng.

8. Chế độ Nhanh (Fast mode) và cơ chế dự phòng cho từ chối an ninh mạng

Chế độ Nhanh hoạt động trên Opus 5

Fast mode hoạt động trên Opus 5. Nó cung cấp tốc độ đầu ra nhanh hơn khoảng 2,5 lần với giá:

  • 10 đô la cho mỗi triệu token đầu vào
  • 50 đô la cho mỗi triệu token đầu ra

Giới hạn:

  • Là bản xem trước nghiên cứu.
  • Chỉ dùng cho API bên thứ nhất.
  • Không hỗ trợ Amazon Bedrock, Google Cloud hoặc Microsoft Foundry.
  • Không kết hợp với Batch API.

Dùng Fast mode cho đường dẫn tương tác, không dùng cho tác vụ nền hàng loạt.

Cơ chế dự phòng phía máy chủ

Bạn có thể bật dự phòng tự động cho các yêu cầu bị Opus 5 từ chối vì lý do liên quan đến an ninh mạng.

Gửi:

{
  "fallbacks": "default"
}
Enter fullscreen mode Exit fullscreen mode

Kèm beta header:

anthropic-beta: server-side-fallback-2026-07-01
Enter fullscreen mode Exit fullscreen mode

Khi phù hợp, yêu cầu sẽ tự động quay lại Opus 4.8. Tính năng này đặc biệt hữu ích cho công cụ bảo mật.

Ngoài ra, beta header sau cho phép thêm hoặc xóa định nghĩa công cụ giữa các lượt mà không làm mất hiệu lực cache lời nhắc:

anthropic-beta: mid-conversation-tool-changes-2026-07-01
Enter fullscreen mode Exit fullscreen mode

Đây là đòn bẩy chi phí hữu ích cho phiên tác nhân dài có bộ công cụ thay đổi.

9. Những gì không thay đổi

Các điểm sau có thể giữ nguyên:

  • Tham số lấy mẫu vẫn trả về lỗi 400. Các giá trị temperature, top_ptop_k không mặc định vẫn bị từ chối, giống Opus 4.8. Hãy điều chỉnh hành vi bằng lời nhắc hệ thống.
  • Số lượng token gần như giống nhau. Opus 5 dùng cùng họ tokenizer với 4.8, nên ngân sách token và mô hình chi phí hiện có được giữ nguyên mà không cần đếm lại.
  • Giá cơ bản giống hệt. 5 đô la đầu vào và 25 đô la đầu ra, bằng Opus 4.8, 4.7, 4.6 và 4.5. Xem trang giá Opus 4.8.
  • Cấu trúc yêu cầu và phản hồi không thay đổi. Streaming, sử dụng công cụ, thị giác, đầu ra có cấu trúc và xử lý hàng loạt đều hoạt động như trước.

Một thay đổi ở cấp độ lời nhắc: Opus 5 tự xác minh công việc mà không cần nhắc. Các chỉ dẫn như “kiểm tra lại câu trả lời của bạn” có thể gây xác minh quá mức và lãng phí token.

Phản hồi mặc định cũng dài hơn 4.8. Giảm effort sẽ giảm quá trình tư duy, không nhất thiết giảm độ dài hiển thị. Nếu cần đầu ra ngắn, hãy yêu cầu rõ ràng trong prompt.

Xem hướng dẫn tạo lời nhắc cho Claude Opus 5.

Xác minh quá trình di chuyển trước khi triển khai

Mỗi khác biệt ở trên đều có thể kiểm thử ở cấp HTTP, bên ngoài ứng dụng chính. Một vòng lặp thực tế trong Apidog:

  1. Lưu yêu cầu đến điểm cuối Messages; lưu khóa API dưới dạng biến môi trường, không đặt trực tiếp trong body.
  2. Nhân bản yêu cầu thành các biến thể:
    • claude-opus-4-8 cơ bản
    • claude-opus-5 với giá trị mặc định
    • Một bản cho mỗi mức effort
  3. Cố tình gửi tổ hợp thinking: disabled với xhigh để ghi nhận body lỗi 400 và dễ nhận diện trong log sản xuất.
  4. Khẳng định stop_reason; nếu là max_tokens, kiểm thử phải thất bại thay vì âm thầm triển khai đầu ra bị cắt.
  5. Gửi hai yêu cầu cache giống hệt nhau và kiểm tra usage.cache_read_input_tokens ở lần gọi thứ hai.
  6. Chạy yêu cầu streaming và xác nhận parser SSE xử lý được các khối tư duy hiện có mặc định.

Tải Apidog để lưu các yêu cầu này thành bộ sưu tập tái sử dụng cho các lần chuyển đổi mô hình sau.

Một cảnh báo trung thực trước khi bạn di chuyển mọi thứ

Opus 5 không phải là mô hình hàng đầu của dòng Claude. Fable 5 vẫn là mô hình được phát hành rộng rãi có khả năng nhất của Anthropic, và Opus 5 vẫn còn kém Mythos 5 về khai thác an ninh mạng và nghiên cứu sinh học tự động.

Anthropic tự tuyên bố điều này trong bài đăng ra mắt. Các tuyên bố benchmark khi ra mắt như Frontier-Bench, ARC-AGI 3, OSWorld 2.0 và CursorBench 3.2 là số liệu do nhà cung cấp báo cáo và chưa được tái sản xuất độc lập tính đến ngày 25 tháng 7 năm 2026.

Hãy xem chúng là các số liệu Anthropic tự báo cáo, sau đó chạy đánh giá riêng trước khi cam kết một khối lượng công việc sản xuất.

Tóm tắt: khả năng cấp độ tiên phong với một nửa giá tiên phong, nhưng vẫn có một giới hạn được nêu rõ phía trên nó.

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

Thực hiện theo thứ tự này:

  1. Thay đổi chuỗi mô hình thành chính xác claude-opus-5. Không có hậu tố ngày tháng.
  2. Tăng max_tokens trên mọi yêu cầu trước đây bỏ qua thinking. Quá trình tư duy giờ chạy mặc định và dùng chung ngân sách này.
  3. Grep cơ sở mã để tìm "disabled" và xác nhận không yêu cầu nào kết hợp với xhigh hoặc max.
  4. Xóa giá trị beta ngữ cảnh dài khỏi anthropic-beta. Cửa sổ 1M giờ là mặc định.
  5. Chạy lại thử nghiệm effort từ đầu trên bộ đánh giá riêng. Không sao chép cài đặt 4.8.
  6. Thêm điểm ngắt cache_control cho phân đoạn lời nhắc dài từ 512 đến 1.024 token.
  7. Xác định lưu lượng dùng Bậc Ưu tiên và quyết định theo từng khối lượng công việc liệu có giữ trên claude-opus-4-8 hay không.
  8. Xóa hướng dẫn xác minh dư thừa trong prompt và thêm chỉ dẫn ngắn gọn rõ ràng khi độ dài đầu ra quan trọng.
  9. Tùy chọn bật fallbacks: "default" nếu khối lượng công việc gây ra từ chối liên quan đến an ninh mạng.
  10. Khẳng định stop_reason trong bộ kiểm thử để phản hồi bị cắt được coi là lỗi, không phải câu trả lời kém chất lượng tinh vi.

Để xem cấu trúc yêu cầu chi tiết, đọc hướng dẫn API Claude Opus 5, hoặc bắt đầu với Claude Opus 5 là gì để xem thông số kỹ thuật và tính khả dụng.

Nếu vẫn chạy mô hình cũ ở một số nơi, bài giải thích về Opus 4.8hướng dẫn API Opus 4.8 vẫn chính xác. Tổng quan mô hình của Anthropic là nguồn chính thức cho ID mô hình, cửa sổ ngữ cảnh và giới hạn.

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

Việc di chuyển từ Opus 4.8 sang Opus 5 có phải là chuyển đổi trực tiếp không?

Gần như vậy, nhưng không hoàn toàn. Thay đổi chuỗi mô hình hoạt động cho hầu hết yêu cầu. Hai điểm có thể gây lỗi là:

  • Tư duy giờ chạy mặc định và dùng chung ngân sách max_tokens.
  • thinking: {"type": "disabled"} kết hợp với nỗ lực xhigh hoặc max trả về lỗi 400.

Lưu lượng Bậc Ưu tiên cũng cần quyết định riêng vì Opus 5 không hỗ trợ nó.

Tại sao tôi nhận lỗi 400 sau khi chuyển sang claude-opus-5?

Nguyên nhân phổ biến nhất là tắt tư duy trong khi yêu cầu nỗ lực xhigh hoặc max.

Bạn có hai lựa chọn:

  • Xóa trường thinking và giữ mức nỗ lực cao.
  • Giữ tư duy tắt nhưng giảm nỗ lực xuống high hoặc thấp hơn.

Các giá trị temperature, top_p hoặc top_k không mặc định cũng vẫn trả về lỗi 400, giống như Opus 4.8.

Tôi có cần đếm lại token sau khi di chuyển không?

Không. Opus 5 dùng cùng họ tokenizer với Opus 4.8, vì vậy số lượng token gần như không thay đổi và ngân sách hiện có được giữ nguyên.

Chi phí thêm của lời nhắc hệ thống sử dụng công cụ thấp hơn một chút, ở mức 286 token thay vì 290. Giá cơ bản cũng không đổi: 5 đô la đầu vào và 25 đô la đầu ra.

Tuy nhiên, tổng hóa đơn vẫn có thể tăng nếu tính năng tư duy mặc định làm tăng số token đầu ra.

Top comments (0)