Trang chủ / Tài liệu / Lưu bộ nhớ đệm cho prompt

Lưu bộ nhớ đệm cho prompt

Đọc lại một tiền tố ổn định với chi phí chỉ bằng một phần giá đầu vào — nên lưu đệm nội dung nào, không nên lưu nội dung nào và cách xác minh việc lưu đệm đã hiệu quả.

Cơ chế lưu câu lệnh vào bộ nhớ đệm lưu một tiền tố của yêu cầu để các lệnh gọi sau dùng chung tiền tố đó được tính phí đầu vào ở mức thấp hơn. Với bất kỳ nội dung nào có phần mở đầu lớn và ổn định — câu lệnh hệ thống, lược đồ công cụ, tài liệu được hỏi đến — đây là thay đổi mang lại lợi ích cao nhất.

Nội dung nào phù hợp để lưu vào bộ nhớ đệm

Phù hợpLý do
Lời nhắc hệ thốngGiống hệt nhau từng byte trong mọi lệnh gọi của một phiên
Định nghĩa công cụ / hàmỔn định trong suốt một lần chạy tác tử và thường có dung lượng lớn
Một tài liệu được hỏi đến nhiều lầnTải lên một lần, đặt nhiều câu hỏi
Ví dụ few-shotCố định và thường dài
Không phù hợpLý do
Tin nhắn mới nhất của người dùngMỗi lần đều khác nhau — không bao giờ trúng bộ nhớ đệm
Bất kỳ nội dung nào có dấu thời gian hoặc ID yêu cầu gần đầuChỉ một byte thay đổi ở gần đầu tiền tố cũng làm mất hiệu lực mọi nội dung phía sau
Câu lệnh ngắnDưới độ dài tối thiểu có thể lưu vào bộ nhớ đệm, nên không mang lại lợi ích

Đánh dấu tiền tố

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "system": [{
    "type": "text",
    "text": "<long stable instructions...>",
    "cache_control": {"type": "ephemeral"}
  }],
  "messages": [{"role": "user", "content": "Question that changes every call"}]
}

Toàn bộ nội dung từ đầu đến hết khối được đánh dấu sẽ trở thành tiền tố được lưu vào bộ nhớ đệm. Thứ tự rất quan trọng: đặt nội dung ổn định trước và nội dung hay thay đổi sau.

Xác minh cơ chế hoạt động

Kiểm tra usage đối tượng. Khi trúng bộ nhớ đệm, token được báo cáo trong mục đọc bộ nhớ đệm thay vì đầu vào thông thường. Nếu số token đọc bộ nhớ đệm vẫn bằng không qua các lệnh gọi lặp lại, tiền tố của bạn thực tế không giống hệt nhau — nguyên nhân thường gặp là dấu thời gian, ID phiên hoặc thứ tự khóa JSON không xác định trong phần mở đầu.

Tuần tự hóa nội dung được lưu vào bộ nhớ đệm theo cách xác định. json.dumps(obj) không có sort_keys=True có thể sắp xếp lại các khóa giữa các lần chạy, làm thay đổi các byte và âm thầm khiến bạn mất mọi lượt truy cập trúng bộ nhớ đệm.

Nơi mang lại hiệu quả lớn nhất

Các công cụ tác tử gửi lại cùng một lời nhắc hệ thống và cùng các schema công cụ ở mỗi lượt. Trong một phiên có 50 lượt, bạn phải trả phí cho phần mở đầu đó 50 lần nếu không dùng bộ nhớ đệm, và khoảng một lần nếu có dùng.