Skip to content

上下文缓存

Gemini 的上下文缓存用于缓存重复的长上下文,适合固定系统提示词、大段知识库上下文、长文档问答和重复业务规则。它可以降低重复输入的成本,并改善部分长上下文场景的延迟。

什么是上下文缓存

上下文缓存会缓存请求中可复用的大段内容,例如系统提示词、文档材料、工具定义和固定业务规则。后续请求围绕同一批材料提问时,可以复用缓存内容。

常见缓存内容包括:

  • 长系统提示词
  • 业务规则
  • 知识库材料
  • 大型文档内容
  • 长对话中的稳定历史
  • 多模态材料

适合哪些场景

场景适合原因
长系统提示词多次请求中保持不变
大段知识库上下文用户围绕同一资料连续提问
固定背景资料规则、合同、产品手册重复使用
多轮文档问答文档内容稳定,用户问题变化
大型多模态材料图片或文档材料重复分析

长系统提示词缓存

可以把稳定系统提示词、业务规则或文档材料创建为缓存内容,再在生成请求中引用。

text
Create the cache first:
Fixed system prompt + long document content -> cachedContent

Later generation:
cachedContent + current user question -> Gemini response

大段知识库上下文缓存

当多个问题围绕同一份文档时,可以缓存文档正文,把用户问题放在后续请求中。

json
{
  "cachedContent": "cachedContents/example-cache-id",
  "contents": [
    {
      "parts": [
        { "text": "Answer this: how do I configure an API key?" }
      ]
    }
  ]
}

固定背景资料缓存

固定背景资料应与动态问题分开。不要把当前时间、请求 ID、用户临时状态混入缓存内容,否则会降低复用价值。

如何设计缓存边界

  • 把稳定内容放进缓存
  • 把每次变化的用户问题放在生成请求里
  • 避免把动态字段放进缓存
  • 对大型上下文按变化频率拆分缓存
  • 根据业务过期时间设置缓存生命周期

成本优化

缓存适合重复使用的长内容。短 prompt 或一次性请求通常不需要缓存。使用前应评估:

  • 上下文是否足够长
  • 是否会被多次复用
  • 多次请求是否能引用同一缓存
  • 业务是否能接受缓存创建和存储成本

延迟优化

命中缓存后,长上下文重复处理的开销会降低。对于文档问答、长规则客服、复杂工具定义等场景,可以改善连续请求体验。

注意事项

  • 缓存适合稳定内容,不适合每次都变化的输入
  • 缓存有生命周期,过期后需要重新创建
  • 不要缓存不应长期保存的敏感信息
  • 通过 usage 或后台日志观察缓存使用效果