SSD Nodes Learn 🎉 VPS từ $4.99/tháng
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-13

Vì sao Claude đắt? Tính chi phí token

Token output đắt gấp 5 lần input, còn mỗi lượt lại gửi toàn bộ context. Xem phép tính từ một phiên thực tế và 4 cách giảm hóa đơn Claude.

Vì sao Claude đắt? Câu trả lời ngắn

Claude đắt vì 4 lý do cộng dồn lên nhau. Token đầu ra có giá cao gấp 5 lần token đầu vào. API không lưu bộ nhớ về cuộc trò chuyện, nên toàn bộ lịch sử được gửi lại và tính phí lại ở mỗi lượt. Một agent biến 1 câu hỏi thành hàng chục lệnh gọi API, và mỗi lệnh gọi đều mang theo phần lịch sử ngày càng dài đó. Ngoài ra, model tiên tiến nhất được định giá dựa trên độ khó của công việc mà nó thực hiện, không dựa trên chi phí chạy một model nhỏ.

Token là một phần của văn bản. Theo cách ước tính gần đúng, 1 token tương đương khoảng 4 ký tự hoặc khoảng 0.75 từ tiếng Anh. Bảng giá được tính theo mỗi triệu token, viết là MTok (million tokens). Mọi mức giá dưới đây là mức giá Claude API được công bố tại thời điểm tháng 8 năm 2026.

Phần lớn hóa đơn tăng bất ngờ đến từ lý do thứ 2 và thứ 3 trong danh sách trên. Mọi người thường nghĩ rằng các câu trả lời Claude tạo ra mới là phần tốn tiền. Trong một phiên agent, phần văn bản được tạo ra thường ít hơn 1/10 tổng hóa đơn.

Mức giá đã công bố để thống nhất các con số

ChartPublished Claude API rates, US dollars per million tokens, August 2026
The data behind this chart
[
  {
    "label": "Haiku 4.5",
    "input_usd": 1,
    "output_usd": 5,
    "cache_read_usd": "0.10"
  },
  {
    "label": "Sonnet 5, to Aug 31 2026",
    "input_usd": 2,
    "output_usd": 10,
    "cache_read_usd": "0.20"
  },
  {
    "label": "Sonnet 5, from Sep 1 2026",
    "input_usd": 3,
    "output_usd": 15,
    "cache_read_usd": "0.30"
  },
  {
    "label": "Opus 5",
    "input_usd": 5,
    "output_usd": 25,
    "cache_read_usd": "0.50"
  }
]

Hãy nhìn vào tỷ lệ thay vì các con số tuyệt đối. Mọi model đều tính phí phần output cao hơn phần input đúng 5 lần. Opus 5 có giá 5 đô la cho mỗi 1 triệu input token và 25 đô la cho mỗi 1 triệu output token. Haiku 4.5 có giá 15. Vì vậy, chênh lệch giữa model rẻ nhất và đắt nhất là 5 lần, còn chênh lệch giữa đọc và ghi cũng là 5 lần.

Sonnet 5 có mức giá giới thiệu 210 đô la cho mỗi 1 triệu token đến hết ngày 31 tháng 8, 2026. Từ ngày 1 tháng 9, 2026, mức giá này chuyển thành 315. Mức giá thay đổi theo các lần model được phát hành, vì vậy hãy kiểm tra mức giá hiện tại trước khi lập ngân sách dựa trên chúng. Bảng này cũng không có free tier nào bên dưới, dù tài khoản mới được cấp một khoản credit nhỏ và một số phần của API hoàn toàn không tính phí.

Cột cuối cùng là mức phí đọc cache. Đây là yếu tố quyết định phần lớn hóa đơn. Hãy quay lại cột này sau khi tính toán.

Tại sao output token có chi phí cao gấp 5 lần input token?

Đọc và viết không tốn cùng lượng tài nguyên. Input token được xử lý trong một lượt. Model đọc toàn bộ prompt cùng lúc và xử lý song song trên toàn bộ nội dung đó. Vì vậy, prompt có 60,000 token không mất thời gian đọc lâu gấp 60,000 lần prompt có 1,000 token.

Output token được tạo lần lượt từng token một. Mỗi token mới cần đi qua model một lượt riêng và cần dùng tất cả token đứng trước nó làm context. Viết 1,000 token nghĩa là thực hiện 1,000 lượt xử lý, lần lượt từng lượt. Công việc tuần tự này không thể phân tán như khi đọc, nên mỗi output token chiếm dụng phần cứng lâu hơn.

