首页 › cost-hacks › 别只省prompt了:输出token贵输入五倍

别只省prompt了:输出token贵输入五倍

每个做 AI 应用的人都在干同一件事:疯狂压缩输入 prompt。删 system prompt、裁 few-shot 示例、上语义缓存、套提示压缩。这些当然有用——但如果你只盯着输入,你大概率砍错了地方。

今天这条信息差只讲一件事:在 Claude、GPT 这类旗舰模型上,输出 token 的单价是输入的 4 到 5 倍,而你账单里 60%–80% 的钱,恰恰烧在输出那一段。 全网 90% 的"省钱教程"都在教你省输入,没人告诉你真正吞金的是结尾那几段模型自己吐出来的字。

读完这篇你会拿到一套"反向省钱"打法:从 prefill 预填充、要 diff 不要重写、答案前置 + stop sequence,到按输出长度路由模型——全是直击输出端的、立刻能算出省了多少刀的操作。


一、被刻意忽略的价格表:输入和输出根本不是一回事

先看一组 2026 年主流 API 的官方 list price(每百万 token,美元),重点不是绝对数字,而是输出/输入的倍数:

模型 输入 $/M 输出 $/M 输出是输入的几倍 缓存读取价
Claude Opus 4.x 15 75 5.0× 1.5
Claude Sonnet 4.x 3 15 5.0× 0.3
Claude Haiku 4.5 0.8 4 5.0× 0.08
GPT-4.1 2 8 4.0× 0.5
GPT-4o 2.5 10 4.0× 1.25
o3 / o4-mini(推理) 1–3 4–12 4×(且含隐藏 thinking) —
DeepSeek-V3 0.27(缓存命中 0.07) 1.10 ~4×,但绝对值极低 0.07
GLM-4.6 ≈0.6 ≈2.2 ~3.7× 极低

这张表藏着一个所有厂商都不愿放在 C 位的秘密:他们把输入价压得很漂亮用来获客("输入只要 $3!"),但把利润全押在你必须消费的输出上。你买的是模型"听你说话"的便宜,付的是模型"开口说话"的贵。

更阴的是推理模型(o3、DeepSeek-R1、Claude 的 extended thinking):你以为它"想了一下给你个简短答案",实际上它生成的那几千个思考 token——全部按输出价计费,而且你在 API 返回里经常看不到全文。一个看起来 200 字的最终答案,背后可能是 5000 个 output token 的暗账。


二、为什么你的账单 80% 是输出?算笔账就懂

很多人对"输出贵"没有体感,因为直觉上"输入那么长一份文档才几个钱,输出就几句话应该更便宜吧"。正好相反。 来看一个真实到不能再真实的场景——让模型重构一个代码文件:

用 Claude Sonnet 4.x 算:

你那套精心优化的"删 system prompt 省 200 token"的操作,省下的是输入侧 $0.0006——为零头里的零头。而真正能动的,是那 8000 个输出 token。

flowchart LR
    A["一次 API 调用<br/>输入 10K token"]:::input --> B["模型生成<br/>输出 8K token"]:::output
    B --> C{"账单拆解<br/>Sonnet 4.x"}
    C --> D["输入 $0.030<br/>≈ 20%"]:::cheap
    C --> E["输出 $0.120<br/>≈ 80%"]:::expensive
    D --> F["全行业只在优化这一段"]:::warn
    E --> G["真正的吞金兽"]:::warn
    classDef input fill:#e8f5e9,stroke:#2e7d32
    classDef output fill:#ffebee,stroke:#c62828
    classDef cheap fill:#e3f2fd,stroke:#1565c0
    classDef expensive fill:#fff3e0,stroke:#ef6c00
    classDef warn fill:#fce4ec,stroke:#ad1457

把这个比例放到 Agent 多轮循环里更可怕:每一轮,输入(历史 + 工具结果)在涨,但每一轮的输出都按 5 倍价累计。一个跑 20 轮的 Agent,光"模型自己说话和调工具"的输出 token,可能占总成本 70% 以上。这也是为什么上一轮情报讲"Agent 隐性倍增器"——而今天我们把它落到输出这个根上。


三、五招直击输出端,立刻能算出省了多少

下面每招都是"输入几乎不变,输出腰斩甚至更多"。

招式 1:Prefill 预填充——你自己写下开头,模型只补后半段

这是 Anthropic API 一个被严重低估的能力:你可以预先填写 assistant 这一轮的开头,模型从你给的地方接着写。

比如你要 JSON,不要在 prompt 里苦口婆心"请返回严格 JSON"然后赌它不啰嗦,直接:

messages = [
  {"role": "user", "content": "提取以下合同的关键条款"},
  {"role": "assistant", "content": "{"}   # ← 你替它开了头
]

