Techsy
Liên hệ
Bắt đầu
Quay lại Blog
guides

Bộ nhớ đệm LLM Prompt: Cắt giảm 90% chi phí API (Cả 3 nhà cung cấp)

Viết bởi Mert Batur Gürbüz
Mar 25, 2026
23 phút đọc
Mục lục
Bộ nhớ đệm LLM Prompt: Cắt giảm 90% chi phí API (Cả 3 nhà cung cấp)

Bộ nhớ đệm LLM Prompt: Cắt giảm 90% chi phí API (Cả 3 nhà cung cấp)

Bộ nhớ đệm prompt LLM cho phép bạn tái sử dụng các token đã xử lý trước đó qua các lần gọi API, giúp cắt giảm chi phí đầu vào đến 90% và giảm thời gian nhận token đầu tiên (time-to-first-token) đến 85%. Nếu bạn gửi cùng một system prompt, định nghĩa công cụ hoặc ví dụ few-shot trong mỗi yêu cầu, bạn đang trả đầy đủ giá cho những công việc mà GPU đã thực hiện xong.

Hướng dẫn này bao gồm OpenAI, Anthropic và Gemini với cùng một chatbot được triển khai trên cả ba SDK, điều mà không hướng dẫn nào khác làm được. Chúng ta cũng sẽ đề cập đến bản cập nhật bộ nhớ đệm tự động của Anthropic vào tháng 2 năm 2026, các kịch bản chi phí sản xuất với số tiền đô la thực tế, và những phản mẫu (anti-patterns) âm thầm phá hủy tỷ lệ truy cập bộ nhớ đệm (cache hit rate) của bạn.

<!-- IMAGE: Sơ đồ luồng tái sử dụng bộ nhớ đệm KV hiển thị khớp tiền tố prompt, đường đi truy cập bộ nhớ đệm (nhanh, rẻ) và đường đi trượt bộ nhớ đệm (xử lý tiêu chuẩn) -->

Tóm tắt nhanh, Tổng quan cả ba nhà cung cấp

Trước khi đi sâu vào chi tiết triển khai, đây là bảng so sánh đầy đủ. Nếu bạn đã biết mình đang dùng nhà cung cấp nào, hãy nhảy thẳng đến phần tương ứng. Nếu bạn đang đánh giá, bảng này cho bạn biết mọi thứ chỉ trong 10 giây.

Tính năngOpenAIAnthropicGemini
Loại bộ nhớ đệmTự độngTự động + Tường minhNgầm định + Tường minh
Token tối thiểu1.0241.024 (hầu hết mô hình)1.024 (Flash) / 4.096 (Pro)
TTL (Thời gian sống)5-10 phút (lên đến 24h nếu gia hạn)5 phút hoặc 1 giờCó thể cấu hình (mặc định 1 giờ)
Chi phí ghi bộ nhớ đệm1x (không phụ phí)1.25x (5 phút) / 2x (1 giờ)1x (không phụ phí)
Giảm giá đọc bộ nhớ đệmGiảm 50% đầu vàoGiảm 90% đầu vào~Giảm 90% đầu vào
Cô lập bộ nhớ đệmTổ chức (Organization)Không gian làm việc (Workspace)Dự án (Project)
Hỗ trợ StreamingCóCóCó
Trường phản hồi Cache Hitcached_tokenscache_read_input_tokenscachedContentTokenCount
Kiểm soát tường minhKhôngCó (cache_control)Có (đối tượng bộ nhớ đệm có tên)
Cập nhật lớn mới nhấtTháng 10/2024Tháng 2/2026 (tự động hóa)2026 (bộ nhớ đệm ngầm định)

Điểm mấu chốt: OpenAI là đơn giản nhất (không cần cấu hình, giảm giá 50%). Anthropic mang lại mức giảm giá sâu nhất (90%) với khả năng kiểm soát tốt nhất. Gemini cung cấp TTL có thể cấu hình và bộ nhớ đệm ngầm định trên các mô hình 2.5+ với mức giảm giá tương đương Anthropic.

Bộ nhớ đệm LLM Prompt hoạt động như thế nào?

Bạn không cần hiểu sâu về kiến trúc transformer để sử dụng hiệu quả bộ nhớ đệm prompt. Nhưng bạn cần hiểu một khái niệm: khớp tiền tố (prefix matching).

Bộ nhớ đệm KV trong 60 giây

Khi một LLM xử lý prompt của bạn, nó tính toán các trạng thái attention (các cặp khóa-giá trị) cho mỗi token. Các mục nhập bộ nhớ đệm KV này là phần tốn kém nhất, chúng ngốn bộ nhớ GPU và thời gian tính toán. Bộ nhớ đệm prompt lưu trữ các trạng thái đã tính toán này để yêu cầu tiếp theo có cùng tiền tố bỏ qua hoàn toàn việc tính toán lại.

Từ khóa quan trọng là tiền tố. Bộ nhớ đệm khớp từ đầu prompt của bạn trở đi. Nếu 2.000 token đầu tiên khớp với một mục nhập đã lưu trong bộ nhớ đệm nhưng token thứ 2.001 khác biệt, thì 2.000 token đầu tiên đó sẽ được phục vụ từ bộ nhớ đệm. Mọi thứ sau điểm phân kỳ sẽ được tính toán mới.

Đây là lý do tại sao thứ tự prompt rất quan trọng. Hãy cấu trúc prompt của bạn như sau:

  1. Định nghĩa công cụ (tĩnh nhất)
  2. System prompt
  3. Ví dụ few-shot tĩnh
  4. Ngữ cảnh truy xuất (bán động)
  5. Lịch sử hội thoại (tăng dần theo lượt)
  6. Truy vấn của người dùng (luôn khác nhau)

Nội dung tĩnh đặt trước, nội dung động đặt sau. Càng nhiều token khớp với tiền tố đã lưu trong bộ nhớ đệm, bạn càng tiết kiệm được nhiều.

Bộ nhớ đệm Prompt so với Bộ nhớ đệm Ngữ nghĩa so với Bộ nhớ đệm Phản hồi

