SSD Nodes Learn 🎉 VPS từ $4.99/tháng
Hướng dẫn Matt ConnorBởi Matt Connor

Vì sao Claude đắt? Cách tính chi phí token

Output token của Claude đắt gấp 5 lần input, và mỗi lượt đọc lại toàn bộ context. Xem phép tính từ một phiên thật cùng 4 cách giảm chi phí.

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 memory của 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. Agent biến một câu hỏi thành hàng chục API call, và mỗi call đều mang theo phần lịch sử ngày càng dài. Ngoài ra, frontier model được định giá theo độ khó của công việc mà nó xử lý, không theo chi phí chạy một model nhỏ.

Token là một phần của văn bản. Theo cách 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. Giá được báo 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ính đến tháng 8 năm 2026.

Hầu hết hóa đơn tăng bất ngờ đều đến từ lý do thứ 2 và thứ 3 trong danh sách trên. Thông thường, người dùng nghĩ rằng phần trả lời Claude viết ra mới là phần tốn tiền. Trong một phiên agent, phần văn bản đầu ra thường chiếm chưa đế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ương quan thay vì các con số tuyệt đối. Mọi model đều tính phí output cao hơn input đúng 5 lần. Opus 5 có giá 5 đô la cho mỗi triệu input token và 25 đô la cho mỗi 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 triệu token đến hết ngày 31 tháng 8 năm 2026. Từ ngày 1 tháng 9 năm 2026, mức giá này sẽ 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 các con số này.

Cột cuối cùng là mức giá cache read. Cột này quyết định phần lớn chi phí. Hãy quay lại phần này sau khi tính toán xong.

Vì sao output token có giá gấp 5 lần input token?

Đọc và ghi không đòi hỏi cùng lượng công việc. Input token được xử lý trong một lần chạy. Model đọc toàn bộ prompt cùng lúc, và công việc được thực hiện song song trên toàn bộ prompt. Vì vậy, prompt 60,000 token không mất thời gian đọc lâu gấp 60,000 lần prompt 1,000 token.

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

Đây là lý do “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 vào phần nhỏ hơn trong chi phí của một agent.

Tại sao toàn bộ cuộc hội thoại lại bị tính phí lại 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ỉ cần thêm một tin nhắn vào đó. Mỗi request chứa toàn bộ lịch sử tin nhắn, và model đọc toàn bộ lịch sử trước khi tạo phản hồi. Vì vậy, lượt 30 cũng bị tính phí cho 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 hơn nhiều lần tổng số token thực sự đượ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 định nghĩa tool và những file đầu tiên mà agent đã mở. Đến lượt 40, context chứa 100,000 token. Lấy trung bình trên cả 40 lượt, mỗi request đọc khoảng 60.000 token.

Tại sao agent lại tốn nhiều hơn chat đến vậy?

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 test là một bước. Đọc output của test là một bước. Chỉnh sửa file là một bước. Hoàn thành một tác vụ qua 40 bước là chuyện bình thường đối với coding agent.

Tool kéo theo 2 khoản chi phí bổ sung. Các định nghĩa của tool là input token trong từng request, vì model phải được cung cấp thông tin về những tool hiện có mỗi lần. Anthropic công bố phần overhead này: system prompt cho tool use trên Opus 5 là 286 token khi tool_choice được đặt thành auto, chưa tính token của các tool schema do bạn tự định nghĩa. 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ả sử dụng.

Mọi kết quả từ tool cũng trở thành context vĩnh viễn. Một command in ra 3.000 dòng sẽ đưa cả 3.000 dòng đó vào mọi request trong phần còn lại của 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 phiên thực tế

Đâ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 ghi khoảng 700 token mỗi request. Con 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 bổ chi phí. Chi phí đọc là 12.00 đô la và chi phí ghi là 0.70 đô la. Vì vậy, phần output mà bạn thực sự đọc chỉ chiếm khoảng 5% tổng hóa đơn. Model đã ghi 28,000 token và bị 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.

Bậc 1: cache prompt, khoản tiết kiệm lớn nhất

Cache prompt lưu dạng đã 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 đơ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 đơn giá input. Với Opus 5, chi phí là 0.50 dollar cho mỗi triệu token, thay vì 5 dollar.

Áp dụng cách này cho session ở trên. Mỗi token trong 100,000 token được ghi vào cache một lần khi conversation dài thêm. 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

Đá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 thường xuyên tham chiếu cũng phải 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 hiện quyết định chi phí. Cache hit cần khớp chính xác từ đầu prompt, vì vậy mọi nội dung thay đổi ở mỗi request phải nằm sau toàn bộ nội dung không thay đổi. Nếu đặt timestamp ở đầu system prompt, bạn sẽ phá cache ở mỗi turn: toàn bộ prefix trở thành cache miss, và bạn phải trả 1.25 lần đơn giá input để ghi lại.

Response cho biết thao tác có hiệu quả hay không. Gửi một request rồi đọc block usage.

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 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, cache chưa được sử dụng. Nguyên nhân thường gặp là một phần trước breakpoint đã thay đổi. Cache 5 phút cũng sẽ hết hạn, nên request được gửi sau 6 phút sẽ là cache miss rồi được ghi mới vào cache.

