news 2026/9/6 6:53:31

提示词缓存如何让LLM推理成本直降36%?原理与工程落地

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
提示词缓存如何让LLM推理成本直降36%?原理与工程落地

大模型推理成本降 36%,靠的是“提示词缓存”?这事值得每个 LLM 应用开发者重新想一遍。

如果你在做一个基于大模型的应用,比如聊天机器人、智能客服、知识库问答系统,或者给 LLM 套一层的 Agent 工作流,大概率会有一个体感:模型能力很强,但每调一次接口,都在烧钱。尤其是当系统提示词越来越长、业务流程越来越复杂时,你会发现自己明明只问了模型一句“今天天气怎么样”,但实际发给 API 的请求里,可能有几千个 token 都是重复的、固定的、每次都要重新计算的“系统指令”。

这些重复计算,就是纯浪费。

一个扎心的现实是:很多团队在做 LLM 应用时,第一版 Demo 跑起来很快,一上线,账单涨得也很快。优化模型输出质量还只是问题的一半,另一半是“推理成本到底怎么降”。而在目前所有降本思路里,prompt caching(提示词缓存)是我认为最“划算”的一招,因为它不需要你去换模型、不需要你做复杂的模型蒸馏,也不需要改业务逻辑,只需要你理解它的原理,然后在工程实现上做一点调整,就能看到成本明显下降。

这篇文章不是去复述某一家厂商的文档,而是把 prompt caching 当成 LLM 应用工程里一项必备的降本手段来拆:它到底缓存了什么、为什么能省这么多钱、在哪些场景下收益最大、落地时会遇到哪些坑,以及如何用代码和配置真正把成本降下来。读完这篇,你应该能对你的 LLM 推理成本结构有一个更清晰的判断。

1. 这篇文章真正要解决的问题

先说一个很容易被忽视的事实:LLM 推理的成本,大头往往不是“生成”的那部分,而是“输入”的那部分。

很多人觉得,模型生成一个很长的回答肯定很贵,于是把优化精力都放在控制输出长度上。但如果你打开账单仔细看,会发现当一个请求里塞进了 3000 字的历史聊天记录、2000 字的系统提示词、再加上一堆 few-shot 示例时,输入侧的 token 开销早就超过输出侧了。而且,这种“输入很长”的请求,往往是高频的、重复的,甚至每次的内容都高度相似。

这就是 prompt caching 要解决的问题。它把你的请求中“不变的、重复出现的”那一段 prompt 在服务端缓存下来,当你下一次发请求时,只要前缀相同,就不需要重新计算那一部分的 KV cache,直接复用上一次的中间状态,只计算新增加的内容。这个机制的直观效果是:请求延迟降低,单位时间吞吐提升,而推理成本因为它减少了重复的 prefill 计算而直接下降。

以文章标题提到的 36% 为例,这个数字并不是凭空出现的。它来自实际业务场景里,当一个应用中存在大量高重复度的前缀提示词时,采用 prompt caching 后能看到的推理成本降幅。当然,不同模型、不同业务、不同调用频率,最终省下的比例会不一样。但有一个基本判断是可以给的:任何需要反复携带长 system prompt、长上下文、多轮历史记录的 LLM 应用中,prompt caching 都是一个收益大、风险小、落地快的优化手段。

这篇文章适合的读者很明确:

  • 正在做 LLM 应用,发现 API 账单越来越高的开发者;
  • 自己在本地部署或私有化部署推理服务,想提升吞吐、降低显存压力的工程师;
  • 设计 RAG 或 Agent 架构时,希望降低重复计算、提升响应速度的技术负责人;
  • 刚接触大模型应用开发,想知道“成本到底花在哪”的新手。

2. 大多人把“缓存”想简单了:缓存的是 KV,不是文本

要理解 prompt caching,最怕的就是把它想成普通意义上的“缓存”——也就是把旧的响应结果存起来,下次请求相同问题直接返回旧答案。这是两个完全不同层级的东西。

如果你做过传统 Web 开发,可能很熟悉这种缓存:把 key 为“北京时间现在几点”的接口响应存到 Redis,下次有人再问同样的内容,直接返回“2025 年 6 月 8 日 14:30”。但在 LLM 应用里,这种方法的问题很明显:用户不可能每次都问一模一样的问题,而且 LLM 需要的是“理解”和“生成”,不是一个固定的答案表。

真正能让推理成本大幅下降的,是缓存模型在“理解 prompt”阶段产生的中间状态,也就是 KV cache。

