📖 Nội dung bài học
Tóm tắt
Prompt caching trong Claude hoạt động bằng cách lưu trữ kết quả tính toán (computational work) thực hiện trên các tin nhắn để có thể tái sử dụng trong các request tiếp theo. Điều này giúp các request sử dụng nội dung đã cache vừa rẻ hơn vừa thực thi nhanh hơn.

Quy trình tuân theo một mô hình đơn giản: request đầu tiên của bạn sẽ ghi vào cache, và các request sau đó có thể đọc từ cache. Cache tồn tại trong 5 phút, vì vậy tính năng này chỉ hữu ích nếu bạn gửi đi gửi lại cùng một nội dung — nhưng điều này lại xảy ra cực kỳ thường xuyên trong các ứng dụng thực tế.
Điểm ngắt cache (Cache Breakpoints)
Công việc thực hiện trên các tin nhắn không được tự động cache. Chúng ta phải thêm một 'điểm ngắt cache' (cache breakpoint) vào một block một cách thủ công. Mọi thứ trước breakpoint sẽ được cache, và cache sẽ chỉ được sử dụng trong các request tiếp theo nếu nội dung tính đến (và bao gồm cả) breakpoint đó là giống hệt nhau.

Khi cần thêm cache breakpoint, bạn phải sử dụng dạng đầy đủ (longhand) cho các block văn bản thay vì dạng rút gọn (shorthand). Đây là sự khác biệt:
// Dạng rút gọn (Shorthand) - không thể thêm cache breakpoint
user_message = {
"role": "user",
"content": "Hi there!"
}
// Dạng đầy đủ (Longhand) - bắt buộc để dùng cache breakpoint
user_message = {
"role": "user",
"content": [
{
"type": "text",
"text": "Hi there!",
"cache_control": {
"type": "ephemeral"
}
}
]
}
Cách Cache Breakpoints hoạt động
Cache breakpoint có thể trải dài qua nhiều tin nhắn và cũng có thể cache cả tin nhắn của assistant. Khi bạn đặt một breakpoint, mọi thứ cho đến thời điểm đó sẽ được cache. Hãy nhớ rằng, nội dung phải giống hệt nhau để sử dụng được cache!

Trong request tiếp theo, Claude đọc kết quả đã xử lý trước đó từ cache thay vì phải xử lý lại:

Vị trí đặt Breakpoint
Bạn không bị giới hạn ở các block văn bản! Bạn có thể thêm cache breakpoint vào system prompt và định nghĩa tool (tool definition). Đây thực tế là những cơ hội caching phổ biến nhất vì chúng hiếm khi thay đổi giữa các request.
// Định nghĩa tool với cache breakpoint
tools = [
add_duration_to_datetime_schema,
get_current_datetime_schema,
{
"name": "set_reminder",
"description": "Sets a reminder...",
"input_schema": { ... },
"cache_control": {"type": "ephemeral"}
}
]
// System prompt với cache breakpoint
system = [
{
"type": "text",
"text": "You are a senior software...",
"cache_control": {"type": "ephemeral"}
}
]
Thứ tự Cache (Cache Ordering)
Phía sau hậu trường, các tool, system prompt và tin nhắn được nối lại với nhau theo đúng thứ tự đó khi đưa vào Claude. Điều này ảnh hưởng đến cách cache breakpoint của bạn hoạt động.

Bạn có thể thêm tổng cộng tối đa bốn cache breakpoint. Nếu bạn đặt một breakpoint ở tool cuối cùng, mọi thứ cho đến tool đó sẽ được cache, nhưng system prompt và các tin nhắn thì không. Điều này cho phép bạn kiểm soát chi tiết những gì được cache dựa trên những gì thay đổi trong ứng dụng của bạn.
Độ dài nội dung tối thiểu
Nội dung phải dài ít nhất 1024 token để được cache (tổng của tất cả tin nhắn/block bạn đang cố gắng cache). Một tin nhắn "Hi there!" đơn giản sẽ không đạt ngưỡng này, nhưng nếu bạn nhân bản đoạn văn bản đó 500 lần, bạn sẽ có đủ token để cache.

Chìa khóa để prompt caching hiệu quả là xác định các phần trong request của bạn luôn nhất quán — thường là system prompt và định nghĩa tool — và đặt breakpoint một cách chiến lược để tối đa hóa tỷ lệ khớp cache (cache hit) đồng thời giảm thiểu việc xử lý lại.
🔁 Bài học liên quan
- Bài tiếp: Prompt caching in action
- Bài trước: Prompt caching
- Cùng section: Making a request · Multi-turn conversations · Chat exercise
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-with-google-vertex/289194
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: 2026-04-23 · Chuẩn hoá: 2026-05-01