AI-native development⏱ 11 phút đọc · 7 thg 10, 2026

Claude Sonnet 5.5 có gì mới cho lập trình viên: giá, benchmark và cách migrate

Claude Sonnet 5.5 ra ngày 28/9/2026: cùng giá $2/$10 như Sonnet 5 nhưng nhanh hơn, dùng ít token hơn và tiến gần Opus 5.5 trên benchmark coding. Bài này tóm tắt thông số, dùng ở đâu, khi nào chọn Sonnet, Opus hay Haiku 5.5, và 5 breaking change khi migrate.

HOLETEX · POST
SONNET 5.5
có gì mới

Team bạn có một bot nhỏ chạy trên CI: mỗi khi có pull request, nó gọi Claude Sonnet 5 để gắn nhãn (bug, feature, refactor) và tóm tắt thay đổi. Thấy Anthropic ra Sonnet 5.5 cùng giá mà nhanh hơn, bạn đổi model ID, push lên, và bot bắt đầu trả lỗi 400 cho mọi PR. Code không sai gì cả, chỉ là hai tham số từng hợp lệ trên Sonnet 5 giờ bị từ chối.

Cùng tuần đó, bạn gõ /model sonnet trong Claude Code và thấy nó đã tự trỏ sang Sonnet 5.5, effort medium, không cần sửa gì.

Bài này đi qua những gì dev cần biết về Claude Sonnet 5.5: thông số, cách đọc benchmark, dùng ở đâu, khi nào chọn Sonnet thay vì Opus 5.5 hoặc Haiku 5.5, và danh sách việc cần sửa khi migrate từ Sonnet 5.

Thông số nhanh

MụcClaude Sonnet 5.5
Ngày phát hành28/9/2026
Model ID (Claude API)claude-sonnet-5-5
Giá API (input / output, mỗi 1M token)$2 / $10 (bằng Sonnet 5)
Batch API$1 / $5
Cache write (5 phút / 1 giờ)$2,50 / $4
Context window1M token, không phụ phí khi prompt dài
Output tối đa128K token (300K trên Batch API với beta header)
ThinkingAdaptive, bật mặc định
Effort mặc địnhhigh trên API, medium trong Claude Code
Kiến thức đáng tin cậy tới6/2026
Nền tảngClaude API, Amazon Bedrock, Google Cloud, Microsoft Foundry, Claude Platform on AWS

Có một chỗ docs của Anthropic đang chưa thống nhất: giá cache read. Trang công bố, bảng giá, trang model và changelog Claude Code đều ghi $0,20 / 1M token, nhưng đoạn giải thích trên trang Pricing và trang "What's new" ghi $0,10 (5% giá input, bằng nửa Sonnet 5). Bài này tính theo $0,20. Nếu chi phí của bạn phụ thuộc nhiều vào cache, hãy đối chiếu với hóa đơn thật trong Console.

Sonnet 5.5 khác Sonnet 5 ở đâu

Anthropic mô tả Sonnet 5.5 là "a faster, lower-cost complement to Claude Opus 5.5". Với dev, điều đó quy về ba thay đổi:

1. Nhanh hơn và rẻ hơn trên mỗi task, dù giá mỗi token không đổi. Theo công bố, Sonnet 5.5 sinh output nhanh hơn Sonnet 5 trên 30% và tốn ít token hơn để xong việc, nên trong thử nghiệm của Anthropic, chi phí mỗi task thấp hơn tới 30%.

2. Khoảng cách với Opus hẹp lại. Trên vài benchmark coding, Sonnet 5.5 tiến sát hoặc vượt Opus 5.5, nên nhiều việc trước đây bạn "phải" dùng Opus giờ đáng thử lại với Sonnet.

3. Thêm tính năng API mà Sonnet 5 không có: đổi effort theo từng message (beta), system message giữa hội thoại, thay đổi tool giữa hội thoại (beta), và prompt tối thiểu để cache giảm từ 1.024 xuống 512 token. Tokenizer giữ nguyên như Sonnet 5.

Đổi lại, thinking giờ bật mặc định và không còn tắt bằng disabled, gốc của phần lớn breaking change ở cuối bài.