2.1 先理解 KV cache 是什么

Transformer 模型在生成回答时,并不是一次性把整段话都想好,而是一个 token 一个 token 地生成。每生成一个 token,它都要参考之前所有 token 的信息,去计算注意力分数。为了不每次从头计算,模型会把已经计算过的一些中间结果保存下来。这个中间结果,就是一个大 key-value 缓存,业内叫 KV cache。

KV cache 的引入,其实就是拿显存换速度:它让模型不用每次生成新 token 时,都把之前所有输入重新算一遍,而是直接读取缓存。但问题是,KV cache 的大小和输入序列的长度是正相关的。输入越长,KV cache 占的显存越大,计算生成的单次成本也越高。

2.2 prompt caching 缓存的是“前缀计算结果”

不同请求之间,虽然问题不同,但可能共享同一个很长的系统提示词,比如:

你是某银行客服助手,你需要遵守以下规则: 1. 不要透露内部系统逻辑 2. 回答要简洁 3. 不要编造事实 ...

这段 system prompt 可能在几分钟内被调用了几百次。从模型视角看,它每一次都在重复计算这一段的理解结果。

prompt caching 的做法,就是在服务端检测到请求的前缀内容与缓存内容一致时,直接复用该前缀对应的 KV cache。这样,你新的请求中只有新增的那部分内容需要走完整的 prefill 阶段计算,重复部分直接跳过。

可以这么类比:以前读一本书解读,每次都必须从第一页开始逐字逐句读。prompt caching 相当于你记住了前 100 页的内容,下一次讲解时,只需要从第 101 页往后翻到第 200 页即可。

2.3 为什么“36%”这样的降幅会出现

推理成本主要由两部分构成:prefill(处理输入)和 decode(生成输出)。其中,prefill 是对输入序列进行并行计算的过程,看似只是一次“阅读理解”,但在长输入、高并发的情况下,它的计算量和耗时都相当惊人。假设你的业务里有 60% 的输入都是重复前缀,那么启用 prompt caching 后,理论上能节省的比例也接近这个数字。再结合不同云厂商对 cache hit 的 token 单独计价(通常远比正常输入 token 便宜),最终体现在账单上的成本降幅就会非常可观。36% 就是在大量重复系统提示词的场景下,一个相对合理的观察结果。

但也要说清楚:并不是所有输入都是可以被缓存的。只有那些“前缀完全一致”的内容才能命中缓存。如果每次请求的第一句话都不一样,那就享受不到这个机制的红利。这引出了后面要讲的一个关键实践:把可复用的固定部分放在 prompt 的最前面,让后缀的内容负责变化。

3. 在“哪一层”做缓存,效果完全不同

如果你现在想给项目接入 prompt caching,第一反应可能是:在代码里搞一个缓存中间层,把用户请求的 prompt 存起来,下次遇到相同的 prompt 再返回上次的结果。这个思路在很多场景下也有用,但在 LLM 推理降本这件事上,你要先分清自己做的是哪一种缓存。

3.1 第一层:网关缓存(结果级缓存)

在应用层或网关层,对“完全相同的请求”做结果缓存。比如用户连续问两次“什么是 prompt caching”,第二次就不去调模型,直接返回第一次的结果。

优点:响应极快,成本几乎为零。 缺点:LLM 应用里很难出现大量完全相同的请求,除非是同一批数据在做批量处理。

3.2 第二层:推理服务缓存(KV 级缓存)

这就是 prompt caching 的核心。它在推理框架内部,复用前缀的 KV cache,减少重复的 prefill 计算。这也是开源推理框架中常见的 prefix caching 方案。你不需要精确命中完整请求,只需要命中“固定前缀”即可。

优点:对用户透明,不需要改业务逻辑,覆盖场景广。 缺点:需要额外显存来缓存 KV,同时需要配置合理前缀长度,否则缓存命中率很低。

3.3 第三层:模型侧压缩与调度

有些方案是通过减少原始输入来实现降本,比如动态压缩历史对话、把冗长的 few-shot 示例抽成摘要。这一类严格来说不属于 prompt caching,但它和 prompt caching 是可以叠加使用的。

实际工程里,推荐顺序也很简单:先用结果级缓存兜底精确重复,再用前缀 KV 缓存覆盖高频重复前缀,最后再通过 prompt 压缩减少永久性输入。

4. 环境准备:不同接入方式,前提条件并不一样

