Deep Agents提示缓存:降低API成本达80%

its_ao 发布于 2026-06-27 阅读 116

本文介绍了在AI Agent中利用提示缓存(Prompt Caching)来大幅降低API成本的方法。

太长不看:提示缓存

图像

聊天模型对话的 token 成本增长很快。对于每条新消息,模型必须重新处理对话中之前的所有 token,包括:

  • 系统提示
  • 工具描述
  • 已加载的 Skills
  • 消息历史
  • 新消息

当我们选择使用提示缓存时,提供商会保存模型在处理提示后的状态快照:

图像

在下一次请求时,模型会从该快照继续运行,只处理新文本。

然而,加载新的 Skill 或工具可能会修改我们对话早期部分的提示,从而导致缓存失效。某些模型提供商会允许我们在提示的较早位置显式添加缓存断点,这样缓存命中可以发生在提示的子集上,而不是完全失效。但并非所有模型提供商都支持显式缓存断点:

Anthropic OpenAI Gemini Fireworks Baseten
显式断点

显式缓存也只是提示缓存功能之一,不同提供商的支持程度各异:

Anthropic OpenAI Gemini Baseten Fireworks
显式断点
可配置 TTL 按模型
缓存预热
路由键

提示缓存功能的支持情况变化很快。请务必查阅模型提供商的文档以了解功能支持情况。

由于不同提供商的提示缓存实现和功能支持存在差异,要在各提供商之间实现最大成本节省是一项挑战。

我们在 Deep Agents 中如何解决这个问题

Deep Agents 框架会尽力利用提示缓存功能,自动:

  • 在支持时设置显式缓存断点
  • 在不支持显式断点时选择提供商侧的隐式缓存
  • 优化提示结构以最大化缓存读取

这些策略适用于所有主流提供商,因此你可以在任何时间切换提供商,仍能获得最大的 token 节省。为了利用提供商特定的功能,框架会检测当前模型提供商,并将缓存管理委托给提供商特定的中间件。你也可以在自己的 createAgent() 中使用该中间件来选择提示缓存节省:

// 在 Deep Agents 中,你免费获得提示缓存!
const agent = createDeepAgent({
    model: "gpt-5.5",
});

// 在 LangChain 中,通过我们的中间件选择使用:
const agent = createAgent({
  model: "claude-haiku-4-5-20251001",
  middleware: [anthropicPromptCachingMiddleware()],
});

Deep Agents 框架还会优化你的提示结构和显式缓存点,以最小化缓存退化。理想情况下,模型调用中的静态前缀(你的工具描述、Skills、系统提示)应保持静态。但在执行诸如更新记忆或压缩对话等操作时,它可能发生变化,从而导致缓存失效。Deep Agents 通过优化提示结构和显式缓存点来缩小影响范围,这样即使某个记忆被更新,你仍然可以在提示的子集上获得缓存读取。

提示缓存的真实节省

功能表格告诉我们可能的收益。为了了解提示缓存的实际节省,我们在三个提供商各选一个中端模型上运行了 Deep Agents 评估套件:claude-haiku-4-5、gpt-5.4-mini 和 gemini-3.5-flash。结果如下表所示。在真实的 agent 运行轨迹中,提示缓存将 token 成本降低了 49–80%。

图像

  • claude-haiku-4-5: −77%。利用 Anthropic 的显式断点,我们可以保持大部分提示被缓存。这显著降低了每次请求的 token 成本。
  • gpt-5.4-mini: −80%。OpenAI 的自动最长前缀缓存为我们带来了 80% 的成本降低。
  • gemini-3.5-flash: −49%。Gemini 的隐式缓存并未提供显式的节省保证,但我们仍然看到了可观的节省。

同样值得注意的是,对话运行时间越长,缓存的回报越大:缓存的前缀会在每一轮中被复用,因此长周期任务是受益最多的。

使用 LangSmith 进行可观测性

提示缓存的成本节省效果取决于你衡量它的能力。LangSmith 提供了 API 成本、缓存读取和 token 使用情况的可视化,可以在每次调用和每次运行轨迹级别查看:

图像

对于每次调用,你可以获得首 token 时间、总输入 token、缓存读取 token 和总输出 token,并汇总到每次运行轨迹的聚合数据中。由于缓存读取是单独列出的,你可以精确看到每次提示中有多少来自缓存而不是被重新处理。

这也是我们在本文中生成数据的方式:

  1. 对每个 agent 配置运行 Deep Agents 评估套件
  2. 在 LangSmith 仪表板中检查追踪数据以验证运行结果
  3. 通过 LangSmith Client SDK 拉取运行数据
  4. 将数据放入 Jupyter notebook(或让 agent 使用 LangSmith Skills 来帮助)计算每个提供商的成本差异

LangSmith 让我们能够区分缓存节省、运行轨迹长度和更便宜轮次之间的影响,这有助于我们优化 agent。更多关于如何在 LangSmith 中读取和操作数据的内容,请参见这里

提示缓存的下一步

模型提供商尚未就提示缓存的通用功能集达成一致。显式断点带来了上述的一些节省,但这只是开始。其他一些功能——缓存预热、路由键、可配置 TTL——有望进一步解锁成本节省和延迟优势。

你可以立即通过 createDeepAgent 来利用当前支持的功能——无需额外配置。随着模型提供商添加更多功能支持,我们将继续将其集成到现有框架中。

  • 原文链接: x.com/its_ao/status/2070...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论