Benchmark chính thức và cách đọc

Bảng dưới lấy từ trang công bố Sonnet 5.5, giữ nguyên tên và phiên bản benchmark:

BenchmarkSonnet 5.5Sonnet 5Opus 5.5
Terminal-Bench 4.070,6%10,3%66,4%
CursorBench 4.055,5%34,1%57,8%
FrontierCode 1.1 (Main)46,2%42,4%54,4%
GDPval-AA v2.1 (Elo)184414491846

Vài điều cần đọc kỹ trước khi kết luận:

  • Effort không giống nhau giữa các cột. Theo chú thích, điểm Terminal-Bench của Opus 5.5 là ở xhigh, mức cho điểm cao nhất của nó. Điểm FrontierCode 46,2% của Sonnet 5.5 đo ở max, và Anthropic ghi chú Sonnet 5.5 ở max còn thấp hơn ở xhigh. Tức là mỗi ô có thể đo ở một mức effort khác nhau, và không ô nào là thứ bạn nhận được ở effort mặc định.
  • GDPval-AA đo trên bản trước khi phát hành, theo chú thích có một lỗi structured output đã được sửa sau đó. Anthropic cho rằng ảnh hưởng nhỏ, nhưng nên xem đây là số tham khảo.
  • Terminal-Bench nhảy từ 10,3% lên 70,6% chỉ nói Sonnet 5.5 giỏi hơn hẳn ở việc trong terminal, không có nghĩa nó hơn Opus 5.5 ở mọi việc. Trên FrontierCode, Opus 5.5 vẫn dẫn rõ.
  • Đừng so chéo phiên bản benchmark. Terminal-Bench 4.0 khác 2.x, OSWorld 2.0 khác 2.1. Bài so sánh model AI cho lập trình 2026 giải thích vì sao số của các lab không đặt cạnh nhau được.

Coi benchmark là tín hiệu để thử, rồi đo trên task thật của bạn.

Dùng Sonnet 5.5 ở đâu

API và cloud. Model ID là claude-sonnet-5-5 trên Claude API, Google Cloud, Microsoft Foundry và Claude Platform on AWS; trên Amazon Bedrock là anthropic.claude-sonnet-5-5. Fast mode hiện chỉ có cho dòng Opus, Sonnet 5.5 không có.

Claude apps. Theo trang giá claude.com, Sonnet có trong mọi gói, kể cả Free. Anthropic chưa nói rõ model mặc định của từng gói, nên hãy kiểm tra model picker.

Claude Code. Từ v2.1.284, alias sonnet trỏ tới Sonnet 5.5 khi bạn dùng Anthropic API. Hai điểm dễ nhầm:

  • Model mặc định của Claude Code cho Pro, Max, Team, Enterprise và tài khoản API vẫn là Opus 5.5. Bạn phải chủ động chọn Sonnet.
  • Trên nền tảng khác, alias sonnet chưa trỏ tới 5.5: docs ghi Claude Platform on AWS ra Sonnet 4.6, còn Bedrock, Google Cloud và Foundry ra Sonnet 4.5. Muốn dùng Sonnet 5.5 ở đó, đặt biến ANTHROPIC_DEFAULT_SONNET_MODEL sang ID Sonnet 5.5 của nền tảng.

Nếu bạn mới làm quen tool này, đọc trước bài Claude Code là gì.

GitHub Copilot. Changelog của GitHub ngày 28/9 cho biết Sonnet 5.5 đã GA cho Copilot Pro, Pro+, Max, Business và Enterprise (VS Code, Visual Studio, JetBrains, Xcode, Eclipse, Copilot CLI, coding agent, github.com, mobile...), mở dần và tính phí theo usage-based billing. Khác với Opus 5.5, gói Pro cũng có Sonnet 5.5. Với Business và Enterprise, admin bật/tắt model qua model policy; nếu không thấy Sonnet 5.5, hỏi admin trước. Còn Cursor, tại ngày 8/10/2026 changelog chính thức chưa nhắc tới Sonnet 5.5.

