Token trong Claude là gì và hoạt động thế nào? Chúng tôi đã đếm 3,8 tỷ token
Token là một mảnh của từ, và Claude đếm bốn loại token: input, ghi cache, đọc cache và output. Chúng tôi đã đếm 30 ngày phiên Claude Code của chính mình, 3,8 tỷ token: 98% là cuộc trò chuyện được đọc lại từ cache, 0,3% là những gì Claude viết ra. Mỗi loại tốn bao nhiêu, vì sao một phiên nặng dần sau mỗi lượt, và khung thời gian 5 giờ thực sự đo cái gì.
Bạn gặp từ này ở khắp nơi quanh Claude: trong bảng giá, trong thông báo giới hạn, trong /usage, trong mọi bài viết về cách tiết kiệm tiền. Gần như không ai nói token là gì, và con số mọi người nhìn vào hiếm khi là con số quan trọng. Phần Claude viết lại chỉ là một phần nhỏ của một phần trăm so với những gì một phiên lập trình đếm.
Vì vậy chúng tôi đã đếm của chính mình. Ba mươi ngày phiên Claude Code trên một máy Mac, từ ngày 10 tháng 9 đến ngày 9 tháng 10 năm 2026: 388 phiên, 19.668 yêu cầu gửi tới mô hình, 3,8 tỷ token. Đây là token là gì, bốn cách Claude đếm chúng, và những con số đó trông như thế nào trong công việc thực tế.
Token là một mảnh văn bản, và kích thước của mảnh đó thay đổi
Mô hình không đọc chữ cái hay từ. Nó đọc token: các mảnh văn bản lấy từ một bộ từ vựng cố định, đôi khi là cả một từ ngắn, thường là một phần của từ, đôi khi chỉ là một ký tự hoặc một byte cho thứ nó chưa từng thấy. Mọi thứ đều được đếm bằng các mảnh đó: những gì bạn gửi, những gì Claude viết, những gì nó giữ lại giữa các lượt.
Lượng văn bản nằm gọn trong một token phụ thuộc vào mô hình và ngôn ngữ. Bảng thuật ngữ của Anthropic đưa ra con số khoảng 3,5 ký tự tiếng Anh mỗi token trên các mô hình trước Claude 4.7, và cho biết Claude 4.7 trở đi dùng một tokenizer mới tạo ra nhiều hơn khoảng 30% token cho cùng một văn bản. Con số chính xác chỉ đến từ endpoint đếm token, với mô hình bạn định dùng.
Chúng tôi đã đo tỷ lệ này trên văn bản của chính mình. Các agent của chúng tôi trả lời bằng tiếng Pháp, nên chúng tôi lấy những câu trả lời chỉ gồm văn bản thuần, không suy nghĩ, không gọi công cụ, không khối mã, dài ít nhất 80 từ: 296 câu trả lời trên Opus 5, Opus 5.5, Fable 5.1 và Sonnet 5.5. Trung vị là 2,3 ký tự mỗi token, khoảng 2,6 token mỗi từ. Mã nguồn, JSON và các hệ chữ không phải Latin cho tỷ lệ khác. Điều quan trọng không phải con số chính xác: một token nhỏ hơn một từ, và bạn không bao giờ đếm chúng bằng tay.
Mỗi yêu cầu được đếm trên bốn bộ đếm
Claude Code ghi mỗi phiên vào một bản ghi phiên JSONL trong ~/.claude/projects/. Mỗi câu trả lời của mô hình mang theo một khối usage. Đây là một khối thật lấy từ bản ghi phiên của chúng tôi, chỉ giữ lại các trường hữu ích:
"usage": {
"input_tokens": 2,
"cache_creation_input_tokens": 51836,
"cache_read_input_tokens": 24882,
"output_tokens": 315,
"output_tokens_details": { "thinking_tokens": 54 },
"cache_creation": {
"ephemeral_1h_input_tokens": 51836,
"ephemeral_5m_input_tokens": 0
}
}
Bốn bộ đếm, và chúng không có cùng giá:
input_tokens: phần của prompt không được ghi vào cache cũng không được đọc từ cache, tính theo giá input cơ bản. Trong Claude Code, phần này gần như luôn chỉ là vài token, vì gần như mọi thứ đều đi qua cache.cache_creation_input_tokens: phần của prompt được lưu vào cache để yêu cầu tiếp theo có thể dùng lại. Một lần ghi cache tốn 1,25 lần giá input cho cache 5 phút và 2 lần cho cache 1 giờ. Trong bản ghi phiên của chúng tôi, 97% các lần ghi là loại 1 giờ.cache_read_input_tokens: phần của prompt được phát lại từ cache. Một lần đọc cache tốn 0,1 lần giá input trên hầu hết các mô hình, 0,05 lần trên Opus 5.5 và Sonnet 5.5, và 0,025 lần trên Fable 5.1 (trang prompt caching của Anthropic, kiểm tra ngày 10 tháng 10 năm 2026).output_tokens: những gì Claude viết, kể cả phần suy nghĩ. Output tốn gấp 5 lần giá input trên mọi mô hình hiện tại: 20 đô la mỗi triệu token trên Opus 5.5, 25 trên Opus 5, 50 trên Fable 5.1, 10 trên Sonnet 5.5.
Ba bộ đếm đầu cộng lại là ngữ cảnh mà mô hình đã đọc cho yêu cầu này. Bộ đếm thứ tư là câu trả lời.
30 ngày phiên làm việc của chúng tôi trông như thế nào
Trên 19.668 yêu cầu, mỗi yêu cầu được đếm một lần (một lệnh gọi API có thể trải trên nhiều dòng của bản ghi phiên):
| Bộ đếm | Token | Tỷ lệ trong số token | Tỷ lệ trong chi phí theo giá niêm yết của API |
|---|---|---|---|
| Input (không qua cache) | 114.411 | 0,003% | 0,04% |
| Ghi cache | 74.834.070 | 2,0% | 37,4% |
| Đọc cache | 3.710.054.709 | 97,7% | 45,7% |
| Output | 12.727.193 | 0,34% | 16,8% |
| Tổng | 3.797.730.383 | 100% | 2.563 đô la |
Cột chi phí định giá từng yêu cầu theo mô hình và thời hạn cache của chính nó. Chúng tôi không trả số tiền đó: các phiên này chạy trên một gói đăng ký. Đó là trọng số của từng bộ đếm, cùng cách tính trọng số mà AgentsRoom dùng để chia phần trăm của một gói giữa các dự án.
Ba nhận xét.
Gần như mọi token đều là cuộc trò chuyện được đọc lại. 97,7% số token là đọc cache. 99,2% số yêu cầu đọc một thứ gì đó từ cache. Khi ai đó nói một phiên "đã dùng 50 triệu token", đây chính là thứ họ đang nhìn.
Những gì Claude viết rất nhỏ về số token nhưng không hề nhỏ về chi phí. 0,34% số token, 16,8% hóa đơn, vì output là loại token đắt nhất. Suy nghĩ chiếm 29% lượng output đó.
Ghi cache là bất ngờ tốn kém. 2% số token, 37% chi phí. Chúng tôi tưởng chúng đến từ việc cache hết hạn, nhưng chỉ 16 trên 19.668 yêu cầu phải ghi lại một ngữ cảnh đã nguội, bảy trong số đó sau hơn một giờ im lặng. 79% các lần ghi đơn giản là mỗi tin nhắn mới và mỗi kết quả công cụ được lưu một lần, với giá gấp đôi giá input, trước khi được đọc lại ở mọi lượt tiếp theo. 20% còn lại là yêu cầu đầu tiên của mỗi phiên.
Vì sao một phiên nặng dần sau mỗi lượt
Mô hình không giữ lại gì giữa hai yêu cầu. Claude Code gửi lại mọi thứ mỗi lần: system prompt, định nghĩa các công cụ, CLAUDE.md, mọi tin nhắn, mọi tệp nó đã đọc, mọi output của lệnh. Cache làm cho phần lặp lại rẻ trên mỗi token, chứ không miễn phí, và không nhỏ đi.
Ngữ cảnh trung vị được đọc mỗi yêu cầu, theo vị trí trong phiên:
| Yêu cầu trong phiên | Số yêu cầu | Ngữ cảnh trung vị |
|---|---|---|
| Thứ 1 | 388 | 52.000 token |
| Thứ 2 đến thứ 10 | 3.210 | 93.000 token |
| Thứ 11 đến thứ 50 | 8.546 | 161.000 token |
| Thứ 51 đến thứ 200 | 6.414 | 237.000 token |
| Sau yêu cầu thứ 200 | 1.110 | 342.000 token |
Yêu cầu trung vị đọc 179.000 token ngữ cảnh để viết 290 token câu trả lời. Tỷ lệ đó là toàn bộ câu chuyện về token trong một agent lập trình: câu trả lời ngắn, phần đọc dài, và phần đọc lớn dần theo phiên.
Yêu cầu đầu tiên của chúng tôi đã nặng, 52.000 token trước khi bất kỳ ai gõ gì, vì các agent của chúng tôi khởi động với một bản mô tả vai trò dài và bốn máy chủ MCP có định nghĩa công cụ nằm sẵn trong prompt. Một phiên Claude Code trống trong một thư mục rỗng khởi đầu thấp hơn nhiều. /context cho thấy phiên của bạn mang theo những gì trước tin nhắn đầu tiên.
Một phiên dùng bao nhiêu
Trên 380 phiên có ít nhất ba yêu cầu:
- 33 yêu cầu ở mức trung vị, từ 16 đến 61 cho nửa ở giữa.
- 27.000 token output ở mức trung vị, từ 12.000 đến 48.000.
- 5,4 triệu token được xử lý ở mức trung vị, từ 1,5 đến 10,7 triệu cho nửa ở giữa, trong đó 5,1 triệu là đọc cache.
- 181.000 token được ghi vào cache hoặc gửi không qua cache ở mức trung vị: phần thực sự mới.
- 4,55 đô la theo giá niêm yết của API ở mức trung vị, từ 1,81 đến 9,25 cho nửa ở giữa.
Vậy câu trả lời trung thực cho câu hỏi "một phiên lập trình dùng bao nhiêu token" là một khoảng từ khoảng một đến mười triệu, gần như toàn bộ là cùng một ngữ cảnh được đọc lại. Một phiên chạy cả buổi chiều cho một tác vụ dài nằm ở đầu trên của khoảng này; một phiên sửa một lỗi rồi dừng nằm ở đầu dưới.
Khung thời gian 5 giờ và khung hàng tuần thực sự đếm gì
Trên gói Pro hoặc Max, bạn không bao giờ thấy số dư token. Trung tâm trợ giúp của Anthropic cho biết cả hai gói đều có giới hạn phiên năm giờ và giới hạn hàng tuần, các giới hạn này được dùng chung giữa Claude và Claude Code (kể cả IDE), và các gói Max có một giới hạn hàng tuần riêng cho Fable. Họ không công bố con số token nào cho bất kỳ giới hạn nào. /usage hiển thị phần trăm của từng khung thời gian, và thời điểm khung đó được đặt lại.
Những gì làm phần trăm đó thay đổi, theo chính danh sách của Anthropic: độ dài tin nhắn, kích thước tệp đính kèm, độ dài cuộc trò chuyện hiện tại, việc dùng công cụ, lựa chọn mô hình, mức nỗ lực, và các tác vụ nhiều bước. Đọc cùng các bảng ở trên, "độ dài cuộc trò chuyện hiện tại" là yếu tố chi phối một phiên lập trình: ngữ cảnh được đọc ở mỗi yêu cầu tăng từ 52.000 lên 237.000 token qua năm mươi yêu cầu. Trung tâm trợ giúp cũng cho biết nội dung được cache trong các dự án sẽ bị tính ít hơn vào giới hạn của bạn khi được dùng lại, cùng ý tưởng với giá của một lần đọc cache.
Chúng tôi không biết Anthropic quy đổi token thành phần trăm của một khung thời gian như thế nào, và chúng tôi sẽ không bịa ra một cách quy đổi. Điều dữ liệu cho thấy là một yêu cầu ở cuối một phiên dài được tính gấp nhiều lần một yêu cầu ở đầu phiên, cho cùng một câu hỏi.
Điều gì thay đổi con số, trên thực tế
Bốn đòn bẩy, theo thứ tự mức độ ảnh hưởng trên dữ liệu của chúng tôi:
/cleargiữa các tác vụ không liên quan. Anthropic gọi đó là "đòn bẩy hiệu quả nhất cho cả chất lượng lẫn chi phí". Một tác vụ mới trong một phiên cũ phải trả cho ngữ cảnh của tác vụ cũ ở mọi yêu cầu./compactkhi bạn tiếp tục một phiên dài. Lệnh này thay lịch sử bằng một bản tóm tắt ngắn, nên các yêu cầu tiếp theo đọc ít hơn.- Để ý những gì đi vào ngữ cảnh. Một lần đọc tệp hoặc một output lệnh dài 20.000 token được ghi một lần với giá gấp đôi giá input, rồi được đọc lại ở mọi yêu cầu tiếp theo cho đến khi phiên kết thúc. Đọc đúng những dòng bạn cần thay vì cả tệp sẽ có lợi gấp đôi.
- Mô hình và mức nỗ lực. Suy nghĩ chiếm 29% output của chúng tôi, và output là loại token đắt nhất. Một mức nỗ lực thấp hơn cho công việc thường ngày làm giảm output, và một mô hình rẻ hơn làm giảm mọi mức giá cùng lúc.
Điều không có ảnh hưởng trên dữ liệu của chúng tôi: để một phiên nhàn rỗi. Với cache 1 giờ mà Claude Code dùng trong bản ghi phiên của chúng tôi, việc ghi lại từ cache nguội chỉ xảy ra 16 lần trong 30 ngày.
Để có thêm cách chi tiêu ít hơn, xem cách cắt giảm chi phí token của Claude Code.
Đếm của bạn
Bảng ở trên đến từ một script không có phụ thuộc nào. Nó đọc mọi bản ghi phiên Claude Code trên máy, đếm mỗi yêu cầu một lần, rồi in ra bốn bộ đếm và các giá trị trung vị theo phiên. Thêm một bộ lọc trên o["timestamp"] nếu bạn muốn giới hạn trong một khoảng thời gian.
import json, glob, os, statistics as st
from collections import defaultdict
FIELDS = ("input_tokens", "cache_creation_input_tokens",
"cache_read_input_tokens", "output_tokens")
totals, sessions = defaultdict(int), []
for path in glob.glob(os.path.expanduser("~/.claude/projects/*/*.jsonl")):
seen, session = set(), defaultdict(int)
with open(path, errors="ignore") as fh:
for line in fh:
try: o = json.loads(line)
except ValueError: continue
msg = o.get("message") or {}
usage = msg.get("usage") if isinstance(msg, dict) else None
if o.get("type") != "assistant" or not usage: continue
rid = o.get("requestId") or o.get("uuid")
if rid in seen: continue # one API call can span several lines
seen.add(rid)
session["requests"] += 1
for f in FIELDS:
n = usage.get(f) or 0
totals[f] += n
session[f] += n
if session["requests"] >= 3: sessions.append(session)
grand = sum(totals[f] for f in FIELDS)
for f in FIELDS:
print(f"{f:30s} {totals[f]:>15,} {100 * totals[f] / grand:6.2f}%")
for key in ("requests", "output_tokens", "cache_read_input_tokens"):
print(f"median per session, {key}: {st.median(s[key] for s in sessions):,.0f}")
So sánh tỷ lệ của bạn với của chúng tôi. Dòng đọc cache là cuộc trò chuyện được đọc lại, và dòng ghi cache là phần mới: hai dòng đó nói về hóa đơn của bạn nhiều hơn dòng output.
AgentsRoom hiển thị điều này ở đâu
Script cho bạn số liệu của một tháng. Trong lúc bạn làm việc, AgentsRoom hiển thị cùng các bộ đếm đó cho từng agent: một huy hiệu token trong ô soạn tin của mỗi phiên chuyển sang màu đỏ khi một phiên trở nên nặng, một trình theo dõi phiên với input, output, ghi cache, đọc cache và tỷ lệ trúng cache, và một dấu vết phiên phát lại phiên theo từng lượt để cho thấy lần đọc tệp hay kết quả công cụ nào đã lấp đầy ngữ cảnh. Bảng usage chia phần trăm mà gói của bạn báo cáo giữa các dự án và các agent của bạn, đặt trọng số cho mỗi phiên theo chi phí của nó nếu tính theo giá API, cùng cách tính trọng số như bảng ở trên.
Điều mà không màn hình nào trong số này cho bạn là số dư token, vì gói của bạn không có số dư đó. Với câu hỏi đó, xem bạn còn bao nhiêu token trong Claude. Về tốc độ mà các token output đó xuất hiện, xem số token mỗi giây của Claude Code, đo thực tế.
Câu hỏi thường gặp
Token trong Claude là gì?
Là đơn vị mà Claude dùng để đọc và viết văn bản: một mảnh của từ, đôi khi là cả một từ ngắn, đôi khi chỉ là một ký tự hoặc một byte. Anthropic cho biết kích thước phụ thuộc vào mô hình và ngôn ngữ: trên các mô hình trước Claude 4.7, một token dài khoảng 3,5 ký tự tiếng Anh, còn Claude 4.7 trở đi dùng một tokenizer mới tạo ra nhiều hơn khoảng 30% token cho cùng một văn bản. Mọi thứ Claude làm đều được đo bằng token: những gì bạn gửi, những gì nó viết lại, và những gì nó giữ trong cache giữa các lượt.
Một token Claude bằng bao nhiêu ký tự hoặc bao nhiêu từ?
Còn tùy vào ngôn ngữ và văn bản. Anthropic đưa ra con số khoảng 3,5 ký tự tiếng Anh mỗi token trên các mô hình trước Claude 4.7, và nhiều hơn khoảng 30% token cho cùng một văn bản trên Claude 4.7 trở đi. Trên 296 câu trả lời chỉ gồm văn bản thuần mà các agent của chúng tôi viết bằng tiếng Pháp trong tháng 9 và tháng 10 năm 2026, một token dài 2,3 ký tự, tức khoảng 2,6 token mỗi từ. Mã nguồn, JSON và các hệ chữ không phải Latin cho tỷ lệ khác. Để có con số chính xác, endpoint đếm token của Anthropic nhận văn bản và mô hình rồi tính cho bạn.
Vì sao Claude Code dùng nhiều token đến vậy?
Vì mỗi yêu cầu đều gửi lại toàn bộ cuộc trò chuyện: system prompt, định nghĩa các công cụ, CLAUDE.md, mọi tin nhắn và mọi kết quả công cụ cho đến lúc đó. Trên 19.668 yêu cầu của chúng tôi, yêu cầu trung vị mang theo 179.000 token ngữ cảnh để viết 290 token câu trả lời, và ngữ cảnh tăng từ 52.000 token ở yêu cầu đầu tiên của một phiên lên 237.000 sau năm mươi yêu cầu. Cache làm cho việc đọc lại đó rẻ trên mỗi token, nhưng nó vẫn được tính.
Một phiên Claude Code thông thường dùng bao nhiêu token?
Trên 380 phiên có từ ba yêu cầu trở lên của chúng tôi, ghi nhận từ ngày 10 tháng 9 đến ngày 9 tháng 10 năm 2026: trung vị là 33 yêu cầu, 27.000 token output và tổng cộng 5,4 triệu token được xử lý, trong đó 5,1 triệu là đọc cache. Một nửa số phiên nằm trong khoảng 1,5 đến 10,7 triệu token. Theo giá niêm yết của API, phiên trung vị đó sẽ tốn khoảng 4,55 đô la; trên gói Pro hoặc Max, cùng khối lượng công việc đó được tính vào khung thời gian 5 giờ và khung thời gian hàng tuần.
Token suy nghĩ có được tính không?
Có. Token suy nghĩ là một phần của output_tokens trong mỗi khối usage, kèm một trường thinking_tokens cho biết bao nhiêu phần của output là suy nghĩ. Trên API, chúng được tính theo giá output, và Anthropic liệt kê mức nỗ lực trong số những yếu tố khiến giới hạn sử dụng của một gói cạn nhanh hơn. Trong dữ liệu của chúng tôi, suy nghĩ chiếm 29% tất cả những gì các mô hình viết ra.
Token ghi cache và token đọc cache khác nhau thế nào?
Ghi cache lưu một phần của prompt để yêu cầu tiếp theo có thể dùng lại, và tốn hơn input thông thường: 1,25 lần giá input cho cache 5 phút, 2 lần cho cache 1 giờ. Đọc cache dùng lại phần đã lưu đó và rẻ hơn nhiều: 0,1 lần giá input trên hầu hết các mô hình, 0,05 lần trên Opus 5.5 và Sonnet 5.5, 0,025 lần trên Fable 5.1. Trong các phiên của chúng tôi, đọc cache chiếm 98% số token và 46% chi phí theo giá niêm yết; ghi cache chiếm 2% số token và 37% chi phí.
Tải AgentsRoom
Chạy tất cả agent AI của bạn, trên mọi dự án, trong một cửa sổ duy nhất.
Ứng dụng đồng hành: theo dõi agent khi đi đường
Sử dụng Claude, Codex, Antigravity CLI hoặc nhà cung cấp AI khác.
Gửi lỗi và yêu cầu thẳng vào backlog công khai của bạn.
Đọc thêm
Tôi còn bao nhiêu token trong Claude? Hai màn hình cần kiểm tra.
Gói đăng ký Claude của bạn không được tính bằng token, nên không màn hình nào hiển thị số dư token. Đây là thứ nó thực sự đo, hai màn hình thực sự hiển thị nó, lý do nó vẫn hao đi trong lúc bạn không gõ gì, và thay đổi về khung thời gian hàng tuần tháng 9 năm 2026 tác động thế nào đến tuần làm việc của bạn.
Đọc bài viếtClaude Code nhanh đến mức nào? Số token mỗi giây, đo trên 20.000 lượt
Claude Code không bao giờ hiển thị tốc độ đầu ra, nhưng bản ghi của mỗi phiên đều chứa đủ dữ liệu để tính. Chúng tôi chạy một script 40 dòng trên 319 phiên của chính mình, 20.408 lượt và 12 triệu token đầu ra: Opus 5 truyền ra với trung vị 63 token mỗi giây, Opus 5.5 ở mức 95, Sonnet 5 ở mức 77, và một câu trả lời ngắn luôn chậm hơn một câu trả lời dài. Phương pháp, script, số liệu, và những gì chế độ nhanh (fast mode) thay đổi.
Đọc bài viếtGiữ Claude Code tiếp tục chạy sau khi SSH mất kết nối: công thức tmux
Giữ Claude Code tiếp tục chạy sau khi SSH mất kết nối bằng tmux. Kết nối lại đúng tiến trình cũ, kiểm tra độ bền của phiên và dùng tùy chọn phải tự bật trong AgentsRoom.
Đọc bài viết