Đây là lý do câu “làm câu trả lời ngắn hơn” không hiệu quả như nhiều người nghĩ. Cách này chỉ tác động đến nửa nhỏ hơn trong chi phí của một agent.

Vì sao toàn bộ cuộc hội thoại lại bị tính phí trong mỗi lượt?

Claude API là stateless. Không có cuộc hội thoại nào nằm sẵn ở phía Anthropic để bạn chỉ thêm một message vào đó. Mỗi request chứa toàn bộ lịch sử message, và model đọc tất cả nội dung trước khi tạo phản hồi. Vì vậy, lượt 30 bị tính phí cho cả các lượt từ 1 đến 29.

Điều đó có nghĩa là chi phí của một cuộc hội thoại tăng nhanh hơn độ dài của nó. Lượt 1 chỉ tính phí cho một context nhỏ. Lượt 40 tính phí cho một context lớn. Cộng cả 40 lượt lại, bạn đã trả phí cho số token lớn gấp nhiều lần tổng số token từng được viết.

ChartContext size at each turn of a 40 turn agent session
The data behind this chart
[
  {
    "turn": 1,
    "context_tokens": "20,000"
  },
  {
    "turn": 5,
    "context_tokens": "32,000"
  },
  {
    "turn": 10,
    "context_tokens": "45,000"
  },
  {
    "turn": 15,
    "context_tokens": "55,000"
  },
  {
    "turn": 20,
    "context_tokens": "64,000"
  },
  {
    "turn": 25,
    "context_tokens": "74,000"
  },
  {
    "turn": 30,
    "context_tokens": "84,000"
  },
  {
    "turn": 35,
    "context_tokens": "92,000"
  },
  {
    "turn": 40,
    "context_tokens": "100,000"
  }
]

Phiên trên bắt đầu với 20,000 token. Đây là system prompt, các tool definition và những file đầu tiên agent đã mở. Đến lượt 40, context chứa 100,000 token. Lấy mức trung bình trên cả 40 lượt, bạn sẽ có khoảng 60.000 token được đọc trong mỗi request.

Tại sao agent lại tốn nhiều hơn chat?

Chat gửi một request cho mỗi câu hỏi. Agent gửi một request cho mỗi bước. Đọc một file là một bước. Chạy một bài test là một bước. Đọc output của bài test là một bước. Chỉnh sửa file là một bước. Agent lập trình thường cần 40 bước để hoàn thành một tác vụ.

Tool kéo theo hai khoản chi phí bổ sung. Định nghĩa của tool là input token trong từng request, vì model phải được cung cấp danh sách các tool hiện có mỗi lần. Anthropic công bố phần overhead này: system prompt cho tool use chiếm 286 token trên Opus 5 khi tool_choice được đặt thành auto, chưa tính token trong các tool schema của bạn. Một số tool phía server cũng có phí riêng. Web search có giá $10 cho mỗi 1,000 lượt tìm kiếm, chưa tính token mà kết quả tìm kiếm tiêu thụ.

Mỗi kết quả từ tool cũng trở thành context cố định. Một command in ra 3,000 dòng sẽ đưa cả 3,000 dòng đó vào mọi request còn lại trong session. Mức sử dụng token theo từng session mà Claude Code báo cáo giúp bạn thấy rõ điều này: hãy theo dõi số input tăng ngay sau một command tạo ra nhiều output.

Phép tính trên một session thực tế

Dưới đây là một giờ coding agentic thực tế trên Opus 5. Có 40 request API. Context tăng từ 20,000 lên 100,000 token, nên trung bình mỗi request có khoảng 60,000 token. Model tạo khoảng 700 token cho mỗi request. Số này gồm các tool call ngắn và một vài block code dài hơn.

Requests in the session:      40
Average context per request:  60,000 tokens

Total input tokens billed:    40 x 60,000                    = 2,400,000
Input cost on Opus 5:         2,400,000 x $5 / 1,000,000     = $12.00

Total output tokens:          40 x 700                       =    28,000
Output cost on Opus 5:        28,000 x $25 / 1,000,000       =  $0.70

Session total                                                = $12.70
ChartWhere the money went in one 40 turn Opus 5 session, no caching
The data behind this chart
[
  {
    "label": "Input, context re-read",
    "billed_tokens": "2,400,000",
    "cost_usd": "12.00"
  },
  {
    "label": "Output, code and tool calls",
    "billed_tokens": "28,000",
    "cost_usd": "0.70"
  }
]