Ba thuật ngữ này thường bị nhầm lẫn. Bộ nhớ đệm prompt (nội dung hướng dẫn này đề cập) tái sử dụng các trạng thái KV đã tính toán ở cấp độ GPU cho các tiền tố token giống hệt nhau, không mất độ chính xác, đầu ra giống hệt như khi không dùng bộ nhớ đệm. Bộ nhớ đệm ngữ nghĩa sử dụng độ tương đồng embedding để trả về các phản hồi đã tạo trước đó cho các truy vấn "đủ giống nhau", nhanh hơn nhưng có thể trả về câu trả lời sai. Bộ nhớ đệm phản hồi lưu trữ các cặp đầu vào-đầu ra chính xác và trả về nguyên văn phản hồi đã lưu, chỉ hoạt động với các yêu cầu hoàn toàn giống nhau.

Bộ nhớ đệm prompt là phương pháp "tối ưu hóa miễn phí" duy nhất, nó giảm chi phí và độ trễ mà không đánh đổi độ chính xác. Đối với toán học transformer chuyên sâu đằng sau bộ nhớ đệm KV, bài giải thích kỹ thuật của Hugging Face đã đo lường tốc độ tăng ~5.21 lần trên GPU T4.

OpenAI xử lý Bộ nhớ đệm Prompt như thế nào?

Bộ nhớ đệm prompt của OpenAI hoàn toàn tự động. Kể từ tháng 10 năm 2024, mọi lệnh gọi API với 1.024+ token đầu vào đều tự động hưởng lợi từ bộ nhớ đệm. Bạn không cần đăng ký tham gia, không cần thêm header, không cần thay đổi code.

Cách hoạt động của bộ nhớ đệm tự động OpenAI

Khi bạn gửi yêu cầu với ít nhất 1.024 token, OpenAI kiểm tra xem tiền tố có khớp với yêu cầu gần đây từ tổ chức của bạn hay không. Các lần truy cập bộ nhớ đệm (cache hits) có chi phí bằng 50% giá token đầu vào tiêu chuẩn. Sau ngưỡng 1.024 token ban đầu, bộ nhớ đệm khớp theo các khối 128 token.

Bộ nhớ đệm tồn tại trong 5-10 phút trong quá trình sử dụng bình thường và có thể kéo dài đến 24 giờ với chế độ lưu trữ mở rộng trong các giai đoạn thấp điểm. Phạm vi áp dụng theo tổ chức, vì vậy các dự án khác nhau trong cùng một tổ chức có thể hưởng lợi từ bộ nhớ đệm chung.

Các mô hình được hỗ trợ bao gồm GPT-4o, GPT-4o-mini, GPT-4.1, o1, o3-mini và tất cả các mô hình mới hơn.

Ví dụ Python SDK OpenAI

python
from openai import OpenAI

client = OpenAI()

# This system prompt is ~2,000 tokens -- well above the 1,024 minimum
SYSTEM_PROMPT = """You are a senior Python developer specializing in async programming.
You follow PEP 8, use type hints, and write comprehensive docstrings.
When reviewing code, check for: race conditions, resource leaks, error handling,
and performance bottlenecks. Always suggest specific fixes with code examples.
[... imagine 1,800 more tokens of coding guidelines, examples, and rules ...]"""

def chat(user_message: str) -> str:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": user_message},
        ],
    )

    # Check if caching kicked in
    usage = response.usage
    cached = usage.prompt_tokens_details.cached_tokens
    total_input = usage.prompt_tokens
    print(f"Cached: {cached}/{total_input} tokens ({cached/total_input*100:.0f}%)")

    return response.choices[0].message.content

# First call: cache miss (full price)
chat("Review this async function for race conditions...")

# Second call within 5-10 min: cache hit (50% off on cached tokens)
chat("Now optimize the same function for throughput...")

Lệnh gọi đầu tiên xử lý mọi thứ với giá đầy đủ và điền vào bộ nhớ đệm. Lệnh gọi thứ hai tái sử dụng các token system prompt đã lưu trong bộ nhớ đệm với nửa giá. Bạn sẽ thấy kết quả tương tự như Cached: 1920/2048 tokens (94%) trong đầu ra.

Kết luận: OpenAI là dễ bắt đầu nhất, không cần cấu hình, bộ nhớ đệm tự động diễn ra. Mức giảm giá 50% là thấp nhất trong ba nhà cung cấp, nhưng bạn không thể đánh bại sự đơn giản của nó.

Anthropic/Claude xử lý Bộ nhớ đệm Prompt như thế nào?

Anthropic cung cấp hai chế độ: bộ nhớ đệm tự động (được bật mặc định kể từ tháng 2 năm 2026) và bộ nhớ đệm tường minh với các điểm ngắt cache_control. Con số đáng chú ý khó có thể bỏ qua: các lần đọc từ bộ nhớ đệm chỉ tốn 10% giá đầu vào tiêu chuẩn, tức là giảm giá 90%.

Bộ nhớ đệm Tự động so với Tường minh (Cập nhật 2026)

Tính đến ngày 5 tháng 2 năm 2026, Anthropic bật bộ nhớ đệm tự động mặc định cho tất cả các prompt đủ điều kiện. Bạn không cần header beta cũ nữa. Hệ thống tự động xác định các điểm ngắt bộ nhớ đệm tối ưu.

Bộ nhớ đệm tường minh vẫn khả dụng khi bạn muốn kiểm soát chi tiết. Bạn đặt cache_control: {"type": "ephemeral"} trên các khối nội dung cụ thể để đánh dấu chính xác nơi ranh giới bộ nhớ đệm nên nằm. Điều này hữu ích khi prompt của bạn có cấu trúc cụ thể và bạn muốn đảm bảo certain sections được lưu vào bộ nhớ đệm.

Có hai tùy chọn TTL:

  • Bộ nhớ đệm 5 phút (mặc định): chi phí ghi 1.25x giá đầu vào cơ sở, chi phí đọc 0.1x. Tự hoàn vốn sau 1 lần truy cập bộ nhớ đệm.
  • Bộ nhớ đệm 1 giờ: chi phí ghi 2x giá đầu vào cơ sở, chi phí đọc 0.1x. Tự hoàn vốn sau 2 lần truy cập bộ nhớ đệm. Có sẵn trên các mô hình Claude 4.5+.

