按使用场景选择最佳大语言模型(2026):聊天、RAG 与智能体成本矩阵
目录
- 0. 通用成本公式
- 使用场景 1:聊天机器人、客户支持和助手
- 流量特征
- 为什么聊天场景几乎天然适合缓存
- 模型推荐(2026-05 实测)
- 最小生产代码
- 聊天机器人常见问题
- 使用场景 2:API 工作负载(RAG、内容生成、批处理)
- 流量特征
- 核心难题:检索会打乱 prefix 顺序
- API 工作负载的 TTL 选择
- 按任务推荐模型
- RAG 成本估算(每天 10 万次查询)
- RAG / API 常见问题
- 使用场景 3:AI 智能体(多步推理、工具调用、长链路)
- 流量特征
- 为什么智能体离不开缓存
- TTL 适配:真正需要关注 TTL 的场景
- 智能体模型推荐
- 真实成本估算:15 步智能体任务
- 智能体常见问题
- 总体决策矩阵
- 各使用场景的 TTL 速查表
- 这个 Gateway 能做什么,不能做什么
- 最终结论
- 常见问题
TL;DR — “最佳”大语言模型无法靠单一 benchmark 决定,关键在于你做的是聊天机器人、RAG/批处理 API,还是 AI 智能体。不同形态的 prompt 结构、命中率特征、TTL 适配度和延迟容忍度都不一样,对应的最优模型与缓存策略组合也不同。本文沿用第 3 篇的实测数据:同一个 gateway、同一个 OpenAI SDK,每次调用只需替换 model 字段。
系列文章:第 4 篇,共 5 篇 · 上文:第 1 篇 — 缓存原理 · 第 2 篇 — Provider 对比与评估 · 第 3 篇 — 可运行代码教程 · 下文:第 5 篇 — LangChain 集成
0. 通用成本公式
无论选择哪种方案,都应围绕下面两个公式优化:
per-call cost = (input_uncached × P_in)
+ (input_cached × P_in × cache_discount)
+ (output × P_out)
per-call TTFT ≈ prefill_time × (1 - hit_rate)
+ decode_time
可调的变量有四个:
- 降低单价(
P_in/P_out)→ 选择更便宜的模型。 - 提高命中率 → 调整 prompt 结构,让 TTL 与流量节奏匹配。
- 降低缓存折扣系数 → 选择缓存优惠更大的 provider。
- 选择缓存 prefill 更快的 provider → 延迟直接影响用户体验。
下面每种使用场景对这四个变量的侧重点都不同。
使用场景 1:聊天机器人、客户支持和助手
流量特征
- 每个请求 = 较长的 system prompt(角色设定 + 知识 + 规则)+ 多轮历史记录 + 用户新消息。
- 平均上下文:4K–20K 个 token。
- 用户对首 token 时间极其敏感(>2 s 就会感觉系统出了问题)。
- 同一个 session 内,请求间隔通常只有几秒到几分钟,远短于任何 provider 的缓存 TTL。
为什么聊天场景几乎天然适合缓存
聊天是最适合缓存的 workload。在同一个 session 中:
Request 1: [system: 8K] + [history: 0] + [user: Q1]
Request 2: [system: 8K] + [history: 200] + [user: Q2]
Request 3: [system: 8K] + [history: 400] + [user: Q3]
↑──────── prefix is monotonically growing ────────↑
只要消息间隔没有超过 TTL(各 provider 通常都是几分钟),system prompt 部分几乎不需要额外处理就能达到 90% 以上的命中率,也不需要发送 keep-alive。
模型推荐(2026-05 实测)
| 用户群体 | 推荐模型 | 典型缓存 TTFT* | 说明 |
|---|---|---|---|
| 全球用户,成本优先 | gpt-5.4-nano | 1.0 s | 实测模型中成本最低;缓存命中率 85% |
| 全球用户,质量与成本均衡 | gpt-5.4-mini | 0.73 s | 实测缓存 TTFT 最快 |
| 全球用户,高端体验 | claude-haiku-4-5 | 1.35 s | 指令遵循能力强,溢价适中 |
| 中文用户,成本优先 | deepseek-v4-flash | 2.9 s | 磁盘缓存可承受小时级空闲 |
| 中文用户,质量优先 | qwen3-max | 1.5 s | 会报告缓存命中;需在自己的 tenant 上确认成本折扣 |
| 高端英文推理 | claude-sonnet-4-5、gpt-5.5-pro、gemini-2.5-pro | 取决于模型 | 推理模型,max_tokens 至少预留 256 |
* 使用 7,300 个 token 的稳定 system prompt,在无并发负载下单次顺序执行所得。完整数据见第 3 篇 §6。
最小生产代码
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["SYNTHORAI_KEY"],
base_url="https://synthorai.io/v1",
)
def chat(history: list, user_msg: str):
return client.chat.completions.create(
model="gpt-5.4-mini",
max_tokens=512,
messages=[
{"role": "system", "content": STABLE_SYSTEM_PROMPT}, # front
*history, # middle
{"role": "user", "content": user_msg}, # back
],
)
就这么简单。上表中的所有模型都会自动缓存,无需添加 marker。开发期间读取 resp.usage.prompt_tokens_details.cached_tokens,即可确认是否命中。
聊天机器人常见问题
- ❌ 不要把当前时间戳写进 system prompt(
"Today is 2026-05-25 14:30:25")。精确到秒的时间会导致所有缓存失效。 - ❌ 不要每轮重新拼接历史记录。message 数组的顺序应保持逐字节一致,只在末尾追加。
- ✅ 用户角色数据应放在第一条用户消息中,而不是 system prompt 中。这样每个用户的差异就不会破坏共享 prefix。
- ✅ session 空闲时间超过 TTL 后,可以在用户下一条消息到达前发送一次消耗 1 个 token 的 keep-alive ping(见第 3 篇 §8.2)。
使用场景 2:API 工作负载(RAG、内容生成、批处理)
流量特征
- RAG 问答:输入 = 稳定的 system + 动态检索文档 + 动态查询。
- 内容生成(营销文案、代码、翻译):模板稳定,数据变化。
- 批处理(文档分类、数据清洗):同一任务高频执行。
- 延迟是次要因素,单次调用成本才是重点。
核心难题:检索会打乱 prefix 顺序
RAG 的主要缓存问题在于:每次调用检索出的文档都会变化,导致 prompt 中段的 prefix 断开。
Request 1: [system: 3K] + [doc_A, doc_B, doc_C] + [user: Q1]
Request 2: [system: 3K] + [doc_B, doc_D, doc_A] + [user: Q2]
↑─ hits ─────↑ ↑──── miss ─────────↑
有三种解决办法,复杂度依次提高:
方案 A — 把检索文档放到后面,不要放在前面。
messages = [
{"role": "system", "content": SYSTEM_PROMPT}, # ~3K, stable
{"role": "system", "content": INSTRUCTION_TEMPLATE}, # ~500, stable
{"role": "user", "content": f"References:\n{retrieved_docs}\n\nQuestion: {q}"},
]
这样整个 system 部分(约 3.5K 个稳定 token)都能缓存,每次调用只会 miss 面向用户的部分。大多数生产级 RAG 用这一种方案就够了。使用 gpt-5.4-mini 实测时,system token 的命中率超过 80%。
方案 B — 对检索结果做确定性排序。 不要按相关性分数排序,而是按稳定 key(如 doc_id 升序)排列检索 chunk。高频 chunk 的位置更稳定,prefix 更容易匹配。这样会让 ranker 的准确率略有下降,但通常影响可以忽略。
方案 C — 通过厂商原生 SDK 使用显式缓存 marker。 如果直接调用 Anthropic Claude,而不是通过这个 gateway,multi-cache_control 模式可以把“永不变化”“很少变化”和“随任务变化”的内容分别设置为独立 breakpoint。如果可以接受额外维护一个 SDK,这种方式非常适合复杂 RAG。
API 工作负载的 TTL 选择
- 持续流量(全天运行的 RAG endpoint):5 分钟 TTL 足够,因为窗口内总会有下一个请求。
- 突发流量 / cron(每天 09:00 执行的批处理):选择长 TTL provider(实测中
deepseek-v4-flash的缓存存活时间最长),或者在任务运行期间每隔 TTL/2 发送一次消耗 1 个 token 的 keep-alive。具体模式见第 3 篇 §8.2。
按任务推荐模型
| 任务类型 | 推荐模型 | 原因 |
|---|---|---|
| RAG,英文 / 全球用户 | gpt-5.4-mini、gemini-2.5-pro、claude-sonnet-4-5† | 质量高,缓存成本低 |
| RAG,中文为主 | deepseek-v4-flash、qwen3-max | 中文质量好,成本最低 |
| 代码生成 | claude-sonnet-4-5、gpt-5.2-codex / 5.3-codex | 长代码上下文中的推理能力强 |
| 批量翻译 | gpt-5.4-nano、gemini-2.5-flash | 输入价格最低,模板可缓存 |
| 结构化文档分类 | qwen3.5-flash | 便宜、速度快,适合较短的规则 prompt |
† Claude 的 multi-cache_control marker 对分层 RAG 仍然没有对手。使用指向 gateway 的 anthropic SDK,参见第 3 篇 §2。
RAG 成本估算(每天 10 万次查询)
输入包含 3K system + 5K 检索文档 + 200 个 token 的查询,输出 300 个 token。以下数字按第 3 篇 §6的单次调用实测成本换算,测试环境为单 tenant、无并发负载。要估算自己的 workload,可以使用大语言模型成本计算器,并在实时模型价格对比页面查看当前费率。
| 方案 | 单次调用估算 | 每月(10 万次/天) |
|---|---|---|
gpt-5.4-mini,无缓存 | ~$0.005 | ~$15K |
gpt-5.4-mini,system token 命中率 80% | ~$0.0035 | ~$10K |
claude-sonnet-4-5,命中率 80%(multi-cache_control BP) | ~$0.004 | ~$12K |
deepseek-v4-flash,命中率 80% | ~$0.0009 | ~$2.7K |
这些数字只用于估算数量级。真实生产环境中会有并发调用和流量峰值,而检索文档的长度分布将是成本计算的主要变量。
RAG / API 常见问题
- ❌ 不要按动态相关性分数排序检索 chunk,否则每个请求都会产生不同的 prefix。
- ❌ streaming 时不要丢弃 usage 日志,否则无法准确归因成本。传入
stream_options={"include_usage": True},并保存prompt_tokens_details.cached_tokens和usage.cost。 - ✅ 批处理任务可以在缓存基础上再叠加厂商的 Batch API(OpenAI Batch、Anthropic Message Batches),还能节省约 50%。这需要绕过 gateway,直接调用 provider。
使用场景 3:AI 智能体(多步推理、工具调用、长链路)
流量特征
- 一个智能体任务会执行多次大语言模型调用,中间穿插工具返回结果。
- 上下文很长(system + tools + 累积历史记录):到第 10 步时通常达到 30K–100K 个 token。
- prompt 结构高度固定:prefix 很长且稳定,只有末尾少量内容变化。
- 延迟和成本都很重要。prefill 每多 1 秒,用户都能明显感知;15 步智能体还会把这部分开销放大 15 倍。
为什么智能体离不开缓存
每一步都会在上一步的 tool call 和结果之后继续追加。没有缓存时,每一步都要重新为数万个 token 支付 prefill 成本。
Step 1: [system: 5K] + [tools: 3K]
Step 2: [system: 5K] + [tools: 3K] + [call_1: 1K] + [result_1: 2K]
Step 3: [system: 5K] + [tools: 3K] + [call_1: 1K] + [result_1: 2K]
+ [call_2: 1K] + [result_2: 5K]
↑──── prefix grows monotonically — perfect for caching ────↑
关键规则:每一步中的 tool call 和结果都必须只追加,并保持逐字节一致。只要改写或调整顺序,从那个位置开始的缓存就会全部失效。智能体最常见的问题是:“我把工具结果整理了一下再发回去” → 缓存命中率降为零 → 成本和延迟成倍增加。
TTL 适配:真正需要关注 TTL 的场景
典型智能体任务会运行 10–60 秒,单个任务内默认 5 分钟 TTL 完全够用。但需要等待人工审批的智能体可能会空闲数分钟,例如“审核这个计划并回复”。如果人工停留了 10 分钟,缓存已经过期,后续步骤就要重新为 50K 个 token 支付 prefill 成本。此类 workflow 可选择:
- 使用 TTL 更长的 provider(实测中
deepseek-v4-flash的缓存存活时间最长),或者 - 等待期间发送 TTL/2 keep-alive ping(见第 3 篇 §8.2)。
智能体模型推荐
智能体对推理能力要求很高。先按质量选模型,再优化成本。
| 复杂度 | 首选模型 | 原因 |
|---|---|---|
| 简单 ReAct(≤5 步) | gpt-5.4-mini、qwen3-max | 速度快、成本低、质量足够 |
| 中等复杂度(5–15 步) | claude-sonnet-4-5†、gpt-5.4-mini、gemini-2.5-pro | 成本适中,推理能力更强 |
| 复杂多模态 / 长程规划 | claude-opus-4-5†、gpt-5.5-pro、gemini-3.1-pro-preview | 顶级能力,需预留相应预算 |
| 中文技术栈 | qwen3-max(规划)、deepseek-v4-flash(执行) | 中文推理能力强,执行成本最低 |
† Claude 的 4 个 cache_control marker 模式仍是智能体缓存的最佳方案,可以在 10 步以上的任务中为累积 prefix 提供折扣。使用指向 gateway 的 anthropic SDK。确切 payload 结构和 TTL 选项见第 3 篇 §2。
真实成本估算:15 步智能体任务
假设 system 为 5K、tools 为 3K,每步追加约 3K,共执行 15 步。单次调用成本按第 3 篇 §6的数据换算为智能体 workload:
| 方案 | 每步成本(已缓存) | 15 步任务 |
|---|---|---|
claude-sonnet-4-5 + 4-BP cache_control,命中率约 90% | ~$0.003 | ~$0.05 |
gpt-5.4-mini,prefix 稳定,命中率约 90% | ~$0.003 | ~$0.05 |
gpt-5.5-pro,prefix 稳定,命中率约 90% | ~$0.025 | ~$0.40 |
deepseek-v4-flash,prefix 稳定,命中率约 90% | ~$0.0005 | ~$0.01 |
gpt-5.4-mini,未规范使用缓存 | ~$0.025 | ~$0.40 |
这些数字同样只是粗略估算。决定成本的主要变量,是每一步能否真正保持 prefix 逐字节一致。
智能体常见问题
- ❌ 不要每一步都重新构建 messages 列表。数组应保持逐字节一致,只在末尾追加。
- ❌ 不要裁剪或重新格式化工具结果。任何字节变化都会让后续缓存失效。
- ❌ 不要让多个并发智能体实例共享 cache key。它们的步骤顺序会分叉,彼此污染。
- ✅ 监控每个任务的
cache_creation_tokens : cache_read_tokens。到第 10 步时,健康比例应达到 1:50 或更高。
总体决策矩阵
┌─ Chinese-heavy ─→ deepseek-v4-flash + auto cache
┌─ High ─→│
│ └─ Global users ──→ gpt-5.4-nano / claude-haiku-4-5
Chatbot ──────→│
│ ┌─ Quality-first ─→ gpt-5.4-mini / claude-sonnet-4-5
└─ Mid ──→│
└─ Balanced ──────→ gemini-2.5-flash / qwen3-max
┌─ Chinese RAG ───→ deepseek-v4-flash / qwen3-max
┌─ Live ─→│
│ └─ English RAG ───→ gpt-5.4-mini / claude-sonnet-4-5†
API ──────────→│
│ ┌─ Translation ───→ gpt-5.4-nano (template caches)
└─ Batch →│
└─ Doc review ────→ qwen3.5-flash + Batch APIs
┌─ Simple ────────→ deepseek-v4-flash / qwen3-max
┌─ China ─→│
│ └─ Complex ───────→ qwen3-max (plan) + deepseek (execute)
Agent ────────→│
│ ┌─ Simple ────────→ gpt-5.4-mini + auto
└─ Global →│
└─ Complex ───────→ claude-sonnet-4-5† / gpt-5.5-pro
† Claude with multi-`cache_control` breakpoints via the `anthropic` SDK pointed at the gateway (see Part 3 §2)
各使用场景的 TTL 速查表
| 使用场景 | TTL 策略 | 原因 |
|---|---|---|
| 实时聊天 | 自动(默认 5 分钟) | 自然的消息节奏会让缓存保持热状态 |
| RAG API(持续流量) | 自动 | 请求频率高,不需要更长 TTL |
| RAG API(突发流量 / cron) | Keep-alive ping | 避免流量峰值之间重新执行冷启动写入 |
| 智能体(无人工参与) | 自动 | 任务持续时间本来就短于 TTL |
| 智能体(包含审批步骤) | Keep-alive 或 deepseek-v4-flash | 支持等待人工审核 |
| 冷存储(大文档、低频查询) | deepseek-v4-flash(磁盘缓存) | 可承受小时级空闲 |
这个 Gateway 能做什么,不能做什么
明确一下能力边界:
| Gateway 能做 | Gateway 不能做 |
|---|---|
一个 base_url、一个认证 header,访问所有模型 | 自动选择模型(没有 meta-router) |
每次调用返回以 USD 计价的 usage.cost,无需维护价格矩阵 | 向 prompt 自动注入 cache_control marker |
在不同 provider 之间提供统一的 cached_tokens 字段 | 提供托管的显式缓存创建 endpoint |
| 按上游支持情况提供 streaming、function calling 和 vision | 迁移缓存状态的跨 provider failover |
如果现在需要右侧任何能力,请在应用层实现,或者直接调用厂商 SDK。这个 gateway 只是薄代理加计价层,所有缓存逻辑都发生在上游模型层。
最终结论
整个系列可以浓缩成四句话:
缓存带来的收益有两项,不是一项。 既降低成本,也降低延迟。 稳定内容放前面,动态内容放最后。 规范 prefix 不增加成本,所有场景都应该这样做。 按使用场景匹配模型和缓存行为。 聊天 ≠ RAG ≠ 智能体。 用自己的流量测量。 单次运行 benchmark 只是起点,不是最终答案。
最快的落地方式是:从上面的矩阵中选择最接近自己的使用场景,调整结构(稳定 prefix 优先、检索顺序确定、智能体状态逐字节一致),连续一周记录 cached_tokens 和 usage.cost,然后重新评估。
常见问题
中文聊天机器人用哪种大语言模型最便宜?
在我们的测试集中,deepseek-v4-flash 和 qwen3.5-flash 处理中文文本的成本比面向英文优化的模型低一个数量级,同时在典型聊天 workload 中的质量与 gpt-5.4-mini 相当。
2026 年最适合 RAG 的大语言模型是什么?
英文场景推荐 gpt-5.4-mini,配合方案 A 的 prompt 布局(system token 放在前面,参考资料放在最后),稳定部分的命中率可超过 80%。中文场景推荐 deepseek-v4-flash。经常查询超长文档时,推荐 gemini-2.5-pro,它原生支持 1M+ token 上下文。
智能体应该用 GPT 还是 Claude?
两者都很强,具体选择取决于你愿意在缓存规范上投入多少。Claude 的 4 个 cache_control marker 模式(通过 anthropic SDK 调用 gateway)特别适合累积式智能体 prefix。prefix 预热后,在 10 步以上的任务中可将输入成本降低约 90%。如果希望继续使用 OpenAI 风格的 client,不添加任何 marker,并接受约 50% 的缓存节省,gpt-5.4-mini 或 gpt-5.5-pro 的接入成本更低。
把“大语言模型用法从粗放改为优化”后,实际能省多少? 本系列实测结果显示,在使用同一模型的情况下,成本可降低 50–88%,TTFT 可降低 30–60%。主要收益来自把命中率提高到 80% 以上,而不是更换模型。
应该从哪里开始?
先从矩阵中选择最接近自己的使用场景,调整 prompt 结构,然后连续一周测量生产流量中的 cached_tokens 和 usage.cost。完成这些之后,再考虑更换模型。
如何比较不同 provider 的大语言模型 API 价格? Synthorai 的模型页面提供实时价格对比:可以按 provider 筛选,并按每百万 token 的输入或输出价格排序,数据始终与 gateway 的实际标价同步。上面的矩阵用于选择适合使用场景的模型类型,模型页面则用于查看当前成本。
来源与验证:实测数字来自第 3 篇 §6,测试环境为 2026-05-25 的 https://synthorai.io/v1,使用 openai SDK 2.38.0。厂商价格页面:OpenAI · Anthropic · Google Gemini · DeepSeek · Alibaba Bailian。