Hãy xem phần phân tách chi phí. Chi phí đọc là 12.00 đô la và chi phí ghi là 0.70 đô la, nên phần output bạn thực sự đọc chỉ chiếm khoảng 5% tổng hóa đơn. Model đã tạo 28,000 token và hệ thống tính phí cho việc đọc 2,400,000 token. Không ai nhập 2.4 triệu token. Cùng 100,000 token đó đã được đọc lặp đi lặp lại.

Biện pháp 1: cache prompt, biện pháp lớn nhất

Cache prompt lưu dạng đã được xử lý của một prefix ổn định trong prompt. Ở request tiếp theo, prefix đó được đọc từ cache thay vì xử lý lại. Ghi vào cache có chi phí bằng 1.25 lần giá input đối với cache 5 phút, hoặc 2 lần đối với cache 1 giờ. Đọc từ cache có chi phí bằng 0.1 lần giá input. Với Opus 5, chi phí này là 0.50 đô la cho mỗi một triệu token, thay vì 5 đô la.

Áp dụng cách này cho session ở trên. Mỗi token trong số 100,000 token được ghi vào cache một lần khi hội thoại phát triển. 2,300,000 input token còn lại trở thành cache read.

Tokens written to cache:      100,000
Cache write at 1.25x input:   100,000 x $6.25 / 1,000,000    = $0.63

Tokens read from cache:       2,300,000
Cache read at 0.1x input:     2,300,000 x $0.50 / 1,000,000  = $1.15

Output cost, unchanged                                       = $0.70

Session total                                                = $2.48

Bạn đánh dấu phần có thể cache bằng trường cache_control. Đặt breakpoint sau phần nội dung không thay đổi giữa các turn: system prompt và các định nghĩa tool. Một tài liệu dài mà bạn liên tục tham chiếu cũng nằm trong cùng block ổn định đó.

{
  "model": "claude-opus-5",
  "system": [
    {
      "type": "text",
      "text": "<long, stable instructions>",
      "cache_control": {"type": "ephemeral"}
    }
  ],
  "messages": [{"role": "user", "content": "..."}]
}

Thứ tự prompt giờ quyết định chi phí. Cache hit cần khớp chính xác ngay từ đầu prompt, vì vậy mọi nội dung thay đổi ở mỗi request phải đặt sau toàn bộ nội dung không thay đổi. Nếu đặt timestamp ở đầu system prompt, bạn sẽ phá cache trong mỗi turn: toàn bộ prefix trở thành cache miss, và bạn phải trả 1.25 lần giá input để ghi lại prefix đó.

Response cho biết thao tác có thành công hay không. Gửi một request rồi đọc usage block.

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Mỗi response đều chứa một object usage như sau:

{
  "usage": {
    "input_tokens": 105,
    "cache_creation_input_tokens": 7345,
    "cache_read_input_tokens": 7123,
    "output_tokens": 239
  }
}

Nếu request lặp lại vẫn hiển thị 0 trong cache_read_input_tokens thì cache không được sử dụng. Nguyên nhân thường gặp là một phần nào đó trước breakpoint đã thay đổi. Cache 5 phút cũng hết hạn, vì vậy request được gửi sau 6 phút sẽ là cache miss, sau đó được ghi mới vào cache.

Lever 2: chuyển các lượt đơn giản sang model nhỏ hơn

Phần lớn các lượt trong một phiên agent không khó. Mở file, chạy formatter, đọc diff. Những việc đó không cần frontier model. Chuyển chúng sang Haiku 4.5 giúp giảm giá input từ 5 đô la trên mỗi triệu xuống còn 1.

ChartThe same 40 turn session under four setups, US dollars
The data behind this chart
[
  {
    "label": "Opus 5, no caching",
    "session_cost_usd": "12.70"
  },
  {
    "label": "Opus 5, cached",
    "session_cost_usd": "2.48"
  },
  {
    "label": "Sonnet 5, cached",
    "session_cost_usd": "0.99"
  },
  {
    "label": "Haiku 4.5, cached",
    "session_cost_usd": "0.50"
  }
]

Cùng một phiên có chi phí 12.70 đô la trên Opus 5 khi không có caching, 2.48 khi có caching, 0.99 trên Sonnet 5 khi có caching và 0.50 trên Haiku 4.5 khi có caching. Chỉ riêng caching đã loại bỏ khoảng 80 phần trăm chi phí. Chọn model giúp loại bỏ phần lớn chi phí còn lại.