Phạm vi cô lập bộ nhớ đệm đã thay đổi từ cấp độ tổ chức sang cấp độ không gian làm việc (workspace) vào ngày 5 tháng 2 năm 2026. Điều này có nghĩa là các không gian làm việc khác nhau trong cùng một tổ chức duy trì các bộ nhớ đệm riêng biệt.

Khi làm việc với bộ nhớ đệm của Anthropic, sẽ rất hữu ích nếu bạn cấu trúc prompt để tối ưu hóa bộ nhớ đệm, việc đặt nội dung tĩnh trước nội dung động thậm chí còn quan trọng hơn ở đây vì bạn phải trả phí ghi cao hơn.

Ví dụ Python SDK Anthropic

python
import anthropic

client = anthropic.Anthropic()

SYSTEM_PROMPT = """You are a senior Python developer specializing in async programming.
You follow PEP 8, use type hints, and write comprehensive docstrings.
When reviewing code, check for: race conditions, resource leaks, error handling,
and performance bottlenecks. Always suggest specific fixes with code examples.
[... imagine 1,800 more tokens of coding guidelines, examples, and rules ...]"""

def chat(user_message: str) -> str:
    response = client.messages.create(
        model="claude-sonnet-4-5-20250514",
        max_tokens=1024,
        system=[
            {
                "type": "text",
                "text": SYSTEM_PROMPT,
                "cache_control": {"type": "ephemeral"},  # Explicit breakpoint
            }
        ],
        messages=[
            {"role": "user", "content": user_message},
        ],
    )

    # Read cache metrics from the response
    usage = response.usage
    created = usage.cache_creation_input_tokens
    read = usage.cache_read_input_tokens
    standard = usage.input_tokens
    print(f"Cache write: {created}, Cache read: {read}, Standard: {standard}")

    return response.content[0].text

# First call: cache_creation_input_tokens = ~1920 (write at 1.25x)
chat("Review this async function for race conditions...")

# Second call: cache_read_input_tokens = ~1920 (read at 0.1x -- 90% off!)
chat("Now optimize the same function for throughput...")

Hiểu về Giá cả Ghi bộ nhớ đệm so với Đọc bộ nhớ đệm

Đây là nơi giá cả của Anthropic trở nên thú vị. Lấy Claude Sonnet 4.5 ($3/MTok đầu vào cơ sở) làm ví dụ:

  • Đầu vào tiêu chuẩn: $3.00 mỗi triệu token
  • Ghi bộ nhớ đệm (5 phút): $3.75 mỗi triệu token (1.25x), bạn trả nhiều hơn ở lần đầu tiên
  • Đọc bộ nhớ đệm: $0.30 mỗi triệu token (0.1x) -- rẻ hơn 90% ở mỗi lần truy cập tiếp theo

Bộ nhớ đệm 5 phút tự hoàn vốn chỉ sau 1 lần đọc. Bộ nhớ đệm 1 giờ ($6.00/MTok ghi) tự hoàn vốn sau 2 lần đọc. Nếu bạn thực hiện nhiều hơn một vài yêu cầu mỗi phút với cùng tiền tố, bài toán kinh tế hoàn toàn có lợi cho bạn.

Kết luận: Anthropic mang lại mức giảm giá sâu nhất (90%) và khả năng kiểm soát tốt nhất. Tốt nhất cho các khối lượng công việc lớn, nhạy cảm về chi phí.

Google Gemini xử lý Bộ nhớ đệm Prompt như thế nào?

Gemini tiếp cận khác biệt với hai cơ chế bộ nhớ đệm riêng biệt: bộ nhớ đệm ngữ cảnh tường minh (các đối tượng bộ nhớ đệm có tên mà bạn tạo và tham chiếu) và bộ nhớ đệm ngầm định (tự động, không cần cấu hình, được thêm vào năm 2026 cho các mô hình Gemini 2.5+).

Bộ nhớ đệm Ngữ cảnh Tường minh (Bộ nhớ đệm có tên)

Không giống như OpenAI và Anthropic nơi bộ nhớ đệm trong suốt, bộ nhớ đệm tường minh của Gemini yêu cầu bạn tạo một đối tượng bộ nhớ đệm có tên trước, sau đó tham chiếu nó trong các yêu cầu tiếp theo. Ngưỡng token tối thiểu là 1.024 token cho các mô hình Gemini Flash và 4.096 token cho các mô hình Pro. TTL có thể cấu hình, mặc định là 1 giờ, nhưng bạn có thể đặt nó theo nhu cầu.

Các token được lưu trong bộ nhớ đệm trên Gemini 2.5 Pro có giá $0.125/MTok so với giá đầu vào tiêu chuẩn $1.25/MTok, tức là giảm giá 90%. Ngoài ra còn có chi phí lưu trữ là $4.50 mỗi triệu token mỗi giờ cho Pro, và $1.00 cho Flash.

Bộ nhớ đệm Ngầm định trong Gemini 2.5 (2026)

Bắt đầu với Gemini 2.5 Pro và Flash, Google đã thêm bộ nhớ đệm ngầm định, bộ nhớ đệm tự động hoạt động giống như cách tiếp cận của OpenAI. Không cần cấu hình. Đặt nội dung lớn, phổ biến ở đầu prompt của bạn và gửi các yêu cầu có tiền tố tương tự liên tiếp nhanh chóng. Hệ thống tự động phát hiện nội dung đủ điều kiện lưu bộ nhớ đệm và chuyển tiếp khoản tiết kiệm.

Ví dụ Python SDK Gemini

python
from google import genai
from google.genai import types

client = genai.Client()

SYSTEM_PROMPT = """You are a senior Python developer specializing in async programming.
You follow PEP 8, use type hints, and write comprehensive docstrings.
When reviewing code, check for: race conditions, resource leaks, error handling,
and performance bottlenecks. Always suggest specific fixes with code examples.
[... imagine 1,800 more tokens of coding guidelines, examples, and rules ...]"""

