DEV Community

Cover image for Claude Sonnet 5 so với Sonnet 4.6: Những thay đổi và có nên nâng cấp?
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Claude Sonnet 5 so với Sonnet 4.6: Những thay đổi và có nên nâng cấp?

Anthropic đã phát hành Claude Sonnet 5 vào ngày 30/06/2026 như một bản thay thế trực tiếp cho Sonnet 4.6: trong nhiều trường hợp bạn chỉ đổi model từ claude-sonnet-4-6 sang claude-sonnet-5. Tuy nhiên, trước khi đưa vào production, bạn cần xử lý ba điểm dễ gây lỗi: tokenizer mới, adaptive thinking bật mặc định, và một số tham số request cũ giờ trả về 400.

Dùng thử Apidog ngay hôm nay

Tóm tắt nhanh: giá theo token không đổi, benchmark tốt hơn cho coding và agentic workflows, nhưng cùng một văn bản có thể tạo nhiều token hơn khoảng 30%. Nếu bạn đang giới hạn chi phí hoặc max_tokens sát ngưỡng, hãy đo lại trước khi rollout.

Claude Sonnet 5 overview

Nâng cấp trong nháy mắt

Sonnet 5 giữ nguyên giá mỗi token như Sonnet 4.6, cải thiện các tác vụ dùng công cụ và coding, nhưng thay đổi một số hành vi mặc định. Đừng chỉ đổi model ID rồi deploy ngay.

Thuộc tính Sonnet 4.6 (claude-sonnet-4-6) Sonnet 5 (claude-sonnet-5)
Phát hành Phiên bản trước 30 tháng 6, 2026
Cửa sổ ngữ cảnh Lên tới 1 triệu token 1 triệu token, mặc định và tối đa
Đầu ra tối đa 128K token 128K token
Suy nghĩ mặc định Tắt khi không có trường thinking Adaptive thinking bật mặc định
Suy nghĩ mở rộng (budget_tokens) Không dùng nữa Trả về lỗi 400
Tham số lấy mẫu (temperature, top_p, top_k) Được chấp nhận Giá trị không mặc định trả về 400
Tokenizer Tokenizer cũ hơn Tokenizer mới, khoảng 30% nhiều token hơn trên cùng văn bản
Giá tiêu chuẩn $3 / $15 cho mỗi triệu token đầu vào/đầu ra $3 / $15 cho mỗi triệu token đầu vào/đầu ra
Giá giới thiệu Không áp dụng $2 / $10 cho mỗi triệu token đến ngày 31/08/2026

Các tính năng như structured output, vision, prompt caching, tool use và batch processing vẫn được giữ nguyên. Điểm cần lưu ý: Priority Tier không có trên Sonnet 5.

Điều gì tốt hơn: benchmark

Sonnet 5 được định vị là model Sonnet mạnh hơn cho agentic tasks. Các số liệu dưới đây là benchmark ra mắt do Anthropic báo cáo, không phải kiểm thử độc lập.

Benchmark Sonnet 4.6 Sonnet 5
SWE-bench Pro, coding có tính agentic 58,1% 63,2%
OSWorld-Verified, computer use 78,5% 81,2%

Nếu ứng dụng của bạn dùng model để gọi tool, sửa code, chạy terminal hoặc điều phối workflow nhiều bước, đây là nhóm workload hưởng lợi rõ nhất. Anthropic cũng báo cáo Sonnet 5 gần bằng Opus 4.8 khi có tool trong vòng lặp, trong khi chi phí thấp hơn. Để so sánh chi tiết hơn, xem Sonnet 5 so với Opus 4.8.

Sonnet 5 benchmark

Theo Anthropic, Sonnet 5 cũng an toàn hơn Sonnet 4.6: ít hành vi không mong muốn hơn, ít hallucination và sycophancy hơn, đồng thời chống prompt injection tốt hơn. Một chi tiết quan trọng khi parse response: nếu request bị từ chối, API có thể trả về HTTP 200 với:

