Tỷ lệ trúng cache của Claude Code
Trong tuần 2026-11-03, Claude Code trên mô hình Claude có tỷ lệ trúng cache trung vị khi hội thoại tiếp diễn là 98.1% (343 người dùng), và 94.6% trên mọi yêu cầu. Phần lớn lượt trượt đến từ: cache hết hạn (37%), nội dung mới trong các lượt đang diễn ra (23%), hội thoại mới (17%).
Tuần 2026-11-03 – 2026-11-09 (UTC)
Điểm chính
- Mức bình thường: 98.1%, trung vị của 343 người dùng trong hội thoại tiếp diễn; một nửa ở giữa 96.9%–98.8%
- Mọi yêu cầu: 94.6%, tính cả định tuyến, hết hạn và hội thoại mới
- Nguyên nhân trượt lớn nhất: cache hết hạn, 37% số lượt trượt
- Giữa các dạng: chênh 1.7 điểm, CLI (terminal), Ứng dụng máy tính, Agent cục bộ trên máy tính
Tỷ lệ trúng cache bao nhiêu là bình thường với từng client
Tuần 2026-11-03 – 2026-11-09 (UTC)
- Tỷ lệ trúng khi hội thoại tiếp diễn (trung vị người dùng): 98.1%
- Một nửa người dùng ở giữa: 96.9%–98.8%
- Người dùng đạt điều kiện: 343 (ít nhất 20 lượt tiếp diễn trong tuần)
- Tỷ lệ trúng trên mọi yêu cầu: 94.6%
Tỷ lệ trúng của Claude Code theo dạng sử dụng
CLI, tiện ích IDE và ứng dụng desktop của cùng một client gửi các yêu cầu gần như giống nhau, nên tỷ lệ trúng của chúng phải gần nhau.
- CLI (terminal): 98.2% (147)
- Ứng dụng máy tính: 98.4% (114)
- Agent cục bộ trên máy tính: 98.0% (78)
- Tiện ích VS Code: 97.8% (50)
- Agent SDK (CLI): 96.7% (43)
- Agent SDK (TypeScript): 97.8% (16)
- t3-code: 97.9% (5)
Tỷ lệ trúng của Claude Code theo phiên bản
Một bản phát hành thay đổi tiền tố yêu cầu sẽ có tỷ lệ trúng thấp hơn hẳn các phiên bản khác ngay trong tuần phát hành.
- 2.1.321: 97.6% (5)
- 2.1.319: 98.4% (77)
- 2.1.318: 98.3% (92)
- 2.1.317: 97.9% (133)
- 2.1.316: 98.4% (44)
- 2.1.314: 98.5% (25)
- 2.1.312: 98.0% (20)
- 2.1.311: 98.4% (13)
- 2.1.310: 97.4% (14)
- 2.1.309: 98.3% (98)
- 2.1.308: 98.0% (30)
- 2.1.302: 96.4% (7)
- 2.1.299: 97.6% (6)
- 2.1.296: 98.0% (8)
- 2.1.295: 97.6% (14)
- 2.1.292: 99.0% (5)
- 2.1.284: 97.0% (6)
- 2.1.280: 98.2% (11)
Trung vị hằng tuần
- 2026-09-29: 96.8% (120 người dùng)
- 2026-10-06: 97.8% (220 người dùng)
- 2026-10-13: 98.0% (256 người dùng)
- 2026-10-20: 98.0% (250 người dùng)
- 2026-10-27: 98.0% (259 người dùng)
- 2026-11-03: 98.1% (343 người dùng)
Vì sao tỷ lệ trúng cache của Claude Code thấp? Lượt trượt theo nguyên nhân
5.4% đầu vào tuần này không được đọc từ cache. Dưới đây là phân tích theo nguyên nhân, kèm việc bạn có thể làm với từng nguyên nhân.
- Nghỉ hơn 5 phút, cache đã hết hạn: 37% số lượt trượt, khoảng 2.0% tổng đầu vào
- Mặc định cache tồn tại 5 phút và mỗi lần trúng sẽ được gia hạn miễn phí. Nếu bạn thường dừng lâu hơn, hãy đặt CLAUDE_CODE_PROMPT_CACHE_TTL=1h (v2.1.242+); khi đó ghi cache tốn 2× giá đầu vào thay vì 1.25×.
- Nội dung mới và thay đổi tiền tố trong hội thoại đang diễn ra: 23% số lượt trượt, khoảng 1.2% tổng đầu vào
- Nội dung mới trong một lượt chỉ có thể được ghi, không thể đọc. Kết nối hoặc gỡ MCP server, hay bật plugin có kèm MCP server, sẽ thay đổi định nghĩa công cụ và làm cache mất hiệu lực.
- Hội thoại mới, hoặc nghỉ hơn một giờ: 17% số lượt trượt, khoảng 0.9% tổng đầu vào
- Yêu cầu đầu tiên của một hội thoại mới, hoặc yêu cầu sau một giờ nghỉ, phải ghi lại cache.
- Đổi mô hình: 12% số lượt trượt, khoảng 0.6% tổng đầu vào
- Mỗi mô hình có cache riêng. Sau /model, yêu cầu tiếp theo đọc toàn bộ lịch sử mà không trúng cache, dù nội dung giống hệt.
- Yêu cầu song song (yêu cầu trước vẫn đang chạy): 10% số lượt trượt, khoảng 0.5% tổng đầu vào
- Subagent và các lệnh gọi công cụ song song gửi yêu cầu tiếp theo trước khi yêu cầu trước kết thúc. Một fork trong Claude Code đọc cache của phiên cha; còn subagent thông thường có system prompt và công cụ riêng nên tự xây cache riêng.
- Được định tuyến sang tài khoản hoặc endpoint upstream khác: 2% số lượt trượt, khoảng 0.1% tổng đầu vào
- Prompt cache nằm ở tài khoản upstream đã xử lý yêu cầu. Khi một relay hoặc gateway nhiều tài khoản gửi lượt tiếp theo sang tài khoản khác, toàn bộ ngữ cảnh phải được ghi lại. Kết nối trực tiếp tới nhà cung cấp không bao giờ gặp nguyên nhân này.
Chênh vài điểm tỷ lệ trúng, hóa đơn chênh nhiều lần
Theo giá chính thức của Claude Opus 5.5, với phần trượt được ghi vào cache 5 phút, chi phí thực tế cho mỗi triệu token đầu vào:
- Trung vị tuần này, 98.1%: $0.29 (×1.0)
- 90%: $0.68 (×2.3)
- 80%: $1.16 (×4.0)
- 50%: $2.60 (×9.0)
Tự tính với số liệu của bạn trong công cụ tính chi phí Claude API
TTL cache của Claude Code: tồn tại bao lâu và tốn bao nhiêu
- Mặc định tồn tại 5 phút, và mỗi lần trúng sẽ gia hạn miễn phí.
- Chuyển sang 1 giờ bằng CLAUDE_CODE_PROMPT_CACHE_TTL=1h (v2.1.242+; với subagent dùng CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL), hoặc ENABLE_PROMPT_CACHING_1H=1 ở các phiên bản cũ hơn.
- Ghi cache tốn 1.25× giá đầu vào (5 phút) hoặc 2× (1 giờ); đọc cache thường là 0.1×, và 0.05× trên Opus 5.5 và Sonnet 5.5.
- Prompt ngắn hơn độ dài tối thiểu sẽ không được cache mà không báo lỗi: từ 512 đến 4,096 token tùy mô hình.
Prompt caching của Anthropic · Prompt caching trong Claude Code · Biến môi trường của Claude Code
Cách kiểm tra tỷ lệ trúng cache của Claude Code
- Chạy /usage trong Claude Code: dòng Prompt cache (main) trong khối Session hiển thị số yêu cầu, tỷ lệ đầu vào được lấy từ cache, số lần trượt cache và cache còn ấm hay không.
- Script status line có thể đọc các trường prompt_cache; exporter OpenTelemetry báo cáo token đọc và tạo cache theo người dùng và phiên.
- Từ API: cache_read_input_tokens ÷ (input_tokens + cache_read_input_tokens + cache_creation_input_tokens).
- Trên Wokey, mỗi yêu cầu trong nhật ký yêu cầu của bảng điều khiển đều hiển thị lượt đọc cache và ghi cache.
Vì sao tỷ lệ trúng giảm khi đi qua relay
- Đổi tài khoản: cache thuộc về tài khoản upstream, nên một lượt được gửi sang tài khoản khác phải ghi lại toàn bộ. Đây là nguyên nhân phổ biến nhất ở relay; kết nối trực tiếp không bao giờ gặp.
- Chuyển đổi định dạng: chuyển qua lại giữa định dạng Anthropic và OpenAI có thể làm thay đổi tiền tố hoặc làm mất breakpoint cache_control.
- Claude Code trước v2.1.181, khi dùng base URL tùy chỉnh, chèn một token khác nhau cho mỗi yêu cầu vào khối ghi nhận nguồn ở đầu system prompt, khiến các gateway cache theo nội dung yêu cầu luôn trượt; hãy cập nhật, hoặc đặt CLAUDE_CODE_ATTRIBUTION_HEADER=0.
- Tự kiểm tra: gửi hai yêu cầu có cùng tiền tố dài hơn độ dài cache tối thiểu; lượt đọc cache của yêu cầu thứ hai phải gần bằng độ dài tiền tố.
Wokey định tuyến các yêu cầu sau của một hội thoại về cùng tài khoản upstream bất cứ khi nào có thể. Từ 2026-10-04 đến 2026-10-10, người dùng Wokey thông thường đạt tỷ lệ trúng 92.8% trên Claude Opus 5.5 tính trên mọi yêu cầu, so với 87.8% của OpenRouter nói chung.
So sánh với tỷ lệ trúng cache của OpenRouter · Trực tiếp: API công khai về tỷ lệ trúng cache của Wokey (7 ngày qua)
Cách chúng tôi đo
- Các yêu cầu thực tế của người dùng qua gateway Wokey; mỗi thứ Hai lúc 05:00 UTC chúng tôi tính cho tuần trước đó (thứ Hai đến Chủ nhật).
- Client được nhận diện qua User-Agent của yêu cầu. Các yêu cầu từ SDK, thư viện HTTP và relay phía sau, vốn không rõ client thật, không được tính, tài khoản doanh nghiệp cũng vậy.
- Một lượt tiếp diễn có cùng mô hình và tài khoản upstream với yêu cầu trước đó trong hội thoại và bắt đầu trong vòng 5 phút sau khi yêu cầu đó kết thúc. Tỷ lệ của mỗi người dùng là đọc cache ÷ đầu vào trên các lượt đó (đầu vào gồm cả đọc và ghi cache); chúng tôi công bố trung vị của những người dùng có ít nhất 20 lượt như vậy trong tuần.
- Một ô chỉ được công bố khi có ít nhất 5 người dùng đạt điều kiện; thay đổi hơn 3 điểm so với tuần trước sẽ được kiểm tra thủ công trước.
- Các sai lệch đã biết: chỉ gồm người dùng Wokey; thói quen sử dụng rất khác nhau; tỷ lệ trên mọi yêu cầu bao gồm cả tổn thất định tuyến của chính gateway (nguyên nhân "được định tuyến sang tài khoản upstream khác").
Câu hỏi thường gặp
Tỷ lệ trúng cache bao nhiêu là bình thường với Claude Code?
Tuần này, trung vị của 343 người dùng là 98.1% trong hội thoại tiếp diễn, một nửa người dùng ở giữa nằm trong khoảng 96.9% đến 98.8%; tính trên mọi yêu cầu là 94.6%.
Vì sao tỷ lệ trúng cache Claude Code của tôi thấp?
Tuần này phần lớn lượt trượt đến từ: cache hết hạn (37%), nội dung mới trong các lượt đang diễn ra (23%), hội thoại mới (17%). Trang này liệt kê cách xử lý cho từng nguyên nhân.
Tỷ lệ trúng cache thấp có làm hết giới hạn gói Claude nhanh hơn không?
Có. Theo đo đạc của chúng tôi về giới hạn gói Claude, đọc cache gần như không tốn giới hạn, còn ghi cache được tính gần như đầu vào không cache. Một ngữ cảnh đã cache gần như không tốn gì; ngữ cảnh bị trượt sẽ được tính lại toàn bộ. Giới hạn của từng gói có trong trang giới hạn sử dụng Claude (/claude-usage-limits).
Cache read tokens trong Claude Code là gì?
Phần đầu vào được lấy từ cache, được báo là cache_read_input_tokens. Trong các phiên dài, phần này thường chiếm hơn 90% đầu vào và được tính 0.1× giá đầu vào (0.05× trên Opus 5.5 và Sonnet 5.5); cache_creation_input_tokens là phần mà yêu cầu này mới ghi vào cache.
Cache 1 giờ có đáng không?
Thường là không. Khi chạy lại một ngày lưu lượng Claude thực tế trên Wokey, chuyển toàn bộ sang cache 1 giờ làm tổng chi tiêu tăng ròng khoảng 15–25%: giá ghi tăng từ 1.25× lên 2× giá đầu vào, tốn hơn số tiền tiết kiệm được nhờ ít hết hạn hơn. Chỉ có lợi khi ngữ cảnh dài và thường xuyên nghỉ 5–60 phút.
Cache của Claude Code tồn tại bao lâu?
Mặc định 5 phút, được gia hạn miễn phí sau mỗi lần trúng. CLAUDE_CODE_PROMPT_CACHE_TTL=1h (v2.1.242+) đổi thành một giờ, khi đó ghi cache tốn 2× giá đầu vào thay vì 1.25×.
Đổi mô hình hay dùng subagent có làm hỏng cache không?
Có. Mỗi mô hình có cache riêng, nên yêu cầu sau /model đọc lại mọi thứ; subagent thông thường có system prompt và công cụ riêng nên tự xây cache riêng, còn fork dùng lại cache của phiên cha.
Vì sao cache creation lại đắt như vậy?
Ghi cache tốn 1.25× (5 phút) hoặc 2× (1 giờ) giá đầu vào. Yêu cầu đầu tiên của một hội thoại dài, và mọi yêu cầu sau khi đổi tài khoản hoặc cache hết hạn, sẽ ghi toàn bộ ngữ cảnh một lần và tốn hơn hẳn một lượt bình thường.
Cache có hoạt động khi Claude Code đi qua relay không?
Có, nếu relay chuyển tiếp nguyên cache_control và giữ một hội thoại trên một tài khoản upstream. Các phiên bản trước v2.1.181 dùng base URL tùy chỉnh cần cập nhật hoặc đặt CLAUDE_CODE_ATTRIBUTION_HEADER=0.