模型被迫以 { 接着写,省掉它每次开头那句 好的,以下是提取结果:\n```json\n{——这种废话每次 20–40 token,按 5 倍价就是纯浪费。高频调用一天省下来的,够你续一杯咖啡。

招式 2:要 diff / patch,不要全文重写

招式一里那个 8000 token 的重写,90% 的代码根本没改。改成让模型只输出统一 diff(unified diff)或 search-and-replace 块:

"只输出修改部分,用 unified diff 格式,未改动行不要重复。"

同样一个文件,diff 通常只有 1,000–1,500 token。

单次省 81%。这也是 Aider、Cursor 等编码工具"_edit diff"模式能省钱的核心——它们不只是工程上优雅,是真在按 5 倍价省输出。

招式 3:答案前置 + stop sequence,提前掐断

模型有个写坏习惯:先解释一通,最后才给答案。解释部分全是按 5 倍价计费的输出。 两步破:

  1. 指令里要求"先给最终答案,再可选解释"——这样你只要答案时可以早停;
  2. 配 stop_sequences,答案出来立刻截断,不让它继续发挥。

一个"给个分类标签 + 理由"的任务,没优化时模型输出 200 token(标签 5 个 + 理由 195 个)。如果业务只要标签,加 stop 序列在标签后,输出只剩 5–10 token。省 95%。

招式 4:生产链路里关掉"请一步步思考"

Chain-of-Thought 在原型阶段是神器,在生产链路里是输出账单放大器。每一步推理都是模型生成的 output token。

正确做法:用专门的推理模型(o3 / DeepSeek-R1)在离线、低频、关键判断时思考;高频常规调用用普通模型 + 结构化指令,禁止"详细解释你的推理过程"。 同一个分类任务:

差 75 倍的输出量,价差你自己算。注意:推理模型那条线,思考 token 也是 output 计费,所以"用 o3 做高频小事"是把双刃剑——它又贵、thinking 又算输出。

招式 5:按"输出长度"路由,而不是按"任务难度"

这一招是终极套利。常规路由逻辑是"难题给旗舰",但从账单角度,应该按"这次会吐多少字"路由:

关键认知:不是"简单任务用小模型",而是"啰嗦任务用便宜的输出"。 一个写 3000 字的"简单"任务,比一个输出 3 个字的"困难"任务,贵得多。你的路由器该看预期输出长度,不是看任务智商。

flowchart TD
    Q["新请求进来"] --> R{"预期输出长度?"}
    R -->|"长输出<br/>写文/改写/生成" --> A["GLM-4.6 / DeepSeek-V3<br/>输出价 ≈ Sonnet 的 1/10"]
    R -->|"中输出<br/>结构化抽取/摘要" --> B["Haiku 4.5 / GPT-4.1-mini<br/>输出价低且够用"]
    R -->|"短输出<br/>判定/分类/路由" --> C["任一廉价模型<br/>输出本就没几token"]
    R -->|"真·硬推理<br/>低频关键决策" --> D["旗舰/推理模型<br/>但严控调用次数"]
    A --> S["省 80%+"]
    B --> S
    C --> S
    D --> S
    classDef cheap fill:#e8f5e9,stroke:#2e7d32
    classDef warn fill:#ffebee,stroke:#c62828
    classDef save fill:#fff3e0,stroke:#ef6c00
    class A,B,C cheap
    class D warn
    class S save

四、一个端到端省钱案例:API 调用降 72%

某独立开发者做"合同条款抽取" SaaS,月调用量 50 万次,原本用 Claude Sonnet 全量重写:

套用本篇五招:

  1. Prefill { 开头,砍掉开头废话(省 ~30 token/次)
  2. 只输出 JSON 字段值,删除"解释"字段(输出 2,500 → 800)
  3. stop sequence 截断尾部
  4. 关掉 CoT(本来抽取就不该思考)
  5. 路由到 GLM-4.6(输出价约为 Sonnet 1/10),关键页仍走 Sonnet 兜底

优化后每次输出降到 ~600 token,且走便宜模型:

省下的 1.7 万刀/月,就是这个"输出端"认知差折现。


五、信息差总结:你以为的省钱 vs 别人知道的省钱

维度 90% 的人在做的 懂输出价差的人在做的
优化焦点 死磕输入 prompt 长度 死磕输出 token 数量
心智模型 "输入长=贵" "输出长=贵 5 倍"
改写代码 让模型重写整文件 要 unified diff
结构化 反复强调"返回 JSON" prefill { + stop seq
推理 链路里随处 CoT 关键处才推理,且知 thinking 算输出
模型路由 按任务难度选 按预期输出长度选
推理模型 "智能就用 o3" 知道 thinking token 按 output 计费

核心一句话:输入是成本,输出是利润(对厂商)/ 账单(对你)。 同样省 1000 token,省在输出侧的收益是输入侧的 4–5 倍。


六、行动指南:今天就能做的五件事

  1. 打开你的 token 用量后台,看 input/output 占比。如果输出占比 >60% 而你从没优化过输出——恭喜,找到了金矿。
  2. 把所有"让模型重写"的调用改成 diff / patch 模式,Aider、Cline 都支持,后端 API 自己加 prompt 约束即可。
  3. 给所有 JSON 返回加 prefill + stop_sequences,先把开头废话和结尾发挥全省了。
  4. 审计链路里的 Chain-of-Thought,生产高频路径一律改成"只输出结果"。
  5. 改造你的路由器:加一个"预期输出长度"字段,长输出任务直接走 GLM-4.6 / DeepSeek 这类输出价地板的模型,旗舰只留作短输出的硬推理兜底。

做完这五步,回到后台再看一次 input/output 占比和总账单——你会看到 output 那一栏断崖式下降。


参考来源


本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入