Dùng Sonnet 5.5 trong Claude Code

bash
# Cần Claude Code v2.1.284 trở lên
claude update

# Mở thẳng một phiên với Sonnet
claude --model sonnet
text
# Gõ trong phiên Claude Code, không phải terminal
/model sonnet      # chuyển phiên hiện tại sang Sonnet 5.5
/effort high       # Sonnet 5.5 bắt đầu ở medium; tăng khi task khó
/model opusplan    # plan bằng Opus, thực thi bằng Sonnet

Lưu ý /effort high được lưu làm mức mặc định cho model đang dùng, không chỉ cho phiên này.

opusplan dùng Opus ở plan mode để nghĩ kiến trúc, rồi tự chuyển sang Sonnet khi thực thi. Với quota gói Pro, đẩy phần "gõ code" sang Sonnet thường giúp bạn dùng được lâu hơn, vì Sonnet rẻ hơn Opus trên mỗi token.

Một mẫu khác là để phiên chính chạy Opus, còn subagent làm việc lặp lại (tìm file, chạy test, đọc log) chạy Sonnet:

text
---
name: test-runner
description: Chạy test, đọc output và tóm tắt các test fail kèm nguyên nhân khả dĩ
model: sonnet
effort: medium
---

Chạy bộ test liên quan tới phần code vừa sửa. Chỉ báo lại test fail,
file/dòng liên quan và một câu giải thích. Không tự sửa code.

Cách tổ chức subagent và skill có trong bài Claude Code nâng cao.

Sonnet 5.5, Opus 5.5 hay Haiku 5.5

Haiku 5.5 vừa ra ngày 7/10/2026, nên hiện dòng 5.5 có đủ ba hạng. Thông số để đặt cạnh nhau:

Haiku 5.5Sonnet 5.5Opus 5.5
Giá (in / out, mỗi 1M)$0,10 / $0,50 (prompt tới 100K); $0,50 / $2,50 (trên 100K)$2 / $10$4 / $20
Cache read$0,01 (tới 100K)$0,20 (xem ghi chú đầu bài)$0,20
Độ trễ tương đốiNhanh nhấtNhanhVừa phải
Effort mặc định (API)mediumhighmedium
Docs mô tảPhân loại, trích xuất, routing khối lượng lớnCân bằng tốt nhất giữa tốc độ và trí tuệAgentic coding chạy dài, knowledge work

Haiku 5.5 là model hiện tại duy nhất tính giá theo độ dài prompt: request vượt 100K token trả giá gấp 5 lần, nên mức "rẻ hơn Sonnet 20 lần" chỉ đúng với prompt ngắn; trên mốc đó chỉ còn khoảng 4 lần.

Tính chi phí theo task, không theo token

Thử một phiên agent giả định: 2M token cache read, 100K token input mới, 150K token output. Chỉ tính theo đơn giá:

  • Opus 5.5: 2 × $0,20 + 0,1 × $4 + 0,15 × $20 = $3,80
  • Sonnet 5.5 (cache read $0,20): 2 × $0,20 + 0,1 × $2 + 0,15 × $10 = $2,10 (khoảng $1,90 nếu cache read là $0,10)
  • Haiku 5.5: khoảng $0,11 nếu mọi request dưới 100K token, khoảng $0,53 nếu mọi request trên 100K

Phép tính trên giả định ba model dùng cùng số token, điều gần như không bao giờ đúng. Model yếu hơn với task khó thường đi nhiều vòng hơn hoặc ra kết quả bạn phải bỏ và chạy lại. Con số cần theo dõi là chi phí trên mỗi task hoàn thành đạt yêu cầu, đo bằng dữ liệu thật trong Console.

Bảng chọn nhanh