# Step 1: Create a named cache object
cache = client.caches.create(
    model="gemini-2.5-flash",
    config=types.CreateCachedContentConfig(
        display_name="python-review-guidelines",
        system_instruction=SYSTEM_PROMPT,
        ttl="3600s",  # 1 hour
    ),
)

print(f"Cache created: {cache.name}, expires: {cache.expire_time}")

# Step 2: Use the cache in requests
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Review this async function for race conditions...",
    config=types.GenerateContentConfig(
        cached_content=cache.name,
    ),
)

# Check cache usage in the response
metadata = response.usage_metadata
print(f"Cached tokens: {metadata.cached_content_token_count}")
print(f"Total input tokens: {metadata.prompt_token_count}")

Cách tiếp cận tường minh có một lợi thế lớn: bạn kiểm soát chính xác TTL. Nếu bạn biết job batch của mình chạy trong 4 giờ, hãy đặt TTL 4 giờ và tránh việc hết hạn bộ nhớ đệm giữa chừng quá trình xử lý.

Kết luận: TTL có thể cấu hình và hai chế độ bộ nhớ đệm kép (tường minh + ngầm định) của Gemini khiến nó trở nên linh hoạt. Ngưỡng tối thiểu giờ đây có thể so sánh với các nhà cung cấp khác, và mức giảm giá 90% cho các lần đọc bộ nhớ đệm ngang bằng với Anthropic.

So sánh mã nguồn song song, Cùng trường hợp sử dụng, Cả 3 nhà cung cấp

Dưới đây là cùng một chatbot với system prompt được lưu trong bộ nhớ đệm, được triển khai trên cả ba SDK. Hãy so sánh trải nghiệm nhà phát triển trực tiếp.

python
# --- OpenAI: Zero config, just call the API ---
from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": SYSTEM_PROMPT},  # Cached automatically
        {"role": "user", "content": user_message},
    ],
)
cached = response.usage.prompt_tokens_details.cached_tokens
python
# --- Anthropic: Explicit cache_control breakpoint ---
import anthropic
client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-5-20250514",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": SYSTEM_PROMPT,
        "cache_control": {"type": "ephemeral"},  # Mark cache boundary
    }],
    messages=[{"role": "user", "content": user_message}],
)
cached = response.usage.cache_read_input_tokens
python
# --- Gemini: Named cache object ---
from google import genai
from google.genai import types

client = genai.Client()
cache = client.caches.create(
    model="gemini-2.5-flash",
    config=types.CreateCachedContentConfig(
        system_instruction=SYSTEM_PROMPT,
        ttl="3600s",
    ),
)
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=user_message,
    config=types.GenerateContentConfig(cached_content=cache.name),
)
cached = response.usage_metadata.cached_content_token_count
Khía cạnhOpenAIAnthropicGemini
Độ phức tạp thiết lậpKhông cóThêm khối cache_controlTạo đối tượng bộ nhớ đệm trước
Kiểm soát bộ nhớ đệmChỉ tự độngTự động hoặc tường minhNgầm định hoặc tường minh
Giảm giá đọc bộ nhớ đệm50%90%~90%
Token tối thiểu1.0241.0241.024 (Flash) / 4.096 (Pro)
Đánh giá DXĐơn giản nhấtKiểm soát tốt nhấtTTL linh hoạt nhất

Nếu bạn muốn tiết kiệm không cần nỗ lực, hãy chọn OpenAI. Nếu bạn muốn mức giảm giá sâu nhất và kiểm soát chi tiết, hãy chọn Anthropic. Nếu bạn cần thời gian sống bộ nhớ đệm có thể cấu hình hoặc đang sử dụng Google Cloud, hãy chọn Gemini.

Máy tính chi phí sản xuất, Tiết kiệm thực tế ở quy mô lớn

Các con số phần trăm trừu tượng không thúc đẩy quyết định. Số tiền đô la thì có. Dưới đây là ba kịch bản sản xuất với ước tính chi phí thực tế sử dụng Claude Sonnet 4.5 ($3/MTok đầu vào), GPT-4o ($2.50/MTok đầu vào) và Gemini 2.5 Pro ($1.25/MTok đầu vào).

Giá đã xác minh tháng 3 năm 2026. Vui lòng kiểm tra giá Anthropic, giá OpenAI và giá Gemini để biết mức giá hiện tại.

Giả định: Tỷ lệ truy cập bộ nhớ đệm 80% (thực tế cho các prompt được cấu trúc tốt), loại trừ token đầu ra vì bộ nhớ đệm chỉ ảnh hưởng đến chi phí đầu vào.

Kịch bảnKhông có bộ nhớ đệm (Hàng tháng)Với bộ nhớ đệm OpenAIVới bộ nhớ đệm AnthropicVới bộ nhớ đệm Gemini
Chatbot Hobby: 100 req/ngày, 2K system promptOpenAI: $15 / Anthropic: $18 / Gemini: $7.50$12 (tiết kiệm $3)$5.40 (tiết kiệm $12.60)$2.25 (tiết kiệm $5.25)
API Tăng trưởng: 10K req/ngày, 8K tiền tố lưu đệmOpenAI: $600 / Anthropic: $720 / Gemini: $300$360 (tiết kiệm $240)$144 (tiết kiệm $576)$60 (tiết kiệm $240)
Pipeline Doanh nghiệp: 100K req/ngày, 10K tiền tố lưu đệmOpenAI: $7,500 / Anthropic: $9,000 / Gemini: $3,750$4,500 (tiết kiệm $3,000)$1,800 (tiết kiệm $7,200)$750 (tiết kiệm $3,000)

Ở cấp độ Tăng trưởng, bộ nhớ đệm Anthropic tiết kiệm $576/tháng mặc dù có giá cơ sở cao hơn OpenAI. Ở quy mô Doanh nghiệp, bạn đang nhìn thấy khoản tiết kiệm $7,200/tháng với Anthropic, hoặc $86,400 mỗi năm. Đó là mức tiết kiệm tương đương lương của một kỹ sư senior chỉ từ một thay đổi cấu hình.

