AI 天生反常识坑,窗口长不是解药

我们经常听见某某模型上下文,能装x部《三体》全集。窗口做再大,上下文腐烂都不会消失。新手老手都一样。这篇讲一个所有人都该会但大多数人忽略的基本操作:会话迁移。附可直接复制用的迁移 Prompt,和一个开源 Skill。

也就是说,你的窗口还有一大半空着,AI 已经开始"变质"了。

这篇文章要讲的就是:会话迁移------每个用 AI 的人都应该掌握的基本技能。 甭管你用的是 ChatGPT、Claude、还是什么 Agent,学会在合适的时间把有价值的信息打包、迁移到新会话继续,直接提高你用 AI 的效率和准确率。

先说会话管理

Anthropic 把这个现象叫 Context Rot------上下文腐化。上下文不是越长越好,是越长越乱。模型的注意力被稀释到大量 token 上,性能开始掉。这不是某个模型的锅,是所有 LLM 的通病。

所以问题的核心不是"怎么让 AI 记住更多",而是"怎么管理好每一次会话"。

你的上下文里装了什么

我以前也觉得窗口 200K,空间有的是。但每次对话,上下文里不止是输入和 AI 的回复。以一个典型 Agent 会话为例:

bash 复制代码
总上下文(以 200K 为例)
├── 固定开销(~15-20K)         ← 每轮都在,你控制不了
│   ├── 系统指令
│   ├── 工具定义、技能描述
│   └── 环境信息
├── 半固定(~5-10K)            ← 你写的,每轮都在
│   ├── 人设、偏好
│   └── 项目背景
└── 动态可用(~160-180K)       ← 这才是你真正能用的
    ├── 对话历史
    ├── 文件内容
    └── 工具调用结果            ← 最大隐形杀手

固定开销吃掉 10-15%,半固定再吃 5%。真正属于你的动态空间大概 80-85%。而这部分里,最大杀手不是你打的字------是工具调用的返回结果。搜索一次几百上千 token,读个文件几千 token,改了几轮下来可能就占了三四成空间。普通 Chatbot 没有工具调用,所以压力小很多。但 Agent 用户四五轮下来上下文就能用掉一半。

上下文腐烂

每个会话专注一个方向

我自己以前跟 AI 对话也是想起什么问什么,没想过当前在做什么类型的事。后来发现,跟 AI 协作时基本就在做四类事:

  • 发散找方向 --- 脑暴、探索可能性、收集信息

  • 收敛出结果 --- 确定方案、写文章、改代码

  • 校验纠错 --- 检查结果对不对、改 bug、调整方向

  • 整理迁移 --- 当前阶段做完了、或者上下文太长了,打包换新会话

最常见的情况是一个会话里把这四类事全搅在一起。发散到一半突然开始执行,执行到一半又跳回去探索,中间还穿插查资料。AI 没法自动区分我们在干什么------它把所有内容当同等重要的上下文一起消化,互相干扰,越聊越乱。

更好的方式是:判断当前状态,一个会话专注一个状态。 发散就在发散会话里,执行就在执行会话里。状态切换了就换会话。后续又有新的发散想法?回到那个发散会话继续。每一次会话记录都留着,随时可以回去复查。

Marcel Kleineberg 提过 Token Hygiene 的四级状态模型:Active(正在用)→ Slumbering(暂时不用但保留)→ Hidden(背景信息)→ Trashed(丢弃)。套用到会话管理上:当前在推的是 Active,暂时搁置的是 Slumbering,做完的归档。不同阶段的内容,别混在一个窗口里。

会话管理的四个动作

不管你用什么工具,管理会话就是四类动作:

类别 你要做什么 怎么做
监控 知道当前状态 Agent 用户可以查上下文用量;Chatbot 用户靠体感
清理 开新会话,清掉不需要的 开新对话就是"清理"
保留 把有价值的信息带走 就是迁移------这篇文章的重点
隔离 某些事从一开始就不该进主会话 开多个对话分别处理不同任务

核心原则:先保留,再清理。 先把有价值的东西打包出来,再开新会话。清理之前不保留,信息就丢了。

这样做的好处是:每个会话上下文干净,模型不容易混淆,对话质量高。

但甭管你怎么管理,单次会话终究会遇到上下文过长的问题。这时候就需要迁移。

Prompt 迁移

在 AI 还没完全混乱之前,让它帮你把当前会话状态打包,复制到新会话继续。