在开始写代码之前,先明确你要在哪种环境下使用 prompt caching。它不是一个独立的工具,而是一个和模型服务提供商、推理框架深度绑定的能力。如果你用的是云厂商的托管 API,或者开源推理框架,环境准备完全不一样。

4.1 云厂商托管 API

这是最省事的一种方式。目前主流大模型服务平台基本都支持自动或手动启用 prompt caching,不需要额外安装 Python 包或推理引擎。你只需要确认两件事:

  • 你的账号是否开通了该模型对应的缓存能力;
  • 你使用的 SDK 或 HTTP 请求中,是否传入了启用缓存所需的参数。

这种场景下,环境准备基本就是一次 API 配置。需要注意的是,不同厂商的开启方式不同。有的平台是自动开启,默认会缓存一定时间内的前缀;有的平台需要你在请求参数里显式声明“enable caching”之类的开关;还有的平台要求你的请求前缀不能超过某个 token 长度。

# 示例:伪代码,演示在 Python SDK 中开启缓存类参数 from openai import OpenAI client = OpenAI( api_key="你的API密钥", base_url="你的服务地址" ) response = client.chat.completions.create( model="your-model-name", messages=[ {"role": "system", "content": "你是一个专业的AI助手,请遵守公司规范。"}, # 固定前缀 {"role": "user", "content": "今天天气如何?"} ], # 这里的参数名以服务商官方文档为准,有的服务商不需要显式传 extra_headers={"X-Enable-Prompt-Cache": "true"} )

值得强调的是,以上代码里的extra_headers只是一个示意。不同厂商对这个能力的暴露方式差异很大,有的平台甚至不需要你在客户端做任何事。所以读到这篇时,请务必拿到你正在用的服务商的官方文档,再确认具体参数名和用法,不要照搬这个示例去生产环境,因为 API 接口可能已经变化。

4.2 本地部署开源模型

如果你使用的是 vLLM、SGLang、TGI 这类开源推理框架,环境准备就要更深入一些。你需要:

  • 一台 GPU 服务器,显存能装下目标模型;
  • 安装对应推理框架,并用它启动模型服务;
  • 读取框架文档,开启自动前缀缓存或 KV 复用功能。

以 vLLM 为例,它内置了自动前缀缓存能力,你在启动服务时可以通过配置参数来控制启用方式和缓存空间。这里不推荐写死某个版本的具体命令,因为 vLLM 的配置项更新非常频繁。更稳妥的做法是,在启动帮助信息里查找这些关键词:prefix、cache、kv、block。

python -m vllm.entrypoints.openai.api_server \ --model meta-llama/Llama-3.1-8B-Instruct \ --max-model-len 8192 \ --gpu-memory-utilization 0.9

然后你可以通过--help查看当前版本的缓存相关参数。不同版本差别很大,有的版本默认开启前缀缓存,有的版本需要显式关闭某些和长上下文相关的功能才能获得较高的命中率。

4.3 通过网关或代理中转

如果你的团队已经搭建了统一的 LLM 网关,比如 LiteLLM、OpenRouter 这类代理层,通常它们也会透传或管理缓存配置。这时候你的环境准备会是:

  • 网关服务配置模型路由和认证;
  • 网关层开启结果缓存(可选);
  • 向网关转发的请求中带上原始服务商的缓存控制参数。

这种方式的优势是可以在一个位置统一控制不同模型的服务策略。缺点是,网关层如果不支持透传某个平台的缓存参数,那么你再怎么在业务侧设置头信息,也可能不生效。

5. 一个能看得到降本效果的完整示例

下面通过一个真实可运行的思路,演示 prompt caching 在实际工程中的使用效果。这个示例里,我们模拟一个“企业知识库问答机器人”的场景:系统提示词很长,所有用户请求都共享这一段固定前缀,而用户的提问则千变万化。

5.1 模拟场景:知识库问答机器人

在没有 prompt caching 的情况下,每次请求的 token 组成大概是这样:

  • 固定系统提示词:1500 tokens
  • 检索到的知识库片段:1000 tokens
  • 历史对话:500 tokens
  • 用户当前提问:50 tokens

也就是说,每次请求输入约 3050 tokens,其中真正变化的只有“用户提问”50 tokens,其余 3000 tokens 几乎完全一样。如果一天有 10000 次请求,那么光输入侧的 token 消耗就是 3050 万 tokens。其中大约 3000 万 tokens 是重复计算的。