Mô hình rõ ràng: khối lượng yêu cầu càng cao và tiền tố tĩnh càng dài, bộ nhớ đệm càng tiết kiệm nhiều. Mức giảm giá 90% của Anthropic chiếm ưu thế ở quy mô lớn, nhưng giá cơ sở thấp hơn của Gemini khiến nó trở nên cạnh tranh khi tính đến tổng chi phí.

Các phản mẫu Bộ nhớ đệm Prompt, Khi nào KHÔNG nên lưu đệm

Bộ nhớ đệm có vẻ đơn giản cho đến khi tỷ lệ truy cập bộ nhớ đệm của bạn bí ẩn nằm ở mức 0%. Dưới đây là những sai lầm âm thầm phá vỡ bộ nhớ đệm prompt và cách khắc phục.

Những sai lầm phá vỡ bộ nhớ đệm (Với cách sửa)

Dấu thời gian trong system prompt, Sai lầm phổ biến nhất. Nếu system prompt của bạn bao gồm datetime.now(), khóa bộ nhớ đệm thay đổi mỗi giây.

python
# BAD: Cache misses every single request
system_prompt = f"""You are a helpful assistant.
Current time: {datetime.now().isoformat()}
Always be helpful and accurate."""

# GOOD: Move the timestamp to the user message
system_prompt = """You are a helpful assistant.
Always be helpful and accurate."""

user_message = f"[Current time: {datetime.now().isoformat()}]\n{user_query}"

Nội dung dành riêng cho người dùng trước nội dung tĩnh, Nếu bạn đặt session_id hoặc tùy chọn người dùng ở đầu, mỗi người dùng sẽ có một tiền tố duy nhất.

python
# BAD: Unique prefix per user = zero cache reuse
messages = [
    {"role": "system", "content": f"User ID: {user_id}\nPreferences: {prefs}\n{GUIDELINES}"},
    {"role": "user", "content": query},
]

# GOOD: Static content first, user context at the end
messages = [
    {"role": "system", "content": GUIDELINES},  # Same for all users -> cached
    {"role": "user", "content": f"Context: User {user_id}, prefs: {prefs}\n{query}"},
]
Phản mẫuTại sao nó phá vỡ bộ nhớ đệmCách sửa
Dấu thời gian trong system promptTiền tố thay đổi mỗi giâyDi chuyển dấu thời gian vào tin nhắn người dùng
Session/user IDs trong tiền tốTiền tố duy nhất cho mỗi người dùngDi chuyển ngữ cảnh người dùng sau nội dung tĩnh
Xoay vòng ví dụ few-shotVí dụ khác nhau = tiền tố khác nhauSử dụng bộ ví dụ cố định
Định nghĩa công cụ độngThay đổi công cụ = không khớp tiền tốGiữ schema công cụ tĩnh
Prompt ngắn (dưới mức tối thiểu)Bộ nhớ đệm đơn giản là không kích hoạtHợp nhất ngữ cảnh để vượt quá 1.024 token
Cá nhân hóa từng yêu cầu trong system promptSystem prompt thay đổi mỗi lần gọiSử dụng system prompt chung + tin nhắn người dùng dành riêng cho người dùng

Khi nào Bộ nhớ đệm Prompt thực sự không giúp ích

Một số kịch bản sẽ không hưởng lợi từ bộ nhớ đệm ngay cả khi bạn cấu trúc prompt hoàn hảo:

  • Prompt sử dụng một lần: Nếu mỗi yêu cầu có ngữ cảnh hoàn toàn duy nhất và không có tiền tố chung, không có gì để lưu vào bộ nhớ đệm.
  • Prompt rất ngắn: Dưới 1.024 token (OpenAI/Anthropic) hoặc 4.096 token (Gemini Pro), bộ nhớ đệm không kích hoạt.
  • Yêu cầu không thường xuyên: Nếu các yêu cầu cách nhau hàng giờ, bộ nhớ đệm hết hạn trước khi yêu cầu thứ hai đến. Cửa sổ 5-10 phút của OpenAI và TTL mặc định 5 phút của Anthropic có nghĩa là bạn cần lưu lượng truy cập ổn định.

Bộ nhớ đệm Prompt có hoạt động với Streaming không?

Có. Bộ nhớ đệm prompt và streaming là độc lập, bộ nhớ đệm hoạt động trên token đầu vào, streaming ảnh hưởng đến việc phân phối đầu ra. Chúng giải quyết các vấn đề khác nhau ở các giai đoạn khác nhau của vòng đời yêu cầu.

Bộ nhớ đệm xử lý giai đoạn prefill (xử lý prompt đầu vào của bạn). Streaming xử lý giai đoạn decode (tạo và gửi token đầu ra từng phần). Bạn nhận được cả hai lợi ích cùng lúc: prefill nhanh hơn từ truy cập bộ nhớ đệm, cộng với phân phối đầu ra tiến triển từ streaming.

Dưới đây là ví dụ streaming với bộ nhớ đệm được bật:

python
import anthropic

client = anthropic.Anthropic()