Tình huốngGợi ýLý do
Sửa bug rõ ràng, làm feature có spec, viết testSonnet 5.5, effort mediumViệc có phạm vi rõ là thế mạnh của Sonnet, giá bằng nửa Opus
Refactor nhiều module, migration lớn, debug khó, agent chạy hàng giờOpus 5.5Cần phán đoán tốt và giữ mạch lâu; FrontierCode vẫn cho Opus dẫn
Chatbot, autocomplete, việc cần phản hồi nhanhSonnet 5.5 effort low/medium, hoặc Haiku 5.5Độ trễ quan trọng hơn độ sâu
Gắn nhãn PR, phân loại ticket, trích xuất JSON khối lượng lớnHaiku 5.5Docs định vị Haiku cho đúng loại việc này; giữ prompt dưới 100K
Subagent tìm kiếm, đọc log trong Claude CodeSonnet 5.5 hoặc Haiku 5.5Phiên chính giữ Opus, phần lặp đẩy xuống model rẻ
Đã thử Sonnet 5.5 ở high mà vẫn saiOpus 5.5Tăng effort trước, đổi model sau
Copilot gói ProSonnet 5.5Pro có Sonnet 5.5, không có Opus 5.5

Bot gắn nhãn PR ở đầu bài là ứng viên tốt để thử Haiku 5.5, nhưng hãy chạy song song trên PR thật và so kết quả trước khi chuyển hẳn.

Migrate từ Sonnet 5: 5 breaking change và 1 thay đổi ngầm

Đổi model ID là bước dễ nhất. Trang "What's new" liệt kê năm thay đổi có thể làm request cũ trả lỗi 400:

  1. thinking: {"type": "disabled"} bị từ chối. Thay bằng {"type": "between_tools"}, mức thinking thấp nhất: model không nghĩ trước khi trả lời, chỉ viết ghi chú ngắn giữa các lần gọi tool. between_tools chỉ chạy ở effort low, medium, high; ở xhigh hoặc max nó trả lỗi 400. Budget thủ công (budget_tokens) cũng bị từ chối.
  2. Không còn ép gọi tool. tool_choice loại any hoặc tool trả lỗi 400. Dùng auto kèm strict: true trên tool, hoặc chuyển sang structured outputs nếu bạn chỉ cần JSON đúng schema. Nói rõ trong prompt khi nào phải gọi tool.
  3. Thinking block gắn với model và hội thoại. Với tài khoản tạo từ 31/8/2026, nếu bạn sửa system prompt, tools hoặc tin nhắn cũ nằm trước một thinking block rồi gửi lại, API trả lỗi 400. Giữ lịch sử chỉ thêm vào cuối, đổi hướng dẫn bằng system message giữa hội thoại thay vì sửa message cũ.
  4. Computer use: trên Claude API và Google Cloud, tool computer_20251124 không còn được chấp nhận, phải chuyển sang computer_toolset_20260801. Bedrock vẫn nhận bản cũ.
  5. Advisor tool (beta): Opus 4.8, Opus 4.7 và Sonnet 5 không còn làm advisor được cho Sonnet 5.5.

Thay đổi ngầm: ghi chú model viết giữa các lần gọi tool (dài hơn một hai câu) giờ nằm trong thinking block, và mặc định bị để trống (display: "omitted"). Request không lỗi, nhưng nếu UI của bạn stream mấy dòng đó làm "tiến độ" cho người dùng, nó sẽ im lặng. Với adaptive thinking, đặt display thành "updates" (beta) để chỉ nhận các ghi chú tiến độ, hoặc "summarized" để nhận chúng lẫn với tóm tắt reasoning; với between_tools, text tự quay về mà không cần cấu hình.

Thêm một điểm nữa: Sonnet 5.5 có thể từ chối ở nhiều nhóm yêu cầu hơn Sonnet 5. Request vẫn trả HTTP 200 nhưng stop_reason là "refusal", kèm stop_details nêu nhóm lý do. Code chỉ tìm tool_use trong content sẽ lặng lẽ không có kết quả, nên hãy kiểm tra stop_reason và log lại các trường hợp này.

Đây là bot gắn nhãn PR ở đầu bài, trước và sau khi sửa:

text
 {
-  "model": "claude-sonnet-5",
-  "thinking": { "type": "disabled" },
-  "tool_choice": { "type": "tool", "name": "label_pr" },
+  "model": "claude-sonnet-5-5",
+  "thinking": { "type": "between_tools" },
+  "output_config": { "effort": "low" },
+  "tool_choice": { "type": "auto" },
   "tools": [
-    { "name": "label_pr", "input_schema": { ... } }
+    { "name": "label_pr", "strict": true, "input_schema": { ... } }
   ],
   ...
 }

