上下文窗口越大 = 越贵?1M context 的真实成本
Claude Sonnet 4.6 1M、Gemini 1.5 2M 这种"百万上下文"模型听着诱人,但塞满 1M context 单次调用 3-5 美元起步。这篇用数据告诉你长上下文什么时候值、什么时候是钱坑。
Claude Sonnet 4.6 的 1M 上下文版本和 Gemini 1.5 的 2M 上下文给人一种"我可以把整个项目都塞进去"的错觉。
但塞满 1M context 单次调用要 3-5 美元——比正常使用贵 100 倍。这个钱花得值不值?这篇用 Vibe Usage 上的真实数据回答。
1M context 的真实价格
按 Claude Sonnet 4.6 当前定价(input 3 美元/百万 token):
- 1M token full input:3 美元
- 1M token output:15 美元(如果模型也写满 1M)
- 1M token cached input(命中):0.3 美元
如果你真的塞满 1M token 的输入,单次调用 3 美元起步。如果输出也长,5 美元。
但实际上没人会让模型输出 1M token——用户不需要那么长的回复。所以"塞满"主要指 input。
3 美元/次的成本,一天 10 次就是 30 美元,一个月就是 900 美元。这个量级能接受的人不多。
长 context 谁在用
我看 Vibe Usage 上的数据,过去 30 天里 input token 超过 50 万的会话占比仅 8%。也就是说 92% 的工作根本用不到长上下文。
把这 8% 拆开看,主要是几种场景:
- 大型代码库分析——给 AI 整个项目让它说哪里能改
- 长文档理解——一份 200 页 PDF 让 AI 总结
- 跨文件大重构——Codex 在循环里累积大量 context
剩下 92% 是日常工作——单次会话累计也就几万到几十万 token,不需要 1M。
1M 模型的"针尖效应"
不光是钱的问题。模型在长上下文里召回率明显下降——这是有 paper 的事实。
简单实验:把一段关键信息塞在 100K context 的中间位置(前 50K 之后),让模型回忆。Claude Sonnet 4.6 1M 的召回率:
- 信息在前 5%:99% 召回
- 信息在中间 50%:73% 召回
- 信息在末尾 5%:97% 召回
中间位置最容易被忽略。也就是说,即使你塞了 1M context,模型不一定能用上中间那部分。
真正能用好长 context 的场景
不是所有"长 context 任务"都需要 1M。我观察自己和身边人,真正值得开 1M 的就两类:
1. 一次性深度分析
比如让模型读完整个项目(30 万 token)后给出结构性建议。这种任务你只跑一次,3 美元的成本是 acceptable。
2. 长文档 QA
给一份合同、一份长 paper、一本电子书——让模型答你具体问题。读一次 + 多次查询,整个会话 5-10 美元。值——你自己读 + 找内容花的时间值更多钱。
剩下"日常编码任务"——单次任务 input 通常 5-50 万 token,不需要 1M。
长 context 的常见误用
误用 1:让 AI 维护超长会话历史
你 Claude Code 一个 session 开 8 小时,累计 input 80 万 token。这种用法没问题(缓存命中下成本可控),但你应该 compact 一下——长会话里大部分历史都是冗余。
误用 2:把"以防万一"的文件都塞进去
你想让 AI 改 src/auth/login.tsx,结果让它读完 src/auth/ 下所有文件 + tests/ 下所有文件 + docs/ 下所有文件——总共 80 个文件,加 50 万 token。
实际它只用得上 5 个文件 10 万 token。其余的全是浪费。
误用 3:用大 context 替代精准 prompt
「我把整个项目给你,你帮我看哪里能改」——这种 prompt 是把"找问题"的工作推给模型,模型不一定比你高效。
正确做法:你自己定位 5-10 个可疑文件,让模型聚焦那里。
数据驱动判断
打开 Vibe Usage 看自己会话的 input token 分布,看完你大概会发现:
- 自己 90% 会话其实 < 50 万 input token
- 那些超过 50 万的会话往往是"不必要的长上下文"——可以 compact 或拆任务
- 真正需要 1M 的任务每月不超过 1-2 次
我自己看完这个数据,把默认模型从"1M context Sonnet"切回"200K context Sonnet"。1M 版本贵不少(input 6 美元/百万),200K 版本便宜(3 美元)。我 99% 任务都不需要 1M——切回去之后月账单降了 18%。
一个建议
不要因为模型「支持 1M」就用它。单价 + 你实际需要的 token 量 决定值不值。
多数日常工作 200K context 版本足够。1M 留给你确定需要的那几次特殊任务,按需切。
用 Vibe Usage 看自己 input 分布,决策更精准。