Đây là điểm cần nói rõ. Một model rẻ hơn nhưng trả lời sai sẽ khiến bạn phải chạy lại toàn bộ phiên, đồng thời mất thêm thời gian của chính bạn. Hãy định tuyến theo độ khó của tác vụ, không theo giá. Quy tắc này cũng áp dụng theo chiều ngược lại: Claude Fable 5 có mức giá cao hơn Opus 5, ở mức 10 và 50 đô la trên mỗi triệu, vì vậy hãy đọc mức giá đó mang lại cho bạn những gì trước khi gửi lượt xử lý đến đó. Chọn giữa Opus, Sonnet và Haiku giải thích mỗi model hoạt động ổn định ở đâu.

Đòn bẩy 3: vệ sinh context

Mỗi token bạn để lại trong context đều bị tính phí ở mọi lượt còn lại. Vì vậy, xóa một token sớm có giá trị hơn nhiều so với xóa nó muộn. Một file 5,000 token được đưa vào ở lượt 5 trong phiên 40 lượt sẽ được đọc thêm 35 lần. Như vậy có thêm 175,000 input token, gần bằng một đô la trên Opus 5 chỉ vì một lần dán nội dung bất cẩn.

Bốn thói quen giúp thay đổi con số này:

  • Bắt đầu phiên mới cho mỗi task mới thay vì tiếp tục phiên của ngày hôm qua.
  • Lọc các command có output nhiễu trước khi output đến model bằng công cụ như head -50, thay vì lọc sau đó.
  • Chỉ yêu cầu function bạn cần, không yêu cầu toàn bộ file.
  • Khi một phiên dài không còn tiến triển, hãy yêu cầu tóm tắt rồi bắt đầu lại từ bản tóm tắt đó. Bản tóm tắt chỉ có vài trăm token. Transcript có thể dài đến một trăm nghìn token.

Đòn bẩy 4: batch mọi tác vụ không mang tính tương tác

Batch API xử lý request bất đồng bộ và giảm 50 phần trăm chi phí cho cả input lẫn output. Nếu job không cần câu trả lời trong giây tiếp theo, hãy đưa job đó vào batch. Cách này phù hợp với việc phân loại, trích xuất, tóm tắt backlog và chạy đánh giá. Mức giảm giá của batch có thể cộng dồn với prompt caching. Mức giảm này không áp dụng cho session tương tác vì session đó không có thời gian chờ để tận dụng.

Tôi có đang bị tính quá cao không?

Đó mới là câu hỏi thực sự ẩn sau câu hỏi “vì sao Claude đắt”, nên đây là câu trả lời thẳng. Mức giá được công bố, giống nhau với mọi người trên các tier tiêu chuẩn và được tính theo token. Ngoại lệ là hợp đồng được thương lượng. Ngay cả trong trường hợp đó, giá Claude Enterprise vẫn tính phí theo seat trước cùng lượng token được đo đếm, thay vì thay thế cách tính này. Không có khoản nào trên hóa đơn là tùy ý. Bảng giá không thể cho bạn biết liệu chi phí đó có xứng đáng hay không, vì nó định giá token còn bạn quan tâm đến kết quả.

Vì vậy, hãy định giá theo kết quả. Phiên làm việc ở trên tiêu tốn 12.70 đô la khi không dùng cache. Nếu phiên đó triển khai một feature mà bình thường bạn mất một giờ để hoàn thành, chi phí đó là rẻ. Nếu nó mất bốn mươi lượt trao đổi mà không tiến triển, thì cùng 12.70 đô la đó không tạo ra giá trị nào, và mức giá chưa bao giờ là vấn đề.

Đây là điều đáng nhớ. Hóa đơn của bạn tăng theo số token, không tăng theo giá trị. Một phiên làm việc hiệu quả và một phiên lãng phí có cùng độ dài sẽ tốn như nhau. Vì vậy, bốn đòn bẩy quan trọng hơn bảng giá: bạn không thể thương lượng giá trên mỗi token, nhưng bạn quyết định công việc cần bao nhiêu token.

Vì vậy, hãy theo dõi số đô la trên mỗi task hoàn thành, không phải số đô la mỗi tháng. Nếu con số đó giảm khi bạn tinh chỉnh caching và routing, cấu hình của bạn đang được cải thiện ngay cả khi tổng chi phí hàng tháng tăng, vì tổng chi phí tăng là do bạn đang hoàn thành nhiều công việc hơn.

Những việc không làm giảm hóa đơn

Một số lời khuyên phổ biến gần như không tạo ra khác biệt. Yêu cầu model “trả lời ngắn gọn” sẽ giảm lượng output, nhưng output chỉ chiếm năm phần trăm trong hóa đơn ví dụ. Rút ngắn câu hỏi của bạn chỉ tiết kiệm vài trăm token so với context 60,000 token. Tắt extended thinking chỉ hữu ích khi thinking token thực sự chiếm tỷ lệ đáng kể trong output. Usage block cho bạn biết điều này, thay vì buộc bạn phải đoán.

