📖 Nội dung bài học
Tóm tắt
Prompt caching là một tính năng tối ưu hóa mạnh mẽ, giúp các yêu cầu API của bạn nhanh hơn và rẻ hơn khi bạn liên tục gửi cùng một nội dung đến Claude. Hãy cùng tìm hiểu cách triển khai nó hiệu quả trong các ứng dụng của bạn.

Cách hoạt động của Prompt Caching
Khi bạn bật prompt caching, yêu cầu đầu tiên sẽ ghi nội dung vào bộ nhớ cache, bộ nhớ này tồn tại trong một giờ. Các yêu cầu tiếp theo sau đó có thể đọc từ bộ nhớ cache này thay vì xử lý lại cùng một nội dung. Điều này đặc biệt có giá trị khi bạn gửi:
- System prompt lớn (ví dụ: prompt trợ lý viết code 6K token)
- Tool schema phức tạp (khoảng 1.7K token cho nhiều tool)
- Nội dung tin nhắn lặp lại
Điểm mấu chốt là caching chỉ hữu ích nếu bạn liên tục gửi nội dung giống hệt nhau - nhưng trong nhiều ứng dụng, điều này xảy ra cực kỳ thường xuyên.
Thiết lập Tool Schema Caching
Để cache tool schema của bạn, bạn cần thêm một trường kiểm soát cache vào tool cuối cùng trong danh sách của bạn. Đây là cách thích hợp để thực hiện việc này mà không cần sửa đổi định nghĩa tool ban đầu của bạn:
if tools:
tools_clone = tools.copy()
last_tool = tools_clone[-1].copy()
last_tool["cache_control"] = {"type": "ephemeral"}
tools_clone[-1] = last_tool
params["tools"] = tools_clone
Cách tiếp cận này tạo các bản sao của cả danh sách tools và tool schema cuối cùng trước khi thêm trường kiểm soát cache. Mặc dù bạn có thể trực tiếp sửa đổi tools[-1]["cache_control"], cách tiếp cận sao chép sẽ ngăn chặn các sự cố nếu sau này bạn sắp xếp lại các tool của mình.
System Prompt Caching
Đối với system prompt, bạn cần cấu trúc chúng dưới dạng một khối văn bản với cache control:
if system:
params["system"] = [
{
"type": "text",
"text": system,
"cache_control": {"type": "ephemeral"}
}
]
Điều này chuyển đổi system prompt của bạn từ một chuỗi đơn giản thành một định dạng có cấu trúc hỗ trợ caching.
Hiểu về Hành vi của Cache
Khi bạn chạy các yêu cầu với caching được bật, bạn sẽ thấy các mẫu sử dụng khác nhau trong phản hồi:
- Yêu cầu đầu tiên:
cache_creation_input_tokens=1772- Claude ghi vào cache - Các yêu cầu tiếp theo:
cache_read_input_tokens=1772- Claude đọc từ cache - Nội dung đã thay đổi: Xuất hiện các token tạo cache mới
Cache rất nhạy cảm - việc thay đổi chỉ một ký tự trong tool hoặc system prompt của bạn sẽ làm mất hiệu lực toàn bộ cache cho thành phần đó.
Sắp xếp và Điểm ngắt Cache
Bạn có thể đặt nhiều điểm ngắt cache trong một yêu cầu duy nhất. Thứ tự rất quan trọng:
- Tools (nếu được cung cấp)
- System prompt (nếu được cung cấp)
- Messages
Nếu bạn thay đổi system prompt nhưng giữ nguyên các tool, bạn sẽ thấy một phần cache được đọc (cho tools) và một phần cache được ghi (cho system prompt mới). Caching chi tiết này có nghĩa là bạn chỉ phải trả tiền cho việc xử lý các phần thực sự đã thay đổi.
Các cân nhắc thực tế
Prompt caching hiệu quả nhất khi bạn có:
- Tool schema nhất quán trên các yêu cầu
- System prompt ổn định
- Các ứng dụng thực hiện nhiều yêu cầu với ngữ cảnh tương tự
Hãy nhớ rằng cache chỉ tồn tại trong một giờ, vì vậy nó được thiết kế cho các ứng dụng có mức sử dụng API tương đối thường xuyên hơn là lưu trữ dài hạn.
Tải xuống
🔁 Bài học liên quan
- Bài tiếp: Code execution and the Files API
- Bài trước: Rules of 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-the-anthropic-api/287774
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: — · Chuẩn hoá: 2026-05-01