当前位置:首页 dynamics 正文

Claude Code上下文的正确处理方式:避免会话越长、模型越「蠢」

2026-04-16


今天,我们为 /usage 命令推出了一项全新更新,旨在帮助你更清晰地了解自己在 Claude Code 中的使用情况。这个决定的背后,是我们近期与用户进行的多次深入交流。


在这些交流中,我们反复听到了一个现象:大家在管理会话时的习惯可谓是五花八门。尤其是最近 Claude Code 将上下文窗口(Context Window)升级到了 100 万大关,这种差异就更明显了。


你是习惯在终端里只保持一两个开着的会话?还是每次输入提示词都重新开个新会话?你通常在什么时候会用到压缩(Compact)、回溯(Rewind)或者子智能体(Subagents)?又是什么原因导致了一次糟糕的压缩呢?


这里头其实大有学问。这些看似不起眼的细节,极大地影响着你使用 Claude Code 的体验。而这一切的核心,都归结于一件事:如何管理你的上下文窗口。


快速科普:上下文、上下文压缩与上下文衰减


想象一下,你刚刚让 Claude 帮你做了一件事,并且它已经完成了。现在,你的上下文里已经塞进了一些信息(比如工具调用、工具的输出结果、你给的指令)。


接下来该怎么做?你可能会惊讶地发现,自己竟然有这么多种选择:


· 继续(Continue)—在同一个会话里,直接发送下一条消息


· 回溯(/rewind 或连按两次 Esc 键)—时光倒流,退回到之前的一条消息,从那里重新开始尝试


· 清空(/clear)—开启一个全新的会话,通常带上你从刚才对话中提炼出的简短总结


· 压缩(Compact)—把目前的对话做个总结,然后在这个总结的基础上继续干活


· 子智能体(Subagents)—把下一阶段的工作委派给另一个拥有自己干净上下文的 AI 智能体(AI Agent),并且只把它最终的工作结果拉取回来


虽然直接「继续」是最顺理成章的反应,但其他四个选项的设定,正是为了帮你更好地管理你的上下文。


上下文压缩 vs 全新会话


当一个会话变得越来越长时,你有两种方法可以给它「减负」:使用 /compact(压缩)或者 /clear(清空并从头开始)。这两个操作听起来挺像,但实际表现大相径庭。


压缩(Compact) 是让模型把到目前为止的对话总结一下,然后用这份摘要替换掉冗长的历史记录。这个过程是「有损」的,意味着你把决定「什么内容重要」的权力交给了 Claude。


好处是你什么都不用写,而且 Claude 在保留重要的经验教训或文件记录时,可能比你想得更周到。你也可以通过给它下达指令来掌控压缩的方向(比如:/compact 将重点放在身份验证模块的重构上,丢掉那些关于测试调试的内容)。


子智能体也是一种管理上下文的绝佳手段。当你提前预知某一项工作会产生大量「阅后即焚」(以后再也用不上)的中间结果时,这招特别管用。


当 Claude 通过智能体工具(Agent tool)衍生出一个子智能体时,这个小家伙会获得一个完全崭新的上下文窗口。它可以在里面肆意折腾,做多少工作都行。等到大功告成,它会把结果提炼出来,只把最终的报告交还给「父级」Claude。


我们判断是否该用子智能体的「灵魂拷问」是:以后我还需要看这些工具运行的详细输出吗,还是我只想要一个最终结论?


虽然 Claude Code 会在背后自动调用子智能体,但有时候你也可以非常明确地指挥它。比如,你可以对它说:


·「派个子智能体去,根据下面这份规范文件,验证一下我们刚才做的工作对不对」


·「派个子智能体去通读一下另一个代码库,总结出它是怎么实现身份验证流程的,然后你自己照猫画虎,在这边也实现一遍」


·「派个子智能体去,根据我的 Git 修改记录,给这个新功能写份说明文档」


总而言之,当 Claude 完成了一轮回答,而你正准备发送一条新消息时,你就站在了一个决策的路口。


我们期望在未来,Claude 能足够聪明,自己帮你打理好这一切。但就目前而言,熟练掌握这些决策,正是你引导 Claude 产出高质量结果的必经之路。