根据项目定制你的迁移 Prompt

不同项目关注的东西不一样。写文章关心大纲、素材、风格约束;写代码关心文件路径、技术决策、已解决的报错。

我的做法是直接告诉 AI 当前项目的重点,让它帮我生成迁移 Prompt。比如:

我们在做一个内容生产系统项目,主要涉及选题策划、素材库、飞书集成。帮我写一个会话迁移的 prompt,需要保留:已确认的选题方向、已否决的方案(附原因)、当前的写作进度、关键的技术决策、还没做完的待办。输出简洁条目式,我直接复制到新会话用。

AI 会根据项目特点生成定制化的迁移 Prompt。拿它去执行迁移,按你关心的维度把状态整理出来。每个项目不一样,不需要记固定模板。

通用会话迁移 Prompt

下面这个可以直接复制粘贴,一个字不用改。适用于所有场景------写文章、做策划、写代码、调研分析都行:

bash 复制代码
请帮我整理当前对话的完整状态,我要迁移到新会话继续。

先判断当前阶段:发散探索 / 收敛执行 / 校验纠错。如果同时有多条任务线,分别标注每条所处的阶段。
然后按以下结构输出,只保留确定信息,不猜测不脑补:

## 目标
主要在做什么,要达成什么。如果有多条任务线,分别列出,标出主线

## 已确认的结论
确定了的决策、方向、方案、判断。每条独立写清

## 已否决的方案(附原因)
讨论过但放弃的方向,以及迭代中不认可的角度/写法/方向。写清楚为什么------这特别重要,防止新会话重复踩坑

## 进度
按任务或文件分别标注状态:
- ✅ 已完成的:简要写结果
- 🔧 进行中的:做到哪了
- ⏳ 待办的:还没开始
涉及多个文件时,列出每个文件各自状态

## 关键约束
背景条件、偏好、限制、不能违反的规则

## 具体信息
不写出来就会丢失的值:路径、参数、链接、数据、名称、工具版本、环境依赖等。多个产出文件时说明它们之间的关系

要求:条目式输出,每条自包含。新会话的 AI 看了就能直接接上。

这个 Prompt 背后是经过实战验证的设计。结构来自 Hermes Agent 的上下文压缩模板------Hermes 每次自动压缩会话时都用一套 12 段结构来保留关键信息(目标、约束、已完成的操作、当前状态、待办、关键决策......),经过大量实际使用验证有效。我把它从 12 段精简到 6 段,保留了最有信息密度的部分。

这个迁移 Prompt 已经整理成了一个开源 Skill,可以直接集成到 Claude Code、Hermes 等 Agent 中使用。Skill 里还包含了质量自检清单和常见踩坑点(多任务并行、软性否决、多文件跟踪等)。如果你用的是支持 Skills 的工具,一条命令就能装上:

GitHub: github.com/uwings/session-migration-prompt

"已否决的方案"这条我自己经常漏。只记得留下了什么,忘了标注扔掉了什么,结果新会话又把放弃的方案重新走一遍------这是迁移最常见的踩坑点。不只是技术方案,写作中的方向变更、明确不喜欢的写法,都属于"已否决",一并标注。

时机 :不用等窗口快满了才迁移。微软的研究显示大概 39% 左右就开始衰减。要求高的任务,40-50% 就可以迁移;要求没那么高的,60-70% 也行。多篇研究和用户经验的共识是:70-75% 是一个关键临界点------再早了浪费上下文容量,再晚质量已经退化了。感觉到"开始有点不对劲"就动手。

会话迁移流程

但这里有个关键问题------你得能识别"不对劲"才行。

模型的上下文窗口就像人的工作记忆------塞进来的东西越多越杂,推理质量越差。这不是缺陷,是当前架构的固有特性。所以"上下文管理"不单是 AI 的技术问题,它其实是人和模型之间的注意力协同:思路理清楚了,模型输出自然跟着上去。迁移就是一次整理------不单是给 AI 搬数据,也是帮自己重新捋一遍"我们在干什么、走到哪了、接下来要什么"。

AI 不会告诉你它已经偏了。它的语气从头到尾都很确定。你给的信息越多,按理说它应该越做越好,但有时候反而越做越差。不是你的错觉,多轮对话就是这样:轮数越多,偏移越大,但输出的流畅度和自信度完全不变。