Và phiên bản TypeScript đầy đủ hơn:

ts
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic(); // đọc ANTHROPIC_API_KEY từ biến môi trường

const prDiff = "..."; // diff của pull request, lấy từ CI

const response = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 4096,
  thinking: { type: "between_tools" }, // thay cho "disabled" của Sonnet 5
  output_config: { effort: "low" },    // between_tools chỉ nhận low/medium/high
  tools: [
    {
      name: "label_pr",
      description: "Gắn đúng một nhãn cho pull request kèm tóm tắt ngắn",
      strict: true,
      input_schema: {
        type: "object",
        properties: {
          label: { type: "string", enum: ["bug", "feature", "refactor", "docs"] },
          summary: { type: "string" },
        },
        required: ["label", "summary"],
        additionalProperties: false,
      },
    },
  ],
  messages: [
    {
      role: "user",
      content: `Luôn gọi tool label_pr cho diff sau:\n\n${prDiff}`,
    },
  ],
});

// Sonnet 5.5 có thể từ chối mà vẫn trả HTTP 200
if (response.stop_reason === "refusal") {
  console.warn("Refused:", response.stop_details);
}

// Không đọc content[0]: response có thể chứa thinking block trước tool_use
for (const block of response.content) {
  if (block.type === "tool_use" && block.name === "label_pr") {
    console.log(block.input);
  }
}

Các mức effort cũng đã được hiệu chỉnh lại, nên high trên Sonnet 5.5 không cho ra lượng thinking giống high trên Sonnet 5. Hãy chạy lại eval ở vài mức thay vì mang setting cũ sang. Docs gợi ý: mặc định bắt đầu ở high; với agentic coding, task rõ ràng bắt đầu ở medium, task khó hoặc dài lên high; chat và việc nhạy độ trễ bắt đầu ở medium hoặc low.

Nếu codebase có nhiều chỗ gọi API, trong Claude Code bạn có thể chạy skill có sẵn:

text
/claude-api migrate this project to claude-sonnet-5-5

Skill hỏi phạm vi trước khi sửa file, đổi model ID, sửa các tham số bị loại bỏ và đưa ra checklist để bạn kiểm tra tay.

Checklist tuần này

Tóm lại

Claude Sonnet 5.5 giữ giá của Sonnet 5 nhưng nhanh hơn, tốn ít token hơn và tiến sát Opus 5.5 trên vài benchmark coding. Dùng nó cho việc có phạm vi rõ, giữ Opus 5.5 cho việc dài và khó, đẩy khối lượng lớn với request ngắn sang Haiku 5.5. Nếu gọi API, đừng chỉ đổi model ID: kiểm tra thinking, tool_choice, refusal và cách bạn xử lý lịch sử hội thoại trước khi deploy.

Model càng rẻ và nhanh, bạn càng nhận được nhiều code hơn để review. Đọc được diff React mà AI sinh ra, biết chỗ nào sai và chỗ nào chỉ "chạy được", là kỹ năng không model nào làm thay. Khóa React PRO của HoleTex giúp bạn xây nền đó để điều khiển AI thay vì phụ thuộc vào nó.

Bài liên quan

Nguồn tham khảo: Introducing Claude Sonnet 5.5 (anthropic.com), Claude Sonnet 5.5 (platform.claude.com), What's new in Claude Sonnet 5.5 (platform.claude.com), Claude Sonnet 5.5 migration guide (platform.claude.com), Models overview (platform.claude.com), Pricing (platform.claude.com), Claude pricing (claude.com), Model configuration (code.claude.com), Claude Sonnet 5.5 in GitHub Copilot (github.blog), Claude release notes (support.claude.com). Bài viết tham khảo ý tưởng từ Building with Claude Sonnet 5.5 (claude.dev) trên claude.dev. Cập nhật 2026-10-08.

Thấy hay? Chia sẻ