跳到正文
AWS Machine Learning Blog· Claudio Mazzoni·· 3 小时前AI 评分36

AI 智能体的“土拨鼠之日”:在 Amazon Bedrock 上使用 OpenAI 模型的提示词缓存模式

Groundhog Day for AI agents: Prompt caching patterns for using OpenAI models on Amazon Bedrock

AI 导读

AWS 发文讲解如何在 Amazon Bedrock 上为 OpenAI 模型配置提示词缓存,避免智能体每轮重复发送工具定义、指令和历史。缓存分隐式与显式两种,可组合使用,可复用前缀需达到 1,024 tokens。

深度导读
文章以电影《土拨鼠之日》作比:AI 智能体每执行一步(调用工具、读取结果、决定下一步),都要把工具定义、开发者指令、此前所有工具调用与结果重新发给模型,模型在请求之间没有内部记忆,只能基于输入预测下一个 token。到编码会话第 20 轮时,模型要重读第 1 至 19 轮,这些 token 成本由使用者反复承担。提示词缓存把输入提示词(指令、工具与内容)保存下来,下次请求以更低价格复用。 机制上,模型读入提示词时先做 prefill,处理每个输入 token 并构建 KV 向量作为工作状态;缓存保存该状态,后续请求若以相同 token 开头,就直接加载已保存状态,只处理新增部分。缓存分隐式与显式:隐式由 Amazon Bedrock 自行选择可复用前缀的终点,显式则由代码用 prompt_cache_breakpoint 标记终点,两者可同时使用,文章也推荐组合使用。 实操部分给出代码示例:静态内容用显式模式,prompt_cache_key 标识共享同一缓存的请求,prompt_cache_options 设置 mode 与 ttl(示例为 30m),store=False 只是把会话历史留在应用侧,并不关闭缓存。可复用前缀需达到 1,024 tokens 才符合条件。一次显式缓存测试中,约 4,000 tokens 的工具与指令前缀首次写入 4,120 tokens,后续请求读取同样 4,120 tokens;任务或用户请求位于缓存边界之后,不触发写入。文章提醒缓存只在文本完全一致时生效,指令与工具列表的序列化方式须保持稳定,MCP 服务器等工具交付形式需要索引以保持一致,日期、用户名、请求 ID 等变化内容应放在缓存指令之后。 对话历史与工具结果部分,文章给出工具执行循环:把模型输出(含加密推理内容)与工具结果追加到 history 再发送,隐式模式下 Bedrock 可复用未变前缀并缓存到最后一条工具结果;显式滚动断点则每轮在最新一批结果上打标记并保留此前所有标记。在六轮负载测试中,GPT-6 Astra 的隐式缓存结果并列最佳,输入成本比不开缓存低约 62%,显式滚动断点在同一模型上节省约 61%,两者都随对话增长复用更多历史。文章同时提示风险:显式模式下只设一个静态断点,工具与指令虽被缓存,但增长的历史每轮仍要重新处理(0.61);移动单一断点会破坏缓存复用并导致重复写入,应保留上一轮的断点。文章强调这些是特定负载的结果,使用者应自行测量节省幅度。

来源:AWS Machine Learning Blog · aws.amazon.com