接入 prompt caching 后,如果缓存命中率较高,那么每次请求中,固定前缀部分不再按正常输入价格计费,而是按缓存命中的优惠价格计费,甚至只收很低的额度。

5.2 代码示例:使用 OpenAI 风格接口调用

下面用一段 Python 示例演示“同样的固定系统提示词 + 不同用户提问”的调用方式。这里的关键不是代码本身,而是让你看到何种调用模式能够命中前缀缓存。

import openai import time client = openai.OpenAI(api_key="你的API密钥") system_prompt = """ 你是一家大型企业的内部知识库助手。 你的职责是回答员工关于公司制度的提问。 回答要求: 1. 先给出结论,再补充细节。 2. 如不确定,必须说明“该信息不在知识库中”。 3. 不要编造制度条款。 4. 回答控制在200字以内。 以下是公司的考勤制度: - 上班时间:9:30-18:30 - 弹性工作:每日可弹性1小时 - 请假需提前一天在OA系统提交 - 加班需部门负责人审批 """ def ask_question(question: str): start = time.time() response = client.chat.completions.create( model="你的模型名称", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": question}, ], temperature=0.3, max_tokens=256, ) latency = time.time() - start usage = response.usage return { "answer": response.choices[0].message.content, "latency": latency, "prompt_tokens": usage.prompt_tokens, "completion_tokens": usage.completion_tokens, "total_tokens": usage.total_tokens, } result1 = ask_question("我今天可以晚一点上班吗?") print("第一次回答:", result1["answer"]) print("第一次请求耗时:", result1["latency"]) print("第一次输入 tokens:", result1["prompt_tokens"]) result2 = ask_question("加班审批的流程是什么?") print("第二次回答:", result2["answer"]) print("第二次请求耗时:", result2["latency"]) print("第二次输入 tokens:", result2["prompt_tokens"])

这段代码的核心是:system_prompt 是完全固定的,user 的 question 每次不同。在支持 prompt caching 的服务上,第一次请求之后的相同前缀请求,会明显降低 latency,同时 usage 里可能会出现独立的 cache_hit_tokens 或类似字段。

5.3 成本对比估算脚本

为了让你更直观地看到 36% 这个数字是怎么来的,写一个简易的成本估算脚本。它不依赖具体 API,只是把计费逻辑抽象出来。

# cost_compare.py # 演示:相同前缀在高重复场景下的成本对比 total_requests = 10000 system_tokens = 1500 knowledge_tokens = 1000 history_tokens = 500 user_tokens = 50 # 假设:正常输入 token 单价为 1 个单位,输出 token 单价为 2 个单位 price_input = 1.0 price_output = 2.0 cache_hit_price = price_input * 0.1 # 假设缓存命中token按正常输入价格的10%计费 # 每次输出平均 200 tokens output_tokens_per_request = 200 # 未启用 prompt caching cost_no_cache = total_requests * ( (system_tokens + knowledge_tokens + history_tokens + user_tokens) * price_input + output_tokens_per_request * price_output ) # 启用 prompt caching:固定前缀可以命中缓存,只有 user_tokens 按正常输入计价 cost_with_cache = total_requests * ( user_tokens * price_input + (system_tokens + knowledge_tokens + history_tokens) * cache_hit_price + output_tokens_per_request * price_output ) # 输出侧不受缓存影响,所以这里降本主要来自 prefill saving_ratio = (cost_no_cache - cost_with_cache) / cost_no_cache * 100 print(f"未启用缓存总成本: {cost_no_cache:.0f}") print(f"启用缓存总成本: {cost_with_cache:.0f}") print(f"成本降低比例: {saving_ratio:.2f}%")

跑一下这段脚本,你会发现,在“固定前缀占比极高”的场景下,成本下降比例很容易超过 30%。这也就是标题里 36% 这个数字出现的原因:它来自有大量重复 system prompt、上下文命中率高的业务场景。

5.4 如何验证是否真的生效

很多刚接入 prompt caching 的开发者最困惑的问题是:“我怎么知道它到底缓存了没有?”

不同平台有不同的暴露方式。常见的有三种:

  1. 响应体里的 usage 字段:部分平台会返回prompt_tokens_details.cached_tokens这类字段,告诉你本次请求有多少输入 token 命中了缓存。
  2. 延迟明显下降:当缓存命中时,prefill 阶段的计算量大幅减少,整体延迟通常会下降 30%-60%。如果你连续发送多个前缀相同的请求,第二次的延迟一般比第一次快很多。
  3. 账单中的单价变化:在云服务商的账单明细里,缓存命中的 token 往往有单独的计费项,单价更低。

如果你发现延迟完全没有变化,usage 里也没有任何缓存相关字段,那大概率是请求前缀没有完全匹配。常见情况是,你以为自己用了相同的 system prompt,但代码里其实在 system prompt 前面动态拼了一个时间戳或者用户 ID。

6. 真实业务场景:谁最适合 prompt caching

不是所有 LLM 应用都适合用 prompt caching,但以下是收益最明显的几类场景。

6.1 长系统提示词的垂直客服与助手

很多企业内部应用会为 AI 助手写一份 1000 到 3000 token 的系统提示词,里面包含品牌人设、回答规范、敏感词限制、知识库索引、工具调用说明。这类应用的共性就是:系统提示词非常长,而且几乎不变;用户提问非常短,变化多。这正好是 prompt caching 最理想的使用场景。

6.2 RAG(检索增强生成)

RAG 的一种常见实现是:把检索到的文档片段拼在 prompt 里,连同用户问题一起发给模型。这里有一个容易被忽略的细节:很多 RAG 应用的检索结果是高度重复的。比如用户连续问三个关于“考勤制度”的问题,三次检索到的知识库片段可能都是从同一篇制度文档里来的。如果每次请求都把这些片段重新计算一遍,就存在大量浪费。

更合理的做法是把“固定不变的系统指令 + 检索到的知识库内容”放在前缀位置。但注意,如果每次检索结果差异很大,缓存命中率会降低。所以这里更推荐先做一轮文档去重和排序,把高频命中的公共知识片段尽量固定下来。

6.3 多轮对话与 Agent 工作流

多轮对话里,历史消息逐轮累积,后面的每一轮请求都带着前面所有对话内容。如果你的业务是客服、角色扮演、教育辅导这类长对话场景,prompt caching 的价值在于:新的一轮请求只需要从头开始,把之前的对话历史作为固定前缀,模型只需要处理最新一条用户消息。因为有前缀缓存,这个“带上全部历史”的代价会变得低很多。

Agent 工作流也是一个典型场景。Agent 在调用多个工具时,往往会反复使用同一段 system prompt 来描述工具的能力和使用方式。工具定义越长,Agent 的 tool calling 循环越多,缓存的好处就越明显。

6.4 不适合 prompt caching 的场景

也有一些场景,做了 prompt caching 可能帮助不大:

  • 每次请求都是完全独立的随机问题,且不含任何固定前缀;
  • prompt 非常短,比如只有几十个 token;
  • 请求量非常低,一天只有几百次调用,省下的成本有限;
  • 使用不支持前缀缓存的模型或服务,或者缓存窗口极短,无法在业务请求间隙命中。

7. 常见问题与排查思路

在实际接入过程中,最容易踩的坑往往不是“无法开启”,而是“看起来开了,实际上没有命中”。

问题现象可能原因排查方式解决方案
第一次请求和后续请求延迟几乎一样请求前缀没有完全一致打印请求消息,对比每次请求前 50 个字符是否一致将固定系统提示词放在 messages 数组最前面,避免在前面拼接动态内容
usage 中没有缓存相关字段模型或服务商不支持可见的缓存字段查看服务商文档,确认缓存参数和返回字段以延迟和账单作为辅助判断,不依赖单个字段
开启后显存明显升高KV cache 需要额外显存保存监控 GPU 显存使用率限制缓存 token 长度上限,或调整缓存回收策略
缓存命中率很低动态内容出现在固定前缀之前检查是否在 system prompt 前加入了时间戳、用户ID把动态内容移动到 system prompt 之后
生产环境出现隐私担忧共享前缀可能被其他请求命中评估前缀中是否包含敏感信息敏感数据不入前缀,或者关闭跨请求缓存

一个额外提醒:某些平台的缓存是跨用户共享的。如果你的 system prompt 中包含某个特定用户的隐私信息,那么另一个用户只要前缀相同,理论上也能命中同一段缓存。这在多数情况下不是问题,因为缓存的是 KV 计算结果,并不会直接把你的私有数据返回给别人。但在合规要求极高的场景下,建议先做隐私评估,再决定是否开启全局前缀缓存。

8. 最佳实践与工程建议

最后,把 prompt caching 落地到生产环境时,我整理了几条值得长期遵守的原则。

8.1 前缀固定是第一位的要求

这是所有优化里最重要的一条。要让缓存命中率高,就必须把“不变的、公共的、大型的”内容放在 prompt 的最前面,并保证它绝对固定。不要在前面拼接日期、随机 ID、环境变量、用户名。这些看似“无害”的动态信息,每出现一次,就会把整个前缀缓存打碎一次。

8.2 隔离变化与不变

在工程实现上,建议把 prompt 模板拆成三层:

  • 固定层:系统提示词、品牌规范、工具定义;
  • 业务层:检索到的知识库内容、当前会话摘要;
  • 动态层:用户当前输入、需要模型立即响应的指令。

让固定层尽可能长、动态层尽可能短,这样缓存收益最大。这也是很多高吞吐 LLM 应用在 prompt 工程上的通用做法。

8.3 利用缓存窗口设计重试策略

一些服务商会对缓存设置有效窗口,比如 5 分钟、1 小时或者更长。如果你的业务有明显的“短时间高频”特征,例如集中处理一批数据、短时间内测试同一套流程,可以尽量把最高频的调用集中在一个窗口内完成,这样能提高命中率。

8.4 不要只看单次延迟,要关注整体成本和吞吐

很多团队评估 prompt caching 的效果时,只盯着“单次请求快了多少”。但对于工程系统,更重要指标是“单位时间能处理多少请求”以及“每 1000 次请求的成本”。缓存命中后,prefill 计算量减少,GPU 算力空闲出来,整体吞吐会明显提升,这才是生产环境里最有价值的收益。

8.5 日志里记录缓存命中信息

在接入缓存后,强烈建议在日志系统里记录每次请求的缓存命中信息。这可以帮你分析不同业务场景下的命中率,也为后续调整 prompt 结构提供数据支撑。

{ "request_id": "abc123", "model": "your-model", "prompt_tokens": 3200, "cached_tokens": 3000, "cache_hit": true, "latency_ms": 620 }

有了这些数据,你才能逐步把“缓存命中率”变成一个可观测的工程指标,而不是黑盒里的玄学。

8.6 与其他降本手段叠加

prompt caching 不是万能的,它最擅长处理“重复前缀”。但对于不重复的部分,你还需要搭配其他手段:

  • 用 prompt 压缩来缩短固定层长度;
  • 用动态摘要减少多轮对话的历史长度;
  • 用小模型做分类和路由,让大模型只处理复杂请求;
  • 在离线场景用批量推理,减少重复上下文加载。

最终你会发现,真正稳定的降本,是多个手段组合出来的结果,而不是某一个单一开关。

9. 总结与后续学习方向

如果只记住一句话,那就是:prompt caching 省的不是“回答”的成本,而是“重新理解同一段话”的成本。在任何一个存在长固定前缀、高频重复请求的 LLM 应用里,它都应该是优先考虑的降本手段。

如果你现在正在做 LLM 应用,下一步可以做这样几件事:

  1. 打开你的 API 调用日志,统计一下输入 token 里有多少是重复的固定前缀;
  2. 选一个支持 prompt caching 的服务或推理框架,做一个最小测试,对比缓存开启前后的延迟和账单;
  3. 如果已经在用开源推理框架,去读一下你当前版本的前缀缓存文档,看看哪些配置项可以优化命中率。

更深入的方向,还可以研究前缀缓存与调度策略的组合、动态上下文压缩、以及 KV cache 的显存管理。毕竟大模型推理的成本优化是一个持续推进的过程,prompt caching 只是其中一个性价比比较高的起点。如果你能把这条路走通,遇到更复杂的成本问题时,也会有更清晰的判断框架。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 6:52:39

AgentMesh实战:AI Agent微服务架构中的状态管理与工具编排

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 6:51:38

YOLOv8+PyQt5密集人群人体检测计数系统设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 6:51:27

技术团队协作规范:代码质量与自动化工具实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 6:47:37

计算机毕业设计选题推荐:基于spring boot的教育学习平台、毕业设计选题、计算机毕设、选题推荐、毕设指导、项目定制、源码、高质量项目

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数…

作者头像 李华
网站建设 2026/9/6 6:46:05

【java】程序逻辑控制

顺序结构顺序结构:程序按照代码书写的先后顺序,从上到下逐行依次执行,没有跳转、没有分支写在前面的代码先执行,写在后面的后执行 System.out.println("aaa");System.out.println("bbb");System.out.println(…

作者头像 李华