Ngày 21/10/2026, Anthropic phát hành API version 2026-10-21 cùng Python SDK 2.0.0, loại bỏ hoàn toàn temperature, top_p và top_k. Request nào còn gửi một trong ba tham số này — kể cả đúng giá trị mặc định — đều bị trả về lỗi 400; SDK mới chặn ngay trên máy bạn bằng TypeError.

temperature từng là “nút vặn” quen thuộc: hạ xuống 0 để model trả lời ổn định, tăng lên để sáng tạo hơn. Giờ Anthropic tuyên bố không có tham số nào thay thế nó.

Điều gì đã thay đổi?

  • API version 2026-10-21 ra mắt ngày 21/10/2026 cùng Python SDK 2.0.0, gửi phiên bản API này theo mặc định.
  • Request chứa temperature, top_p hoặc top_k đều nhận lỗi 400 — ngay cả khi truyền đúng giá trị mặc định. Bỏ hẳn ba tham số thì API dùng mặc định, trong đó temperature là 1.0.
  • SDK đã bỏ ba tham số khỏi chữ ký hàm từ phiên bản 1.0.0, nên truyền chúng dạng keyword argument sẽ gây TypeError.

SDK 2.0.0 còn đổi gì nữa?

Ba thay đổi khác:

  • API key giờ gửi qua header Authorization: Bearer thay cho X-Api-Key — proxy hoặc gateway đọc X-Api-Key cần cập nhật.
  • Mỗi client chỉ giữ một loại credential: truyền đồng thời api_key và auth_token sẽ gây ValueError.
  • MessageParam thành union theo từng vai trò; gọi nó như class sẽ gây TypeError, nhưng dùng dict thuần vẫn hoạt động.

Cách cầm cự nếu chưa kịp sửa code

  • Ghim SDK cũ: bản 1.17.0 là bản 1.x cuối cùng, vẫn gửi API version cũ 2023-06-01. Với API cũ, bạn vẫn truyền được temperature qua extra_body.
  • Nếu đã lên SDK 2.x, ép dùng API version cũ bằng default_headers — chỉ là đường lui tạm thời.
  • Đường lui này chỉ có tác dụng với model vẫn chấp nhận temperature khác mặc định, ví dụ Claude Sonnet 4.6. Từ Claude 4.7 trở đi, chỉ chấp nhận giá trị mặc định.
pip install "anthropic>=1,<2"

Điều này có ý nghĩa gì với bạn

temperature thấp từng là cách đơn giản nhất để bắt model trả lời ổn định. Anthropic không đưa ra tham số thay thế, nên nếu pipeline của bạn phụ thuộc vào temperature = 0, hãy kiểm tra lại: chạy thử các request sau khi nâng cấp SDK, theo dõi hai dạng lỗi — TypeError hoặc ValueError do SDK chặn ngay trên máy, và lỗi 400 do API trả về. Về lâu dài, hãy viết prompt rõ ràng hơn và dùng structured output.

Bài viết liên quan

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

Vì sao request gửi temperature với giá trị mặc định vẫn bị lỗi 400?

Vì API version 2026-10-21 không còn chấp nhận ba tham số này. Cách duy nhất là bỏ hẳn chúng khỏi request; khi đó API tự dùng giá trị mặc định, trong đó temperature là 1.0.

Tôi có thể dùng tham số nào thay cho temperature?

Theo migration guide của Anthropic, không có tham số nào thay thế. Nếu cần câu trả lời ổn định hơn, hãy viết prompt chặt chẽ hơn hoặc dùng structured output.

Làm sao để tiếp tục dùng temperature trong lúc chưa sửa code?

Ghim SDK 1.x (bản 1.17.0 là bản cuối của dòng 1.x) rồi truyền temperature qua extra_body, hoặc ép API version cũ qua default_headers nếu đã lên SDK 2.x. Cả hai chỉ là đường lui tạm thời.

💬 Tin này ảnh hưởng tới dự án của bạn thế nào? Chia sẻ góc nhìn của bạn trong phần bình luận — mình đọc hết và sẽ tổng hợp những ý hay nhất.

Nguồn tham khảo