Cấp độ 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 dollar 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 dollar khi dùng Opus 5 và không có caching, 2.48 khi có caching, 0.99 khi dùng Sonnet 5 với caching, và 0.50 khi dùng Haiku 4.5 với caching. Chỉ riêng caching đã loại bỏ khoảng 80% chi phí. Chọn model phù hợp sẽ loại bỏ phần lớn chi phí còn lại.

Có một điểm cần nói rõ. Một model rẻ hơn nhưng trả lời sai có thể khiến bạn phải chạy lại toàn bộ phiên, cộng 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 phải theo giá. Chọn giữa Opus, Sonnet và Haiku phân tích khả năng đáp ứng của từng model.

Cấp độ 3: vệ sinh context

Mỗi token bạn để lại trong context đều được 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 session dài 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 dollar trên Opus 5 chỉ vì một lần paste bất cẩn.

Bốn thói quen giúp giảm con số này:

  • Bắt đầu một session mới cho task mới thay vì tiếp tục session của ngày hôm qua.
  • Lọc các command tạo nhiều output trước khi output đến model, bằng thứ gì đó như head -50, thay vì lọc sau đó.
  • Yêu cầu đúng function bạn cần, không yêu cầu toàn bộ file.
  • Khi một session 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 hàng trăm nghìn token.

Cấp độ 4: batch mọi tác vụ không tương tác

Batch API xử lý request bất đồng bộ và giảm 50 percent cho cả input lẫn output. Nếu một job không cần nhậ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 cộng dồn với prompt caching. Mức giảm này không áp dụng cho phiên tương tác vì phiên đó không có thời gian chờ để tận dụng.

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

Đó mới là câu hỏi thực sự đằng sau “vì sao Claude đắt”, nên câu trả lời là: không. Mức giá được công khai, giống nhau với mọi người trên các tier tiêu chuẩn và được tính theo token. 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 tốn 12.70 đô la khi không dùng cache. Nếu phiên đó hoàn thành một feature mà bình thường bạn mất 1 giờ để làm, thì chi phí này là rẻ. Nếu nó mất 40 lượt trao đổi mà vẫn không đi đến đâu, thì 12.70 đô la đó không tạo ra giá trị nào. Khi đó, vấn đề không nằm ở đơn giá.

Đây là điều bạn cần nhớ. Hóa đơn của bạn tăng theo số token, không tăng theo giá trị tạo ra. 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ẽ có cùng chi phí. Vì vậy, 4 đòn bẩy quan trọng hơn bảng giá: bạn không thể thương lượng đơn giá 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 chi phí trên mỗi tác vụ hoàn thành, không phải chi phí mỗi tháng. Nếu con số đó giảm khi bạn tối ưu 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. Tổng chi phí tăng là vì bạn đang hoàn thành nhiều công việc hơn.

Những gì không giúp giảm hóa đơn

Một số lời khuyên phổ biến gần như không có tác dụng. Yêu cầu model “trả lời ngắn gọn” giúp giảm output, nhưng output chỉ chiếm 5 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 trong context 60,000 token. Tắt extended thinking chỉ có ích khi thinking token thực sự chiếm phần đáng kể trong output. Usage block cho bạn biết điều đó, thay vì buộc bạn phải đoán.

Context window lớn hơn tự nó cũng không làm tăng chi phí. Trên Claude 4.6 trở lên, toàn bộ context window một triệu token được tính theo mức giá 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á. Nội dung bạn đưa vào window mới quyết định chi phí.

Hai vấn đề 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à có tương tác, hãy so sánh trả tiền theo token với gói cố định: bài so sánh chi phí giữa API và subscription thực hiện phép tính đó. Nếu một agent chạy unattended trên server, hãy đặt hard spend cap trước khi tối ưu bất kỳ thứ gì khác. Nội dung kiểm soát chi phí cho AI agent trên VPS trình bày cách làm này. Để hình dung quy mô, một triệu Claude token thực sự mua được gì chuyển bảng giá 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 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 chỉ 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à bình thường. Mỗi request đều đượ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 phí hơn 2 triệu input token tổng cộng. Đọ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 đô la xuống còn 2.48 đô la, 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, nó 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 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 tính năng này đang hoạt động.

Tôi có nên dùng Haiku cho mọi việc không?

Không. Haiku 4.5 có giá 1 đô la cho mỗi triệu input token, trong khi Opus 5 có giá 5, nên mức tiết kiệm là có thật đối 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 số tiền model tiết kiệm được, vì bạn phải trả thêm cho lần retry và thời gian của chính mình. Mô hình phù hợp là kết hợp: dùng model nhỏ cho các bước mang tính cơ học, dùng frontier model cho 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 nhu cầu sử dụng của bạn. 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 bạn dùng ít hoặc dùng 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ừ usage block, tính chi phí theo rate của model bạn dùng, rồi so sánh với giá gói.