Skip to content

使用 Gemini 进行上下文缓存

Supported in ADKPython v1.15.0

在使用智能体完成任务时,你可能希望在多个智能体请求之间重用扩展指令或大量数据。 对每个智能体请求重新发送这些数据很慢、效率低下且可能很昂贵。在生成式 AI 模型中使用上下文缓存功能可以显著加快响应速度并减少每次请求发送到模型的令牌数量。

ADK 上下文缓存功能允许你将请求数据缓存到支持该功能的生成式 AI 模型中,包括 Gemini 2.0 及更高版本的模型。本文档解释如何配置和使用此功能。

配置上下文缓存

你在 ADK App 对象级别配置上下文缓存功能,该对象包装了你的智能体。 使用 ContextCacheConfig 类配置这些设置,如下列代码示例所示:

from google.adk import Agent
from google.adk.apps.app import App
from google.adk.agents.context_cache_config import ContextCacheConfig

root_agent = Agent(
  # 使用 Gemini 2.0 或更高版本配置智能体
)

# 使用上下文缓存配置创建应用
app = App(
    name='my-caching-agent-app',
    root_agent=root_agent,
    context_cache_config=ContextCacheConfig(
        min_tokens=2048,    # 触发缓存的最小令牌数
        ttl_seconds=600,    # 最多存储 10 分钟
        cache_intervals=5,  # 5 次使用后刷新
    ),
)

配置设置

ContextCacheConfig 类有以下控制缓存如何为你的智能体工作的设置。 当你配置这些设置时,它们适用于应用内的所有智能体。

  • min_tokens (int): 请求中启用缓存所需的最小令牌数。此设置允许你避免在性能收益可以忽略不计的非常小的请求上产生缓存开销。默认为 0
  • ttl_seconds (int): 缓存的生存时间(TTL),以秒为单位。此设置确定缓存内容在刷新之前存储多长时间。默认为 1800(30 分钟)。
  • cache_intervals (int): 同一缓存内容在过期之前可以使用的最大次数。此设置允许你控制缓存更新的频率,即使 TTL 尚未过期。默认为 10

下一步

有关如何使用和测试上下文缓存功能的完整实现,请参见以下示例:

  • cache_analysis: 演示如何分析上下文缓存性能的代码示例。

如果你的用例要求提供在会话期间使用的指令,请考虑为智能体使用 static_instruction 参数,这允许你修改生成式模型的系统指令。有关更多详细信息,请参见此示例代码: