用 AI 的 API 做个长对话应用,第一个月账单往往不高,第二个月开始莫名翻倍。多数时候不是用量涨了,是对话越聊越长:每轮请求都要把之前的全部历史重新发给模型,第 50 轮的账单里,前 49 轮的内容一分不少地重复计费。
上下文越长,单轮成本越高,这不是 bug,是计费规则。token 换算和窗口的账我在以前的文章里算过,这篇说怎么管住这个上下文:裁剪、压缩、缓存、外挂,四个动作都有现成的开关,不用自己造轮子。
先看清楚钱花在哪
多数大模型 API 按输入和输出分别计费,输入是全部对话历史加本轮提问,输出是模型的回答。对话进行到第 50 轮时,输入里躺着 49 轮的历史,每一轮都全额计费。工具调用型应用更夸张:一次搜索返回的网页内容动辄几千 token,塞进历史里就永远跟着你,用完了也不走。
另一个隐形因素是缓存未命中。输入内容变了,缓存就失效,整段历史按原价重新算。所以裁剪上下文这件事有个反直觉的坑:清得太少,缓存照样失效,等于白清。这个后面细说。
裁剪:让旧工具结果自动消失
工具调用多的应用,最该清的是旧工具结果。文件内容、搜索结果这类信息,模型读过一次就完成了使命,留着只是烧钱。
Anthropic 在 API 里做了自动裁剪。开启 context editing 后,API 按时间顺序自动清除最旧的工具结果,原地放一句占位文本告诉模型「这里的内容被删了」。可配的参数有三个:trigger 设触发阈值(比如输入超过 3 万 token 开始清),keep 保留最近几次工具调用不动(默认留 3 次),clear_at_least 设每次至少清多少。
重点说 clear_at_least。Anthropic 文档里专门提醒:清掉的 token 太少,缓存前缀照样失效,得不偿失。合理做法是一次清够一个量级,让缓存失效的成本被后续的低价命中补回来。
DeepSeek 这边没暴露同名参数,但方向一致:新版 V4.1-Flash-1017(10 月 17 日上线,网页端和 API 已同步)官方说明里明确写了,性能提升的同时「缩短了模型的任务运行时间与输出长度」,输出短了,下一轮的历史就短,这是从模型侧帮你控成本。
压缩:超长对话自动摘要
裁剪解决工具结果,压缩解决对话本体。聊了几百轮的会话,让模型把前面内容总结成一段摘要,用摘要替代原文继续聊。
Anthropic 的自动压缩(compaction)默认在上下文到 10 万 token 时触发,用模型生成摘要替换旧历史,摘要提示词可以自定义。这个能力在服务端完成,官方立场是「大多数场景下服务端压缩是管理长对话的首选」。
自己动手做也行:每 20 轮插入一次「请把以上对话总结成 500 字」,然后带着摘要开新会话。效果差点,但任何 API 都能用。
缓存:同样的前缀只算一次全价
裁剪和压缩都是减量,缓存是让重复内容打折。上下文缓存把对话前缀锁在服务端,下一轮请求的前缀没变,就按命中价计费。
各家的价差很大。Kimi 的缓存命中价是原价的一成(K3 输入原价 20 元每百万 token,命中 2 元);DeepSeek 也有缓存命中价,命中与未命中的差价在它的定价页挂着。命中价怎么算、TTL 怎么续,缓存那篇有完整拆解。
关键在保持前缀稳定:system 提示词放最前且不要动态改,历史顺序不要乱动,裁剪动作一次做够。前缀一变,缓存全失效。
外挂:把记忆搬出上下文
有些信息既不能删又不必常驻上下文,搬到外部存储,要用再取。
Anthropic 的 memory tool 是现成方案:模型在一个专门的记忆文件目录里创建、读取、更新文件,跨会话持久保存。你只需要实现文件操作的 handler,注意必须拒绝目录之外的路径,文档里把路径穿越防护单独拎出来说了。更大的规模就是 RAG,检索到的片段按需注入,不用把整个知识库塞进窗口,原理见 Embedding 与向量数据库那篇。
实践里的分工:当前任务的状态放 memory 文件,海量参考资料走 RAG,上下文里只留「正在处理的那一小块」。
四个动作怎么排
我的顺序是:先接缓存(改动最小,立刻生效),再做工具结果裁剪(工具调用多的应用收益最大),然后看对话长度决定要不要自动压缩,最后按需加外挂记忆。
一个提醒:DeepSeek 的 Search 和 Fetch 接口从 2026 年 11 月 1 日开始按次收费(5 元一千次),工具结果会进上下文,接了搜索的应用正好把裁剪一起做了。上下文工程的理念层面我以前写过一篇,这篇是 API 层的具体操作,两篇配合着看。
核对说明
Anthropic 的 context editing 参数(trigger、keep、clear_at_least)、compaction 默认阈值 10 万 token、memory tool 的文件命令与路径防护要求,来自 docs.claude.com 官方文档;DeepSeek V4.1-Flash-1017 的上线信息、输出长度优化说明、Search/Fetch 计费时间与单价来自 api-docs.deepseek.com 官方公告;Kimi 缓存命中价来自 platform.kimi.com 官方文档。检索时间 2026 年 10 月 23 日,价格与参数以各家当日文档为准。