Bỏ qua để đến nội dung

Prompt caching là gì

Bạn có thể để ý: những lượt phản hồi đầu trong một phiên hơi chậm, nhưng càng về sau, cùng một lượng việc lại xử lý nhanh hơn hẳn. Đó là nhờ prompt caching — Claude Code tự quản lý cơ chế này cho bạn, không cần bật/tắt gì, nhưng hiểu sơ qua sẽ giúp bạn tránh vô tình làm chậm phiên làm việc của mình.

Cơ chế hoạt động (ở mức bạn cần biết)

Phần tiêu đề “Cơ chế hoạt động (ở mức bạn cần biết)”

Mỗi lần bạn gửi một tin nhắn, Claude Code gửi lại toàn bộ ngữ cảnh từ đầu phiên tới giờ — system prompt, CLAUDE.md, mọi tin nhắn và kết quả tool trước đó — cộng thêm phần mới ở cuối. Vì phần lớn nội dung giống hệt lượt trước, phía server có thể “nhớ” phần đã xử lý (đọc từ cache) và chỉ xử lý mới phần thêm vào cuối. Đó là lý do các lượt liên tiếp trong cùng một hướng đi thường nhanh và rẻ hơn lượt đầu.

Điểm mấu chốt: việc khớp cache hoạt động theo kiểu so khớp phần đầu (prefix) — chỉ cần một chỗ nào đó trong phần đầu thay đổi, mọi thứ phía sau nó phải tính toán lại từ đầu.

Claude Code sắp xếp mỗi request theo thứ tự nội dung ít đổi nhất lên trước:

Lớp Nội dung Đổi khi nào
System prompt Chỉ dẫn lõi, định nghĩa tool Bộ tool đang dùng thay đổi, hoặc Claude Code được nâng cấp
Ngữ cảnh dự án CLAUDE.md, auto memory, rule không giới hạn đường dẫn Đầu phiên, hoặc sau /clear//compact
Hội thoại Tin nhắn của bạn, câu trả lời của Claude, kết quả tool Mỗi lượt

Thay đổi ở lớp hội thoại (bình thường) không ảnh hưởng đến hai lớp trên — vẫn được đọc từ cache. Thay đổi ở lớp system prompt thì làm mất cache của mọi thứ phía sau nó.

Điều gì làm mất cache (khiến lượt tiếp theo chậm và tốn hơn)

Phần tiêu đề “Điều gì làm mất cache (khiến lượt tiếp theo chậm và tốn hơn)”
  • Đổi model (/model) — mỗi model có cache riêng, đổi model là tính lại từ đầu.
  • Đổi effort level (/effort) — tương tự, mỗi effort level có cache riêng.
  • Kết nối/ngắt kết nối một MCP server — nếu tool của server đó nằm ngay trong system prompt (không phải loại “nạp khi cần”).
  • Chạy /compact — theo thiết kế: hội thoại được thay bằng bản tóm tắt ngắn hơn, nên phần “hội thoại” phải tính lại (nhưng system prompt và CLAUDE.md vẫn được đọc từ cache).
  • Nâng cấp Claude Code — bản mới thường cập nhật system prompt, nên lượt đầu sau khi khởi động lại sẽ tính lại từ đầu.
  • Resume một phiên cũ sau khi đã nâng cấp phiên bản — toàn bộ lịch sử phải xử lý lại vì system prompt đã khác.
  • Sửa file trong dự án (nội dung file chỉ vào ngữ cảnh khi Claude đọc nó, và việc đọc luôn được thêm vào cuối).
  • Sửa CLAUDE.md giữa phiên — nhưng lưu ý: thay đổi cũng không áp dụng ngay, Claude vẫn dùng bản đã nạp lúc đầu phiên cho tới khi bạn /clear, /compact, hoặc khởi động phiên mới.
  • Gọi skill hoặc slash command — nội dung được thêm vào cuối hội thoại như tin nhắn bình thường.
  • Đổi chế độ quyền hạn (Shift+Tab) — không đổi system prompt hay danh sách tool.
  • Chạy /rewind để tua lại một điểm trước đó — phần còn lại vẫn khớp với cache đã có.
  • Chọn model và effort level ngay từ đầu phiên, tránh đổi qua đổi lại giữa chừng nếu không cần thiết.
  • Dùng /compact ở điểm dừng tự nhiên (giữa hai việc không liên quan) thay vì để nó tự kích hoạt giữa chừng một tác vụ đang dở.
  • Nếu đã đi sai hướng và muốn bỏ hẳn phần vừa làm, dùng /rewind để tua lại một điểm trước đó — cách này tận dụng lại cache đã có, thay vì để /compact xây dựng lại từ đầu.
  • Cache tự hết hạn sau một khoảng thời gian không hoạt động — quay lại một phiên đã để lâu, lượt đầu tiên có thể chậm hơn bình thường vì phải xây lại cache.