聊了一个小时,对话 80 轮往上走,ChatGPT 突然开始自相矛盾,或者反问你「哪个文件?」——而那个 PDF 你十分钟前才传上去。回复读起来还是通顺的,但细节对不上,或者直接跳过你开头给的指令。模型没变傻,是这段对话超出 context window 了,ChatGPT 在悄悄丢掉最老的几轮把请求塞进 token 上限里。没有提示横幅,只有回答质量在下降。解决思路就三条:压缩当前对话、删掉冗余附件、或者带着摘要开新窗。
常见原因
按命中率从高到低。
1. 总 token 超过模型的 context window
GPT-5 窗口很大但不是无限。长对话加上大附件会顶到上限,UI 会从最早那几轮开始砍。没有任何提示,只有回答开始走样。
怎么判断:问一句「我这段对话第一条消息说了什么?」如果模型转述的是更近期的内容、或者干脆瞎猜,那早期的轮次已经被砍掉了。
2. 大附件吃掉大部分预算
每个 PDF 或图片上传后都会被转成 token,每一轮都重新发送一次。50 页 PDF 一次能吃掉 30k+ token,留给实际对话的空间就很紧。
怎么判断:数一下对话里的附件。超过两个大文件加一段长对话,几乎都是 context 压力。
3. Custom Instructions 和系统提示占了一大块
Custom Instructions 很长、Project 的系统提示、以及所有 Memory 条目,每一轮都会被前置注入。臃肿的 About You 一不留神就 2-3k token / 请求。
怎么判断:设置 → Personalization → Custom Instructions。任意一栏超过 500 字就在拖累上下文。
4. Memory 是覆盖式的,不会扩展 context
ChatGPT 的 Memory 只是跨对话存几条短事实,单次对话里它并不会变魔术地扩窗口。不少人误以为开了 Memory 就 = 无限上下文,并不是。
怎么判断:在一个对话里把 Memory 关掉(Personalization 里的开关),看行为是否一致。一致就说明 Memory 从头就不是原因。
5. 工具调用(web search、code interpreter)偷偷塞 token
每次工具返回的结果都会追加到 context。一次很长的网页搜索结果、或者 code interpreter 里一个大 DataFrame,能把预算占掉一大半。
怎么判断:数一下对话里的工具调用次数。很多次 web search、或者一次很大的代码输出,几乎都是它们在压预算。
6. Plus 套餐被自动降级到小窗模型
用量上限触发时,Plus 账号有时会被悄悄路由到一个窗口更小的模型。窗口小了,同样的对话就更早开始丢内容。
怎么判断:看顶上的模型选择器。如果显示成「GPT-5 mini」这种 fallback 名字,而不是你最初选的模型,那就是它。
开始前
- 先决定:当前对话是要救回来,还是直接带摘要开新窗更快。
- 删之前先把当前对话里独有的内容存成纯文本,避免误伤。
- 记一下你一开始用的是哪个模型,方便开新窗后对比。
要收集的信息
- 对话大致的轮数和附件数量。
- 现在模型选择器显示的是哪个模型。
- Memory 是否开启、里面有多少条。
- Custom Instructions 总字数(贴到字数统计里数一下)。
- 这个对话是否在某个 Project 里(Project 还会叠一层系统提示)。
- 套餐档位(Free / Plus / Team / Enterprise),以及最近是否撞过用量上限。
一步步修
Step 1: 让模型自己总结当前对话
在同一个对话里发:
帮我把这段对话里所有重要内容编号列出来:
做出的决定、确认过的事实、提到的文件、还没解决的问题。
控制在 300 字以内。
把这段摘要复制出来,它就是开新窗的”种子”。
Step 2: 开新对话,把摘要作为开场
新开一个对话,把摘要作为第一条消息贴进去,加个「上轮对话上下文」的小标题,然后继续你的任务。新窗口、原连贯。
Step 3: 重新上传前先精简附件
如果还得带文件干活,就只重传你真正需要的那几页或几张表。用 PDF 工具抽出关键 5 页,别整本 80 页报告全塞进来。
Step 4: 精简 Custom Instructions 和 Memory
设置 → Personalization。把 Custom Instructions 控制在 300 字以内。在 Manage Memory 里把过期、不再适用的条目删掉。这两笔节省,在以后每个对话里都生效。
Step 5: 长期任务用 Project
跨多次对话的工作,开一个 Project,把参考文件挂在 Project 上,然后在 Project 里聊。每次对话都是新窗,但 Project 文件和 Project 指令是干净继承的。
Step 6: 切到窗口更大的模型重跑
在模型选择器里选 GPT-5(完整版)而不是 mini,或者你套餐里有长上下文版本就用那个。把刚才失败的问题再问一遍,对比一下答案质量。
Step 7: 把复杂任务拆成多个短对话
不要憋一个超长对话,按阶段拆(调研 / 大纲 / 草稿 / 修订),一个阶段一个对话。每个都远低于上限,回答也更锐利。
Verify
- 在新对话里让模型复述一下种子摘要的前 3 条。能复述上就说明 context 健康。
- 把刚才失败的那个问题再问一次。能给出连贯答案,就是窗口的事。
- 精简完 Custom Instructions 后再开一个新对话,确认基线行为有改善。
长期预防
- 把 50 轮对话 / 3 个大附件当作自己的软上限。再多就该总结 + 重启。
- Custom Instructions 控紧,两小段顶天。
- 每月清理一次 Memory,删掉过期条目。
- 调研类工作走 Project,源文件挂一次,不要每次对话都拖进去。
- 写代码时一个 feature 一个对话,不要一周一个长对话。
常见坑
- 以为 Memory 能在单次对话里扩窗口。并不能。
- 每条新消息都重传同一个 PDF。每次都重新算 token。
- 一整坨日志贴进来。砍到相关那 50 行就够。
- 没注意到模型选择器显示成了 fallback 版本。
- 想通过把早期对话再贴一遍来「提醒」模型,反而更费 token。
FAQ
- GPT-5 的 context window 到底多大? 很大但不是无限,UI 里也不会显示具体数字。实务上把 50 轮长对话加附件当上限就够用。
- Memory 会扩大窗口吗? 不会。Memory 是跨对话的小型事实库,不增加单次对话的上下文。
- Project 会给我更多 context 吗? Project 让附件和指令存在对话外,对话本身就不用花 token 装它们,相当于实际可用空间变大。
- 为什么对话变差却没有任何报错? ChatGPT 超容量时是静默截断的,不会有横幅。回答质量下降是唯一信号。
- GPT-5 mini 在长对话里更差吗? 是的,mini 窗口更小。撞了上限被降到 mini 之后,对话会更早开始走样。
- 能不能看到 token 计数? ChatGPT.com 里看不到。只有 API 会按请求暴露 token 用量。