Prompt Caching: Giảm 90% Chi Phí LLM API Mà Không Thay Đổi Code

Mỗi LLM Call Đang Lãng Phí Tiền
Một API call đến LLM luôn xử lý toàn bộ prompt từ đầu. System prompt 2.000 token, context dài 5.000 token — mỗi lần gọi, tất cả được tính lại. Gọi 1.000 lần/ngày, chi phí đội lên nhanh chóng.
Prompt caching giải quyết chính xác bài toán này.
Prompt Caching Là Gì?
Prompt caching lưu kết quả tính toán của phần đầu prompt (system prompt, context dài, few-shot examples). Khi prompt tiếp theo có cùng phần đầu, inference bỏ qua bước xử lý lại — chỉ chạy phần mới.
Kết quả: chi phí giảm 50-90% cho phần cached, latency giảm đáng kể.
Cả Anthropic (Claude) và OpenAI đều hỗ trợ tính năng này trên API.
Cách Hoạt Động
- Phần cacheable: System prompt, few-shot examples, context dài (RAG results, codebase). Đây là nội dung lặp lại giữa các request.
- Phần không cacheable: Câu hỏi cụ thể của user. Phần này thay đổi mỗi lần.
- Cache key: Dựa trên nội dung text. Nếu phần đầu giống hệt nhau, cache hit.
Với Anthropic, chỉ cần thêm cache_control vào request:
const response = await anthropic.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
cache_control: { type: "ephemeral" },
system: "Bạn là code assistant. Dưới đây là toàn bộ codebase: ...", // 5000 tokens
messages: [{ role: "user", content: "Hàm này xử lý gì?" }],
});
Với OpenAI, prefix matching tự động — nếu 2 request có cùng prefix, phần prefix được cache.
Con Số Thực Tế
- Cache hit: Chi phí input giảm 90% (Anthropic) hoặc 50% (OpenAI)
- Độ trễ: Giảm 50-80% cho phần cached vì bỏ qua computation
- TTL cache: Thường 5-10 phút (Anthropic: 5 phút, OpenAI: ~10 phút)
- Yêu cầu tối thiểu: Anthropic yêu cầu ≥1.024 token cho phần cacheable
Khi Nào Nên Dùng?
Nên cache:
- System prompt dài (hướng dẫn chi tiết, few-shot examples)
- Context từ RAG (kết quả retrieval lặp lại giữa các turn trong cùng conversation)
- Codebase được inject vào prompt cho coding agent
- Multi-turn conversation (toàn bộ lịch sử hội thoại)
Không cần cache:
- Prompt ngắn dưới 500 token
- Mỗi request hoàn toàn khác nhau
- Prototype nhanh, chưa cần tối ưu chi phí
Takeaways
- Prompt caching là cách tối ưu chi phí LLM ít effort nhất — thêm 1-2 dòng code
- Hiệu quả nhất với system prompt dài hoặc multi-turn conversation
- Cả Anthropic và OpenAI đều hỗ trợ, cách dùng khác nhau nhưng nguyên lý giống nhau
- Bắt đầu bằng cách cache system prompt — đây là phần lớn nhất và ít thay đổi nhất
Bài viết này là phần 9 của series AI For Developers — hướng dẫn thực tế cho developer muốn dùng AI trong công việc hàng ngày.