Context window lớn hơn cũng không tự làm tăng chi phí. Trên Claude 4.6 trở lên, window đầy đủ một triệu token được tính theo rate tiêu chuẩn trên mỗi token. Vì vậy, request 900,000 token có cùng chi phí trên mỗi token như request 9,000 token. Kích thước window không quyết định giá. Chính nội dung bạn đưa vào window mới quyết định.

Hai việc khác nên được tính trong kế hoạch sử dụng, thay vì chỉ xem xét trong một session. Nếu bạn sử dụng hằng ngày và tương tác liên tục, hãy so sánh trả tiền theo token với một gói cố định: bài so sánh chi phí giữa API và gói subscription thực hiện phép tính đó. Nếu gói cố định có lợi hơn và bạn đồng thời cân nhắc vendor khác, bảng so sánh giá các gói Claude và ChatGPT thực hiện cùng phép so sánh cho cả hai. Nếu một agent chạy unattended trên server, hãy đặt hard spend cap trước khi tinh chỉnh bất kỳ thứ gì khác. Đây là nội dung của cách kiểm soát chi phí cho AI agent trên VPS. Để hình dung quy mô một cách đơn giản, một triệu Claude token thực sự mua được bao nhiêu chuyển rate card thành số trang văn bản.

FAQ

Tại sao hóa đơn Claude của tôi tăng mạnh khi tôi bắt đầu dùng agent?

Vì agent gửi nhiều request cho mỗi câu hỏi, và mỗi request đều chứa toàn bộ cuộc hội thoại trước đó. Chat gửi một request cho mỗi câu hỏi. Coding agent gửi một request cho mỗi bước, và 40 bước cho một tác vụ là chuyện bình thường. Mỗi request đó được tính phí trên toàn bộ context, nên một session kết thúc ở 100,000 token có thể bị tính tổng cộng hơn 2 triệu input token. Đọc input_tokenscache_read_input_tokens trong API response để xem trực tiếp.

Prompt caching có thực sự giảm hóa đơn nhiều đến vậy không?

Trong ví dụ minh họa, nó giảm chi phí session từ 12.70 dollar xuống còn 2.48 dollar, vì cache read có giá bằng một phần mười input rate. Mức tiết kiệm phụ thuộc hoàn toàn vào hit rate. Với cache 5 phút, chi phí được hoàn vốn sau một lần read, vì write có giá bằng 1.25 lần input còn read có giá bằng 0.1 lần. Nếu prompt thay đổi gần phần đầu trong mỗi request, bạn sẽ không có hit nào và phải trả thêm phí write mà không nhận được lợi ích. Hãy xác nhận bằng cache_read_input_tokens trước khi kết luận rằng nó đang hoạt động.

Tôi có nên dùng Haiku cho mọi tác vụ không?

Không. Haiku 4.5 có giá 1 dollar cho mỗi triệu input token, so với 5 của Opus 5, nên mức tiết kiệm là đáng kể với các tác vụ đơn giản, khối lượng lớn như phân loại và định tuyến. Một câu trả lời sai trong tác vụ khó có thể tốn nhiều hơn khoản tiết kiệm từ model, vì bạn còn phải trả chi phí retry và thời gian của chính mình. Cách dùng phù hợp là kết hợp: model nhỏ xử lý các bước cơ học, còn frontier model xử lý bước cần phán đoán.

API có rẻ hơn gói thuê bao Claude không?

Điều này phụ thuộc vào mức độ ổn định trong cách bạn sử dụng. Gói thuê bao có giá cố định hằng tháng kèm giới hạn sử dụng. API tính phí theo token và không có mức trần, nên rẻ hơn khi mức sử dụng thấp hoặc tập trung theo từng đợt, nhưng đắt hơn khi bạn dùng nhiều vào mọi ngày làm việc. Lấy số token trung bình mỗi ngày từ phần usage, tính chi phí theo rate của model bạn dùng, rồi so sánh với giá gói. Với tier cơ bản, thông tin này được nêu tại Claude Pro có giá bao nhiêu và giới hạn sử dụng của gói là gì. Nếu tổng chi phí nghiêng về API, hủy gói hoặc chuyển xuống tier thấp hơn sẽ không làm lãng phí tháng bạn đã thanh toán, vì quyền truy cập vẫn kéo dài đến hết billing period hiện tại.