{
  "stop_reason": "refusal"
}
Enter fullscreen mode Exit fullscreen mode

Vì vậy, đừng chỉ kiểm tra HTTP status. Hãy xử lý cả stop_reason.

Ba thay đổi mã cần kiểm tra

Hầu hết migration chỉ cần xử lý ba nhóm thay đổi dưới đây.

1. Adaptive thinking bật mặc định

Trên Sonnet 4.6, nếu bạn không gửi trường thinking, model không dùng thinking. Trên Sonnet 5, nếu request không có thinking, adaptive thinking được bật mặc định.

Điều này ảnh hưởng trực tiếp đến max_tokens: giới hạn này bao gồm cả thinking tokens và text response. Nếu trước đây bạn đặt max_tokens vừa đủ cho phần trả lời, Sonnet 5 có thể cắt cụt response vì thinking đã dùng một phần ngân sách.

Nếu workload trước đây không dùng thinking và bạn muốn giữ hành vi tương tự, hãy tắt rõ ràng:

from anthropic import Anthropic

client = Anthropic()

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    thinking={"type": "disabled"},
    messages=[
        {
            "role": "user",
            "content": "Return the OpenAPI 3.1 path object for GET /invoices/{id}."
        }
    ],
)

print(response.content[0].text)
Enter fullscreen mode Exit fullscreen mode