这会产生一种隐蔽的风险:把 AI 的表达流畅当成了自己的认知升级。用久了,回去跟真实的人沟通,会觉得对方"好慢"、"好浅"。但这把尺子本身就是弯的------丈量世界的标准,已经被 AI 的输出风格悄悄重新校准了。如果发现自己跟大多数人越来越聊不到一块儿去,也许可以先想一想,是不是这把尺子的问题。

所以迁移不只是技术操作。你能识别 AI 的输出质量在下降,你才知道什么时候该迁移。识别力不够,迁移再好也用不上。

如何识别,可以参考公众号以前发的 AI认知路径系列的文章。

文档中转

任务跨度大的时候------写系列文章、做系统设计、长期调研------与其靠 Prompt 搬运,不如一开始就让 AI 把关键产出写进文件。对话丢了文件还在。

用 Agent 的时候(Hermes、Claude Code 等):到关键节点,让 AI 把有价值的东西写入文件。对话里的结论、搜集来的素材、阶段性草稿,都让它直接写成本地文件。迁移时新会话只需要读这些文件就能接上。

一种好用的模式是 HANDOFF------开新会话前让 AI 写一份交接文档:当前进度、试了什么、什么有效、什么没用、下一步。新会话只读这个文件就能接着做。跟迁移 Prompt 做的事一样,只不过产出落到了文件里,比复制粘贴更稳。

Claude Code 的创造者 Boris Cherny 的个人做法也值得参考:他不依赖自动压缩------先让 AI 写摘要,自己确认摘要的准确性 ,然后清空上下文重开。由人控制什么被保留,不交给 AI 来猜。这个思路对 Chatbot 用户一样适用:迁移 Prompt 生成的结果,你快速浏览一遍再粘贴,确认没有遗漏。

用 Chatbot 的时候(ChatGPT、Claude 网页版):没有写入文件的能力,手动把关键内容存下来,或者回去翻历史会话记录(想用的时候能找到,就必须做会话的管理)。

什么时候该迁移:一张参考表

我以前也对迁移时机有误解------以为要等上下文快满了才需要......不是。

场景 建议迁移时机 大概轮次 说明
普通对话/问答 50-60% 20-30轮 简单问答没那么敏感,可以撑久一点
写文章(需严谨) 40-50% 10-15轮 工具调用多,中间产物占空间大
代码/Agent任务 40-50% 8-12轮 搜索、读文件、执行命令产生大量中间信息
探索/头脑风暴 60-70% 25-40轮 对精度要求低,乱一点也无所谓

几个常见的理解偏差:

"窗口大就不用迁移了" --- 错。窗口大只是推迟了问题,衰减比例不会变。200K 窗口的 40% 一样会开始变质。行业把窗口从 4K 做到 1M,从来没说过"窗口够大就不用管理上下文"。

"等 AI 开始乱了我再迁移" --- 晚了。AI 混淆之后整理出来的东西已经不可信了。迁移要在 AI 还清醒的时候做。

"迁移就是把对话复制一遍" --- 不是。迁移是提炼,不是搬家。你需要的是决策、进度、待办和约束,不是把几十轮对话原封不动搬过去。搬过去一样会乱。

"结果不对,改 Prompt 就行" --- 不一定。一看到结果不对就反复改 Prompt、反复拉扯,最后越改越乱。更稳妥的做法是先判断问题属于哪一类:

  • 任务没压实 --- 你要的是判断,它给你润色;你要的是能直接发的结果,它给你一段解释。问题不在 Prompt,在你自己没把事说清楚。

  • 信息没给够 --- 方向没完全错,但总是虚、泛、不贴你的场景。你脑子里有前提条件但没说出来。

  • 它在乱补 --- 内容很顺,语气很稳,但里面有些信息你根本没给。最麻烦的不是它乱,是它像真的。

  • 上下文已经脏了 --- 前面纠正过,后面又绕回去了。旧方向、旧要求反复冒出来。你越改越乱套。

前三个靠补条件和卡边界能解决。第四个,唯一的办法就是换会话------也就是迁移。脏了以后继续在原会话里补,常常是在脏水里洗布。

Agent 用户要多留个心眼

上面那张表对普通 Chatbot 够用了。但如果你用的是 Agent(Hermes、Claude Code 等),情况不太一样。

Agent 的特点是:每一轮对话不只是文字,它还会调用工具------读文件、搜代码、执行命令------每一次工具调用都会往上下文里塞大量中间产物。一轮 Agent 对话产生的 token 可能是普通对话的 5-10 倍。

