模块一 · 能力边界与成本
模型选型、token 账与降级策略
选型不看榜单,看你自己那 100 条样本。这一节给出成本与延迟的拆解方法、一份能算清的账,以及大小模型的分工与降级链。
读完这一节,你能做到
- 拆清一次请求的成本构成,算出月账单的量级。
- 判断成本异常是"上下文变长"还是"步数变多"。
- 用自己的评估集做选型,而不是看榜单。
- 设计一条"小模型 → 大模型 → 规则兜底"的降级链。
一、一次请求的成本从哪来
大多数人只盯着"输出多少钱",实际上大头通常在输入。
| 成本项 | 说明 | 常见占比 |
|---|---|---|
| 输入 token | system prompt + 检索片段 + 历史 + 工具结果 | 通常最大 |
| 输出 token | 模型生成的正文与工具调用参数 | 中等 |
| 缓存 | 命中缓存的前缀通常更便宜 | 省下来的部分 |
| 工具调用 | 下游接口、检索、数据库的开销 | 不一定小 |
| 重试与失败 | 失败重试会翻倍计费 | 最容易被忽略 |
为什么重试要单独算
一次超时重试,等于同一个请求付两次钱;如果 Agent 跑五步、每步都可能重试,账单会长得比预期快得多。
二、token 怎么估
粗略换算(具体以所用模型的分词器为准):
- 中文:1 个汉字大约 1-2 个 token。
- 英文:大约 4 个字符 1 个 token。
- 数字与代码符号通常更"贵",因为切得更碎。
工程上的做法不是背换算表,而是打点实测:把每次请求的输入/输出 token 记进日志,跑一天真实流量,账就出来了。
三、延迟从哪来
用户感知的"慢",通常是三个部分叠加:
- 首字延迟:从发请求到第一个字返回。受输入长度影响最大。
- 生成速度:输出越长越慢。
- 串行步数:Agent 每多一步,延迟就多一截。
Agent 的延迟问题往往是第 3 条——单次调用都不慢,但串了五步就三十秒。解法是能并行就并行、能合并的步骤合并、能提前返回的先返回。
四、选型:用你的数据,不用榜单
榜单测的是通用能力,你的任务考的是"听不听指令、少不少编、中文长文稳不稳"。这三项只能自己测。
选型三步
- 建小评估集:50-100 条真实样本,覆盖典型与边界,标注期望行为。
- 同 prompt 跑候选:比四项——正确率、失败模式、平均延迟、单次成本。
- 定分工:哪类请求给哪个模型。
一个反直觉的结论
很多时候换更贵的模型并没有提升,因为问题在上下文没给对。先把检索和 prompt 修好,再谈换模型。
五、大小模型怎么分工与降级
常见分工
| 任务类型 | 建议 |
|---|---|
| 意图分类、实体抽取、格式转换 | 小模型足够 |
| 多步推理、长文理解、需要权衡 | 大模型 |
| 高频重复问题 | 缓存直接返回 |
降级链
小模型(快、便宜)
→ 校验失败 / 置信度低
大模型(慢、贵,重试一次)
→ 仍失败
规则兜底 / 转人工
降级要提前想好的两件事
- 哪些场景不能降级(支付、退款、合规判断)。
- 降级后给用户的提示怎么写,别让用户以为系统坏了。
模型路由怎么做
路由要放在编排层(代码),不要放在提示词里让模型自己选。三条分流依据:
| 依据 | 怎么用 |
|---|---|
| 任务难度 | 分类、抽取、格式转换给轻量模型;多步推理给能力更强的 |
| 输入长度 | 超长输入先裁剪或分段,而不是换窗口更大的模型 |
| 成本预算 | 单次或单租户超预算自动降级并告警 |
每次路由都要记录走了哪条规则、用了哪个模型、耗时与 token,否则事后无法解释“降本了但质量为什么掉”。
六、算例:一个客服 Agent 的账
假设:日会话 1 万次,单次输入 3000 token(system 800 + 检索 1200 + 历史 1000)、输出 400 token,输入单价 1 元/百万 token、输出单价 4 元/百万 token(示意,以官方定价为准)。
输入:3000 × 10000 × 30 = 9 亿 token → 900 元
输出:400 × 10000 × 30 = 1.2 亿 token → 480 元
合计:约 1380 元/月
如果命中 50% 缓存前缀,且历史从 1000 压到 400 token:
输入降到约 2400 token/次,其中一半走缓存 → 实际支出明显下降
优化的顺序(按性价比):
- 砍 system prompt 里的冗余示例。
- 历史做滑动窗口或摘要。
- 检索片段从 10 条降到 3-5 条,配合重排。
- 简单意图分流到小模型。
别先做:一上来换小模型。多数成本问题在"每次重复发送不变内容",不在模型太贵。
七、常见坑
- 只算输出,不算输入。 输入通常是成本大头。
- 不看重试成本。 失败率高的功能,账单会翻倍。
- 用记忆里的价格做预算。 价格会变,以官方为准并定期核对。
- 为了省钱把关键场景切到小模型。 质量掉下去的隐性成本更高。
- 靠榜单选型。 榜单不测你的任务。
- 忽略延迟的串行叠加。 单步 3 秒看着能接受,五步就是 15 秒。
八、动手任务:自写 → AI 写 → 对比 → 取舍
四步不跳:① 自己写(限时,关掉补全)→ ② 让 AI 写同一题 → ③ 逐条比对 → ④ 说出保留谁的写法。
① 自己写
- 给你手头一个功能算月成本:拆出输入构成、估 token、按官方单价算总账,写出你会先砍哪一项。
- 画一条降级链:哪些请求走小模型、什么条件升级、什么时候兜底。
② 让 AI 写同一题
把第 1 题交给 AI,补一句 按“成本项 → 单次 token → 月账 → 优化顺序”四段输出,价格处标注以官方为准。
③ 对比要盯的点
- 它有没有漏掉重试与工具成本?
- 优化顺序是不是一上来就换小模型?
- 它给的价格有没有标注来源与时间?
④ 一句话取舍
它算出来的账和你的差多少?差在哪一项?
九、自测
- 一次请求的成本由哪几项构成?通常哪项最大?
- 中文 token 的粗略换算是什么?为什么不能背死?
- Agent 的延迟为什么常常是"串行步数"造成的?
- 选型为什么要用自己的评估集?
- 降级链一般怎么设计?哪些场景不能降级?
- 成本突然翻倍,你会先查哪三处?
参考答案要点:输入/输出/缓存/工具/重试,输入通常最大;1 汉字约 1-2 token,以分词器为准;每步都不慢但叠加;榜单不测你的任务;小模型→大模型→规则兜底,支付合规不降级;上下文变长、步数变多、缓存失效。
配套题目
★ 越多越该先背;点题目可看完整答案与深入版。
- ★★★★☆ 一个客服 Agent 的 token 成本怎么估?
- ★★★★★ 模型怎么选?大小模型怎么分工?
- ★★★★☆ Agent 的成本怎么监控?突然翻倍先查什么?
- ★★★☆☆ 模型路由怎么做?按什么分流?
提示:读完可以顺手做几道对应题目,检验是否真的理解