AI 编程教程中文版
官方教程中文版模型与运行时

Token caching

Gemini CLI token caching 的作用:减少重复上下文成本、提升长任务性能,以及使用前需要理解的边界。

Token caching 用来减少重复上下文带来的成本或延迟。它适合长会话、重复读取大上下文、脚本化任务。

Token caching 受认证方式影响。API key 和 Vertex AI 场景可用;OAuth / Code Assist API 场景不要把 cached token 当成必然存在。

官方文档里的限制很关键:token caching 只在 API key 认证或 Vertex AI 场景下可用。OAuth 用户,包括 Google Personal / Enterprise 账号走的 Code Assist API,目前不支持 cached content creation。

适合场景

  • 多轮围绕同一大项目。
  • 反复读取同一批文档。
  • CI/headless 中重复上下文。
  • 长时间任务需要稳定性能。

它缓存什么

Token caching 的目标不是缓存最终答案,而是复用前面已经处理过的系统指令和上下文。这样后续请求不需要重复为同样上下文付完整处理成本。

官方页面没有给出统一 TTL 或永久缓存承诺,所以教程里不要写“缓存会保留多久”。更稳的写法是教读者看 /stats,确认当前认证方式下是否真的出现 cached token。

适合缓存的内容通常是:

  • 稳定系统指令。
  • 项目规则。
  • 长期不变的上下文。
  • 多轮任务反复引用的文件摘要。

不适合依赖 caching 的内容包括实时日志、临时错误输出、频繁变化的 diff 和一次性输入。

内容是否适合 caching原因
项目规则 / system instructions适合稳定且重复出现
长文档和 schema适合多轮任务会重复引用
当前 diff不适合变化快,容易误用旧上下文
测试失败日志不适合每次运行都可能不同
构建产物和依赖目录不适合应先 ignore 或裁剪

不适合把它当万能解法

如果任务描述混乱、项目规则缺失、验证命令不清楚,token caching 也救不了。先把上下文结构和任务边界做好。

也不要把 caching 理解成“所有 token 都免费”。它只是减少重复处理成本,不能替代上下文裁剪。

如何查看效果

在 Gemini CLI 会话里使用 /stats 查看 token usage。当 cached token 可用时,stats 输出里会显示相关节省情况。

如果 /stats 看不到 cached token,先确认当前认证方式是不是 Gemini API key 或 Vertex AI。如果你是 OAuth 登录,缺少 cached token 信息是预期行为。

这也是为什么团队复盘成本时要记录认证方式。

如果团队成员分别使用 OAuth、API key 和 Vertex AI,同一篇教程里的 caching 截图可能完全不同。商业教程建议把认证方式写在截图说明里,否则读者会以为自己配置错了。

成本优化建议

  • .geminiignore 排除构建产物、依赖目录、日志和大文件。
  • 自动化任务要记录 /stats,否则很难判断成本变化来自缓存、模型切换还是上下文变化。
  • 先减少无关上下文,再考虑 token caching。
  • 团队场景要统一认证方式,否则不同成员看到的 caching 行为可能不同。

验证步骤

先准备一个稳定的大上下文任务,例如读取同一组 docs 或 schema。第一轮运行后看 /stats,第二轮用同一认证方式、同一模型和同一上下文再运行一次,再比较 cached token 是否出现。中间不要改 GEMINI.md、settings、模型或输入文件,否则你无法判断变化来自缓存还是输入漂移。

如果第二轮仍看不到 cached token,不要继续改 prompt。先确认认证方式、官方支持范围、模型是否支持 cached content creation,再判断是否需要改成本优化策略。

接下来去哪

官方来源

本页目录