Nếu muốn dùng adaptive thinking, hãy đặt effort thay vì tự cấp ngân sách token:

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=8192,
    thinking={"type": "adaptive"},
    effort="medium",
    messages=[
        {
            "role": "user",
            "content": "Draft integration tests for the POST /orders endpoint."
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

Checklist khi bật adaptive thinking:

  • Tăng max_tokens cho các task phức tạp.
  • Theo dõi response bị cắt cụt.
  • Log usage để thấy token thực tế.
  • Dùng effort="low", "medium", "high" hoặc "xhigh" theo độ khó của task.

2. budget_tokens không còn dùng được

Mẫu cũ sau đây sẽ lỗi trên Sonnet 5:

{
  "thinking": {
    "type": "enabled",
    "budget_tokens": 4096
  }
}
Enter fullscreen mode Exit fullscreen mode

Thay bằng adaptive thinking:

{
  "thinking": {
    "type": "adaptive"
  },
  "effort": "high"
}
Enter fullscreen mode Exit fullscreen mode

Mapping thực tế:

Trước đây Nên đổi sang
Không cần reasoning thinking={"type": "disabled"}
Reasoning nhẹ thinking={"type": "adaptive"}, effort="low"
Coding/test/debug thông thường thinking={"type": "adaptive"}, effort="medium"
Agentic workflow phức tạp thinking={"type": "adaptive"}, effort="high" hoặc "xhigh"

3. temperature, top_p, top_k có thể gây lỗi 400

Trên Sonnet 5, đặt temperature, top_p hoặc top_k thành giá trị không mặc định sẽ trả về 400.

Nếu code của bạn đang dùng:

response = client.messages.create(
    model="claude-sonnet-5",
    temperature=0,
    max_tokens=1024,
    messages=[{"role": "user", "content": "Generate a JSON schema."}]
)
Enter fullscreen mode Exit fullscreen mode

Hãy bỏ temperature và kiểm soát output bằng prompt:

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    system=(
        "Return only valid JSON. Do not include Markdown. "
        "Use deterministic field names and stable ordering."
    ),
    messages=[
        {
            "role": "user",
            "content": "Generate a JSON schema for a customer object."
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

Trước khi deploy, grep toàn bộ codebase:

grep -R "temperature\|top_p\|top_k\|budget_tokens" .
Enter fullscreen mode Exit fullscreen mode

Ngoài ra, prefilling assistant message vẫn không được hỗ trợ và vẫn trả về 400. Nếu bạn đang ép response bắt đầu bằng nội dung có sẵn, hãy chuyển sang structured output, output_config.format, hoặc system prompt rõ ràng hơn.

Tokenizer mới: điểm dễ làm lệch ngân sách

Sonnet 5 dùng tokenizer mới. Cùng một văn bản có thể tạo nhiều token hơn khoảng 30% so với Sonnet 4.6.

Không cần đổi cấu trúc request hoặc response, nhưng bạn cần đo lại mọi thứ liên quan đến token:

  • usage.input_tokens
  • usage.output_tokens
  • giới hạn max_tokens
  • chi phí mỗi request
  • dung lượng thực tế của context window
  • logic chunking hoặc trimming context

Ví dụ: một prompt + response tương đương 10.000 token trên Sonnet 4.6 có thể thành khoảng 13.000 token trên Sonnet 5. Dù giá mỗi token không đổi, chi phí request có thể tăng vì tổng token tăng.

Để phân tích sâu hơn về chi phí, xem phân tích giá Sonnet 5.

Bạn có thể đo bằng endpoint đếm token:

curl https://api.anthropic.com/v1/messages/count_tokens \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-sonnet-5",
    "messages": [
      {
        "role": "user",
        "content": "Summarize the changelog for our billing API v3 release."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Sau đó chạy lại với Sonnet 4.6:

curl https://api.anthropic.com/v1/messages/count_tokens \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-sonnet-4-6",
    "messages": [
      {
        "role": "user",
        "content": "Summarize the changelog for our billing API v3 release."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Sự chênh lệch giữa hai kết quả là tác động thực tế đến budget của bạn.

Chi phí nâng cấp

Theo giá tiêu chuẩn, Sonnet 5 có cùng giá với Sonnet 4.6:

Loại token Giá tiêu chuẩn
Input $3 / triệu token
Output $15 / triệu token

Sonnet 5 có giá giới thiệu đến ngày 31/08/2026:

Loại token Giá giới thiệu
Input $2 / triệu token
Output $10 / triệu token

Trong thời gian giới thiệu, giá thấp hơn có thể bù một phần cho việc tokenizer tạo nhiều token hơn. Sau ngày 31/08, giá mỗi token quay về mức $3 / $15, nên cùng một workload văn bản có thể tốn nhiều hơn so với Sonnet 4.6 nếu số token tăng.

Với prompt caching và batch processing, hãy kiểm tra trang giá của Anthropic thay vì giả định discount cố định.

Nếu bạn cần baseline để so sánh, xem thêm giá Sonnet 4.6chi phí API Claude.

Bạn có nên nâng cấp không?

Việc đổi model ID rất đơn giản. Quyết định nâng cấp phụ thuộc vào workload.

Nâng cấp ngay nếu bạn xây dựng agent hoặc coding tool

Nếu ứng dụng của bạn gọi tool, sửa code, chạy test, điều khiển terminal hoặc xử lý workflow nhiều bước, Sonnet 5 là lựa chọn đáng thử sớm. Benchmark SWE-bench Pro và OSWorld phù hợp với nhóm workload này.

Sonnet 5 agentic workflows

Nâng cấp có kiểm soát nếu bạn có production traffic lớn

Đừng rollout toàn bộ ngay. Hãy chạy theo quy trình:

  1. Chọn một tập prompt đại diện.
  2. Đếm token trên Sonnet 4.6 và Sonnet 5.
  3. So sánh usage.
  4. Kiểm tra response bị cắt cụt.
  5. Chạy regression test.
  6. Canary một phần nhỏ traffic.
  7. Theo dõi cost và error rate.

Sửa trước nếu bạn đang dùng tham số cũ

Nếu code có temperature, top_p, top_k, budget_tokens hoặc assistant prefilling, hãy xử lý trước khi đổi model. Nếu không, bạn có thể gặp lỗi 400 trong production.

Giữ Sonnet 4.6 nếu bạn cần Priority Tier

Priority Tier không có trên Sonnet 5. Nếu SLA của bạn phụ thuộc vào tính năng này, hãy giữ Sonnet 4.6 cho các path đó.

Với đa số team, Sonnet 5 đáng nâng cấp, nhưng nên xem đây là một migration thật sự, không phải một thay đổi một dòng. Nếu bạn cần đối chiếu với thế hệ trước, xem hướng dẫn API Sonnet 4.6.

Phát hiện regression bằng bộ request đã lưu trong Apidog

Cách an toàn nhất để nâng cấp là chạy Sonnet 5 trên chính prompt của bạn và so sánh với Sonnet 4.6. Đây là bài toán API testing: cùng endpoint, cùng headers, cùng body, chỉ khác model.

Apidog là công cụ phát triển và kiểm thử API. Khi gọi Claude API, bạn đang gửi request HTTP với auth header, JSON body và nhận JSON response. Apidog cho phép lưu request thành collection và chạy lại nhiều lần như một regression suite.

Apidog API testing

Một workflow migration thực tế:

  1. Lưu các request API Messages đại diện thành một collection trong Apidog.
  2. Lưu ANTHROPIC_API_KEY dưới dạng environment variable.
  3. Tạo hai environment:
    • model=claude-sonnet-4-6
    • model=claude-sonnet-5
  4. Thêm assertion cho response shape, ví dụ:
    • content
    • usage
    • stop_reason nằm trong tập hợp mong đợi
    • output parse được JSON nếu endpoint yêu cầu JSON
  5. Chạy collection trên cả hai environment.
  6. So sánh:
    • token usage
    • response length
    • lỗi 400
    • stop_reason: "refusal"
    • regression về format

Bạn cũng có thể mock Claude endpoint trong Apidog để kiểm thử integration xung quanh, bao gồm nhánh stop_reason: "refusal", mà không tốn token. Nếu agent của bạn gọi các downstream API khác, Apidog cũng có thể dùng để test và mock các API đó.

Tải xuống Apidog để tạo bộ so sánh, hoặc mở Apidog trên trình duyệt. Nếu bạn đang chuyển từ Postman, xem hướng dẫn kiểm thử API không cần Postman.

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

Claude Sonnet 5 có phải bản thay thế trực tiếp cho Sonnet 4.6 không?

Phần lớn là có. Bạn đổi model từ claude-sonnet-4-6 sang claude-sonnet-5, sau đó kiểm tra ba điểm: adaptive thinking bật mặc định, budget_tokens trả về 400, và sampling parameters không mặc định trả về 400. Xem hướng dẫn API Sonnet 5 để biết cấu hình request đầy đủ.

Sonnet 5 có đắt hơn Sonnet 4.6 không?

Tính theo mỗi token thì không. Cả hai có giá tiêu chuẩn $3 / triệu input token và $15 / triệu output token. Nhưng tokenizer mới của Sonnet 5 có thể tạo nhiều token hơn khoảng 30% cho cùng một văn bản, nên chi phí mỗi request tương đương có thể cao hơn. Sonnet 5 có giá giới thiệu $2 / $10 đến ngày 31/08/2026.

Vì sao response bị cắt cụt sau khi nâng cấp?

Vì adaptive thinking bật mặc định và thinking tokens dùng chung ngân sách max_tokens với text response. Hãy tăng max_tokens hoặc đặt:

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

nếu request đó không cần thinking.

Tôi có cần đổi code vì tokenizer mới không?

Không cần đổi cấu trúc API request/response. Nhưng bạn nên đo lại mọi logic phụ thuộc vào token: token count, chunk size, max_tokens, context packing và cost estimation.

Điều gì xảy ra với temperaturebudget_tokens?

Trên Sonnet 5, các giá trị không mặc định cho temperature, top_p, top_k có thể trả về 400. budget_tokens cũng không còn dùng được. Hãy bỏ sampling parameters và chuyển kiểm soát hành vi vào system prompt. Với reasoning, dùng adaptive thinking và effort. Hướng dẫn thay đổi API Fable 5 và Mythos cũng đề cập mô hình thay đổi tương tự.

Top comments (0)