with client.messages.stream(
    model="claude-sonnet-4-5-20250514",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": SYSTEM_PROMPT,
        "cache_control": {"type": "ephemeral"},
    }],
    messages=[{"role": "user", "content": "Explain Python's GIL..."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

    # After streaming completes, check cache metrics
    usage = stream.get_final_message().usage
    print(f"\nCache read: {usage.cache_read_input_tokens} tokens")

Cải thiện TTFT từ bộ nhớ đệm thực sự dễ nhận thấy nhất với streaming. Không có bộ nhớ đệm, bạn chờ đợi full prefill trước khi token đầu tiên được stream về. Với bộ nhớ đệm, prefill gần như tức thì, vì vậy các token bắt đầu chảy gần như ngay lập tức.

Cách giám sát Tỷ lệ truy cập Bộ nhớ đệm trong Sản xuất

Thiết lập bộ nhớ đệm chỉ là một nửa trận chiến. Biết liệu nó có thực sự hoạt động hay không là nửa còn lại. Nếu tỷ lệ truy cập bộ nhớ đệm của bạn giảm xuống dưới 50%, điều gì đó đã thay đổi trong cấu trúc prompt của bạn và bạn đang để lỡ cơ hội tiết kiệm tiền.

Số liệu Bộ nhớ đệm Cụ thể theo Nhà cung cấp

Nhà cung cấpTrường Đọc Bộ nhớ đệmTrường Ghi Bộ nhớ đệmTrường Đầu vào Tổng
OpenAIusage.prompt_tokens_details.cached_tokensN/A (tự động)usage.prompt_tokens
Anthropicusage.cache_read_input_tokensusage.cache_creation_input_tokensusage.input_tokens
GeminiusageMetadata.cachedContentTokenCountN/A (đối tượng bộ nhớ đệm tường minh)usageMetadata.promptTokenCount

Trình ghi Nhật ký Tỷ lệ truy cập Bộ nhớ đệm Đơn giản

Dưới đây là một hàm tiện ích bạn có thể thả vào bất kỳ dự án nào để theo dõi tỷ lệ truy cập bộ nhớ đệm qua các trường phản hồi API:

python
import logging

logger = logging.getLogger("cache_monitor")

def log_cache_metrics(provider: str, usage: dict) -> float:
    """Extract and log cache metrics from any provider's response. Returns hit rate."""

    if provider == "openai":
        cached = getattr(usage.prompt_tokens_details, "cached_tokens", 0)
        total = usage.prompt_tokens
    elif provider == "anthropic":
        cached = usage.cache_read_input_tokens
        created = usage.cache_creation_input_tokens
        total = cached + created + usage.input_tokens
    elif provider == "gemini":
        cached = getattr(usage, "cached_content_token_count", 0)
        total = usage.prompt_token_count
    else:
        raise ValueError(f"Unknown provider: {provider}")

    hit_rate = (cached / total * 100) if total > 0 else 0
    logger.info(f"[{provider}] Cache hit rate: {hit_rate:.1f}% ({cached}/{total} tokens)")

    if hit_rate < 50:
        logger.warning(f"[{provider}] Low cache hit rate! Check prompt structure.")

    return hit_rate

Một hệ thống sản xuất khỏe mạnh nên duy trì tỷ lệ truy cập bộ nhớ đệm 70-90%. Nếu bạn dưới 50%, hãy xem lại phần phản mẫu. Bạn cũng có thể tích hợp điều này với các chỉ số đánh giá tự động để phát hiện sự suy giảm trong pipeline prompt của mình.

Bộ nhớ đệm Prompt trong Các trường hợp sử dụng Thực tế

Các ví dụ chatbot ở trên minh họa cơ chế, nhưng bộ nhớ đệm prompt thực sự tỏa sáng trong các mẫu kiến trúc cụ thể.

Pipeline RAG

Trong thiết lập RAG, system prompt và các ví dụ few-shot của bạn là tĩnh trên tất cả các truy vấn. Các tài liệu truy xuất thay đổi mỗi lần. Cấu trúc prompt của bạn để tối đa hóa tiền tố được lưu trong bộ nhớ đệm:

  1. System prompt (lưu đệm)
  2. Ví dụ few-shot (lưu đệm)
  3. Tài liệu truy xuất (động, đặt cuối)
  4. Truy vấn người dùng (luôn duy nhất)

Với system prompt 5.000 token và 3.000 token ví dụ few-shot, đó là 8.000 token được lưu trong bộ nhớ đệm cho mỗi yêu cầu. Với 1.000 yêu cầu/ngày trên Anthropic, bạn sẽ tiết kiệm khoảng $6.50/ngày chỉ riêng từ tiền tố được lưu trong bộ nhớ đệm. Khi bạn truy xuất và lưu các khối ngữ cảnh vào bộ nhớ đệm, hãy đảm bảo đầu ra truy xuất nằm sau tiền tố tĩnh.

Chatbot Đa lượt (Multi-Turn)

Cuộc hội thoại đa lượt là điểm ngọt ngào cho bộ nhớ đệm prompt. Mỗi lượt thêm vào lịch sử hội thoại, nhưng toàn bộ cuộc hội thoại trước đó đã được lưu trong bộ nhớ đệm từ các lượt trước. Lợi ích bộ nhớ đệm tích lũy, đến lượt thứ 10, bạn có thể có 15.000 token lịch sử được lưu trong bộ nhớ đệm với chỉ 200 token mới từ tin nhắn người dùng mới nhất.

Hệ thống Agent và Định nghĩa Công cụ MCP

Nếu bạn đang xây dựng agent với việc sử dụng công cụ, các định nghĩa công cụ của bạn là các schema JSON tĩnh được lặp lại trong mỗi lệnh gọi API. Một agent điển hình có thể có 20+ công cụ tổng cộng 3.000-5.000 token định nghĩa. Đó là nguyên liệu lý tưởng cho bộ nhớ đệm.

Điều này đặc biệt phù hợp với các kiến trúc dựa trên MCP nơi định nghĩa công cụ máy chủ được gửi trong mỗi lần gọi. Với cache_control tường minh của Anthropic, bạn có thể đánh dấu mảng tools để lưu vào bộ nhớ đệm và đảm bảo các token đó được tái sử dụng.

Bạn nên chọn Nhà cung cấp nào?

Nếu bạn cần...Lựa chọn tốt nhấtTại sao
Không cấu hình, chỉ muốn tiết kiệmOpenAIBộ nhớ đệm tự động, không cần thay đổi code
Giảm chi phí tối đa (90%)AnthropicGiá đọc bộ nhớ đệm 0.1x, giảm giá sâu nhất
Kiểm soát bộ nhớ đệm chi tiếtAnthropicĐiểm ngắt tường minh + TTL có thể cấu hình (5 phút hoặc 1 giờ)
Phân tích tài liệu dàiGeminiTTL có thể cấu hình với bộ nhớ đệm có tên tường minh
Đơn giản hóa chat đa lượtOpenAIKhớp tiền tố tự động trên lịch sử hội thoại đang phát triển
Hệ thống Agent với định nghĩa công cụAnthropicLưu định nghĩa công cụ vào bộ nhớ đệm một cách tường minh với cache_control
Linh hoạt đa nhà cung cấpLiteLLMCú pháp bộ nhớ đệm thống nhất trên tất cả các nhà cung cấp

Nếu bạn đã sử dụng một nhà cung cấp, hãy bắt đầu từ đó, bộ nhớ đệm prompt không yêu cầu chuyển đổi. LiteLLM hoạt động như một lớp proxy chuẩn hóa các tham số bộ nhớ đệm trên các nhà cung cấp, rất hữu ích nếu bạn đang định tuyến yêu cầu đến nhiều mô hình.

FAQ, Bộ nhớ đệm LLM Prompt

Bộ nhớ đệm prompt trong LLM là gì?

Bộ nhớ đệm prompt lưu trữ các trạng thái attention đã tính toán (bộ nhớ đệm KV) từ các tiền tố prompt đã xử lý trước đó. Khi một yêu cầu tiếp theo bắt đầu bằng cùng chuỗi token, nhà cung cấp tái sử dụng các trạng thái đã lưu trữ đó thay vì tính toán lại, giảm cả chi phí và độ trễ mà không ảnh hưởng đến chất lượng đầu ra.

Bộ nhớ đệm prompt tiết kiệm bao nhiêu chi phí API?

Khoản tiết kiệm dao động từ 50% đến 90% tùy thuộc vào nhà cung cấp. OpenAI cung cấp giảm giá 50% cho các token đầu vào được lưu trong bộ nhớ đệm. Anthropic cung cấp giảm giá lên đến 90% (đọc bộ nhớ đệm ở giá 0.1x cơ sở). Gemini cung cấp giảm giá khoảng 90% cho các lần đọc bộ nhớ đệm. Khoản tiết kiệm thực tế phụ thuộc vào tỷ lệ truy cập bộ nhớ đệm, độ dài prompt và tần suất yêu cầu của bạn.

Bộ nhớ đệm prompt của OpenAI có diễn ra tự động không?

Có, kể từ tháng 10 năm 2024. Bất kỳ lệnh gọi API nào với 1.024+ token đầu vào đều tự động hưởng lợi từ bộ nhớ đệm. Không cần đăng ký, không cần header, không cần thay đổi code. Bộ nhớ đệm khớp các tiền tố token từ đầu prompt.

Sự khác biệt giữa bộ nhớ đệm prompt và bộ nhớ đệm ngữ nghĩa là gì?

Bộ nhớ đệm prompt khớp các tiền tố token chính xác ở cấp độ GPU, không có mất mát độ chính xác và đầu ra giống hệt với các yêu cầu không dùng bộ nhớ đệm. Bộ nhớ đệm ngữ nghĩa sử dụng độ tương đồng embedding để tìm các truy vấn trước đó "đủ gần" và trả về các phản hồi đã lưu, nó nhanh hơn nhưng có thể trả về câu trả lời sai hoặc lỗi thời. Chúng giải quyết các vấn đề hoàn toàn khác nhau.

Bộ nhớ đệm prompt tồn tại trong bao lâu?

Nó khác nhau tùy theo nhà cung cấp. OpenAI: 5-10 phút (lên đến 24 giờ với lưu trữ mở rộng). Anthropic: 5 phút (mặc định) hoặc 1 giờ (có sẵn trên các mô hình Claude 4.5+, chi phí ghi gấp 2 lần). Gemini: có thể cấu hình, mặc định là 1 giờ cho các bộ nhớ đệm tường minh. TTL bộ nhớ đệm ngầm định được Google quản lý tự động.

Độ dài token tối thiểu cho bộ nhớ đệm prompt là bao nhiêu?

OpenAI: 1.024 token. Anthropic: 1.024 token cho hầu hết các mô hình hiện tại. Gemini: 1.024 token cho các mô hình Flash, 4.096 cho các mô hình Pro. Các prompt dưới các ngưỡng này sẽ không kích hoạt bộ nhớ đệm, đây là lỗi "nó không hoạt động" phổ biến nhất.

Bộ nhớ đệm prompt có hoạt động với phản hồi streaming không?

Có. Bộ nhớ đệm và streaming hoạt động trên các giai đoạn khác nhau của yêu cầu. Bộ nhớ đệm tăng tốc giai đoạn prefill đầu vào; streaming phân phối các token đầu ra từng phần. Cả hai hoạt động đồng thời và bạn thực sự sẽ nhận thấy cải thiện TTFT rõ hơn khi bật streaming.

Khi nào tôi KHÔNG nên sử dụng bộ nhớ đệm prompt?

Tránh dựa vào bộ nhớ đệm khi prompt của bạn dưới ngưỡng token tối thiểu, khi bạn bao gồm dấu thời gian hoặc session IDs trong system prompt, khi bạn xoay vòng các ví dụ few-shot giữa các lần gọi, hoặc khi các yêu cầu quá thưa thớt để truy cập bộ nhớ đệm trước khi nó hết hạn (cửa sổ 5-10 phút cho OpenAI/Anthropic).

Tôi có thể sử dụng bộ nhớ đệm prompt với LangChain hoặc LiteLLM không?

Có. LangChain chuyển các tham số bộ nhớ đệm cụ thể của nhà cung cấp thông qua các wrapper API của nó. LiteLLM cung cấp cú pháp bộ nhớ đệm thống nhất chuẩn hóa cache_control trên Anthropic, OpenAI, Gemini, Vertex AI và Bedrock, đặc biệt hữu ích cho các thiết lập đa nhà cung cấp.

Cache hit và cache miss là gì?

Một cache hit có nghĩa là nhà cung cấp đã tìm thấy một tiền tố khớp trong bộ nhớ và tái sử dụng các trạng thái KV đã lưu, bạn trả mức giá token đã lưu trong bộ nhớ đệm giảm giá và nhận được TTFT nhanh hơn. Một cache miss có nghĩa là không tìm thấy kết quả khớp, vì vậy toàn bộ prompt được xử lý từ đầu với giá tiêu chuẩn. Kiểm tra các trường cached_tokens (OpenAI), cache_read_input_tokens (Anthropic) hoặc cachedContentTokenCount (Gemini) trong phản hồi API để xem điều nào đã xảy ra.

Kết luận cuối cùng

Danh mụcNgười chiến thắngLý do chính
Thiết lập dễ nhấtOpenAITự động, không cần cấu hình
Giảm giá sâu nhấtAnthropicGiảm 90% cho các lần đọc bộ nhớ đệm (0.1x cơ sở)
Kiểm soát nhiều nhấtAnthropicĐiểm ngắt tường minh + TTL 5 phút hoặc 1 giờ
Tốt nhất cho tài liệu dàiGeminiTTL có thể cấu hình với các đối tượng bộ nhớ đệm có tên
Tốt nhất cho Chat đa lượtOpenAIKhớp tiền tố tự động trên lịch sử hội thoại
Tốt nhất cho Agentic/MCPAnthropicLưu định nghĩa công cụ vào bộ nhớ đệm một cách tường minh

Bộ nhớ đệm prompt là tối ưu hóa nỗ lực thấp nhất, lợi nhuận cao nhất trong ngăn xếp API LLM. Bạn không thay đổi mô hình, không hy sinh chất lượng và việc triển khai dao động từ "không làm gì cả" (OpenAI) đến "thêm một trường" (Anthropic) đến "tạo một đối tượng bộ nhớ đệm" (Gemini).

Hãy bắt đầu với bộ nhớ đệm tự động của nhà cung cấp hiện tại của bạn. Đo lường tỷ lệ truy cập bộ nhớ đệm của bạn với tiện ích ghi nhật ký ở trên. Nếu bạn dưới 70%, hãy cấu trúc lại prompt của bạn (tĩnh trước, động sau) và loại bỏ các phản mẫu. Hầu hết các nhóm thấy giảm chi phí 50-80% trong vòng một ngày sau khi triển khai các thay đổi này.

Nguồn

  • Tài liệu Bộ nhớ đệm Prompt Anthropic
  • Hướng dẫn Bộ nhớ đệm Prompt OpenAI
  • Tài liệu Bộ nhớ đệm Ngữ cảnh Gemini
  • Giá mô hình Anthropic
  • Giá API Gemini
  • Giải thích Bộ nhớ đệm KV, Blog Hugging Face
  • Tài liệu Bộ nhớ đệm Prompt LiteLLM

Thẻ

llm-prompt-cachingprompt-cachingllm-api-costsopenaianthropicgeminikv-cacheai-development

Chia sẻ bài viết này

Bài viết liên quan

Thêm từ chuyên mục guides

guides
Jul 18, 2026

So sánh giá LLM API 2026: Định giá mọi mô hình lớn

Bảng so sánh giá LLM API đầy đủ cho năm 2026 — Claude, GPT-5.6, Gemini, DeepSeek, Qwen, GLM và Mistral được định giá song song theo mỗi triệu token, lấy trực tiếp từ các trang giá chính thức.

12 min read phút đọc
Đọc
guides
Apr 12, 2026

Hướng dẫn Surfer SEO 2026: Trình soạn thảo nội dung, Chấm điểm NLP và Tìm kiếm AI

Hướng dẫn thực hành về Surfer SEO bao gồm quy trình làm việc với Trình soạn thảo nội dung, hệ thống chấm điểm NLP, AI Tracker để tối ưu hóa GEO và tự động hóa API. Dựa trên quá trình thử nghiệm hơn 50 bài viết.

14 min read phút đọc
Đọc
guides
Apr 12, 2026

Hướng dẫn Semrush 2026: Giải thích mọi công cụ (Kèm ví dụ)

Hướng dẫn thực tế về Semrush bao gồm nghiên cứu từ khóa, kiểm tra trang web, phân tích đối thủ, theo dõi khả năng hiển thị AI và thiết lập máy chủ MCP. Bao gồm các ví dụ mã và quy trình làm việc từ hệ thống SEO thực tế.

14 min read phút đọc
Đọc
Xem tất cả bài viết
Khởi động dự án của bạn

Sẵn sàng tạo nên điều gì đó đột phá?

Hãy biến tầm nhìn của bạn thành hiện thực. Đội ngũ của chúng tôi sẵn sàng đồng hành cùng bạn tạo ra phần mềm tạo nên sự khác biệt.

Đặt lịch gọi ý tưởng 30 phútXem dự án của chúng tôi

Công cụ hot trong kho

Claude Skills

Xem tất cả
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Tự động hoá AI

Xem tất cả
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Công cụ hot trong kho

Claude Skills

Xem tất cả
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Tự động hoá AI

Xem tất cả
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Dịch vụ

  • Giải pháp doanh nghiệp
  • Ứng dụng di động
  • Ứng dụng web

Giải pháp

  • Hệ thống CRM
  • Tích hợp AI
  • Giải pháp ERP
  • Voice Agent
  • Tự động hóa quy trình
  • Bảo mật thông tin

Thư viện

  • Blog
  • Dự án

Cộng đồng

  • Tự động hoá AI
  • Claude Skills

Công cụ

  • Tính phí làm ứng dụng mobile
  • Tính phí dùng OpenAI / LLM API
  • Tính phí làm MVP
  • Tính phí làm Voice AI Agent

Công ty

  • Giới thiệu
  • Cộng sự
  • Liên hệ

Pháp lý

  • Chính sách quyền riêng tư
  • Điều khoản dịch vụ
  • Chính sách cookie

Dịch vụ

  • Giải pháp doanh nghiệp
  • Ứng dụng di động
  • Ứng dụng web

Giải pháp

  • Hệ thống CRM
  • Tích hợp AI
  • Giải pháp ERP
  • Voice Agent
  • Tự động hóa quy trình
  • Bảo mật thông tin

Thư viện

  • Blog
  • Dự án

Cộng đồng

  • Tự động hoá AI
  • Claude Skills

Công cụ

  • Tính phí làm ứng dụng mobile
  • Tính phí dùng OpenAI / LLM API
  • Tính phí làm MVP
  • Tính phí làm Voice AI Agent

Công ty

  • Giới thiệu
  • Cộng sự
  • Liên hệ
Pháp lýChính sách quyền riêng tưĐiều khoản dịch vụChính sách cookie
TECHSY
© 2026 Techsy. Bảo lưu mọi quyền.