所以 Agent 用户面临的不是"聊了几十轮要不要迁移"的问题,而是"没几轮上下文就快满了"的问题。

Hermes 默认的上下文压缩阈值是 50%------用到一半就开始压。但系统 prompt 本身就要吃掉 10-15% 的窗口空间(persona、memory、skills 列表),再加上前几轮工具调用,可能四五轮就触发压缩了。压缩一次损失一批细节,压缩两三次早期信息就开始混淆。Agent 变得不太可用。

怎么办?两个调整:

第一,调高压缩阈值。 把 50% 调到 75%。让它晚一点压,多留一些空间给实际工作。当然也不能太高(比如 90%),否则压的时候缓冲空间不够,摘要质量反而差。75% 是一个实际跑下来比较稳的值。

第二,迁移时机可以比 Chatbot 晚一点------但前提是有判断能力。 Agent 的输出看得懂、能判断对不对,那即使开始有点偏了,也能及时纠正、及时迁移。但如果自己也不太确定它对不对,那还是早点迁移更安全。迁移时机的早晚,说到底取决于能不能识别 AI 的输出质量在下降。

Claude Code 在这方面体验好一些,部分原因是上下文窗口大,工程化做的不错,部分是子 Agent 机制把中间产物隔离了------主会话只拿到结论,噪声留在子会话里。但底层问题一样,只是推迟了。

Claude Code 的自动压缩有一个值得注意的问题:上下文接近满时(大约 93%)自动触发,用一个独立的 AI 对整个对话做摘要。听起来不错,实际用下来多数用户反馈压缩后"忘记了一切"------压缩是有损的。

其实你也可以主动用子 Agent 来隔离。比如搜索资料的时候,别在主会话里搜------让子 Agent 去搜,搜完只把结论带回来。搜索结果动辄几千上万 token,全塞进主会话很快就满了。用子 Agent 隔离之后,主会话的上下文压力小很多,能多跑好几轮。

不只是搜索。任何会产生大量中间产物的操作------批量文件读取、代码分析、数据整理------都可以丢给子 Agent。主会话只拿结论。而且子 Agent 在干净的上下文里工作,没有主会话的历史干扰,搜索和分析结果反而更客观。


会话管理是预防,Prompt 迁移是急救(现在算是基本操作了),文档中转是长期保险。迁移不是搬家,是提炼。 从一大堆对话里提炼出决策、进度、待办和约束,用干净的上下文接着推。

会话迁移这件事,不是什么高级技巧。它是每个用 AI 的人都应该知道、也应该会做的事。行业一直在把窗口做大来推迟问题,但窗口再大,上下文腐烂也不会消失。学会管理你的会话,在合适的时间迁移,这是你能为自己做的最实际的事。

最后说一句不那么舒服的话:AI 用久了,很容易觉得自己变强了。有时候确实变强了。也有时候,只是把 AI 的表达流畅当成了自己的认知升级。它替你说了、替你总结了、替你论证了,你把这些当成了自己的。拿着一把被 AI 重新校准过的尺子去丈量世界,会觉得哪里都偏了------除了你自己。

我现在会时不时停下来想一下:这个判断是我自己想通的,还是 AI 说得太顺我就信了。也说不准每次都能分清。

相关推荐
米小虾2 小时前
AI Agent 工作流设计的五大模式:从简单链路到多智能体协作
人工智能
尺度商业2 小时前
纳思达更名奔图科技,一场品牌与资本市场价值的战略校准
大数据·人工智能·科技
渐儿2 小时前
LangChain 资深开发者完全指南
人工智能
天天代码码天天2 小时前
C# OnnxRuntime 部署 DAViD 表面法线估计
人工智能·david 表面法线估计
墨染天姬2 小时前
【AI】2026年4月开源模型排行榜
人工智能·开源
zhexiao272 小时前
AI提效工具使用实践 Claude Code、NEXT AI DRAW.IO、XREAD
人工智能·draw.io
wangqiaowq2 小时前
RSA2 非对称加密签名
人工智能
踩着两条虫2 小时前
VTJ.PRO 企业级应用开发实战指南
前端·人工智能·低代码·重构·架构
薛定猫AI2 小时前
【深度解析】Graphify 如何为 AI 编程助手构建项目级知识图谱:降低 Token 消耗、提升代码理解效率
人工智能·知识图谱