Claude Code 的 1M Context 怎么用:一篇官方文章的读后整理

Claude Code 的 1M Context 怎么用:一篇官方文章的读后整理

最近看了 Anthropic 的一篇官方文章:Using Claude Code: session management and 1M context。一开始我以为这篇会重点讲 1M context 本身,比如到底能塞多少、能不能直接把整个项目一股脑扔进去。结果看完之后发现,文章真正想讲的不是"上下文变大了",而是会话怎么管

这点其实挺好理解。上下文窗口变大,确实能让 Claude Code 持续处理更长的任务,但会话一长,里面也会混进越来越多已经没用的信息。任务换了、方案试错过了、日志看完了,这些东西如果一直留在上下文里,后面继续问的时候反而容易把模型带偏。

所以这篇我不打算按原文顺着翻,而是按"日常怎么用"这个角度,把我觉得最值得留下的几个点重新整理一遍。

1. 官方文章到底在提醒什么

原文里反复在讲一件事:Claude Code 现在上下文更大了,能处理更长的工作流,这当然是好事;但会话不是越长越好,长到一定程度之后,注意力会被历史内容分散,效果会慢慢往下掉。

也就是说,1M context 的价值不是"以后都不用管上下文了",而是给了你更大的操作空间。以前可能稍微做长一点就顶不住,现在能做的事情更多,但前提还是你得知道什么时候继续沿着当前会话走,什么时候应该收一收,甚至直接换一个新 session。

如果只记一句话,我觉得可以记这个:

大上下文让长任务更可行,但不会自动帮你把长任务管好。

2. Claude Code 里这几个动作,最好分清

原文里提到的几个动作,平时其实都能用到:

  • 继续在当前 session 里往下做

  • /rewind 回到前面的某个节点

  • /clear 重新开始一个会话

  • /compact 压缩当前上下文

  • 把一部分工作交给 subagent

这几个动作看起来都像"继续干活",但作用不一样。

我自己读完之后的理解是:

  • continue 适合同一件事接着做

  • /rewind 适合"前面读文件没问题,但后面走偏了"

  • /compact 适合任务没变,但会话已经变长了

  • /clear 适合任务边界已经变了

  • subagent 适合那些中间过程很长、但你最后只关心结论的活

如果平时不刻意区分,最容易出现的情况就是无论什么事都在一个窗口里硬聊。短期看省事,后面会越来越乱。

3. 什么情况下可以继续当前 session

这一点原文讲得比较明确:如果你还在做同一个任务,而且前面的上下文对下一步仍然有帮助,那就没必要重新开。

比如:

  • 还在改同一个模块

  • 刚实现完一段逻辑,接着补测试或文档

  • 前面刚读过的文件、约束、命令输出,下一步还要继续用

这种情况下强行开新会话,反而要重新解释一遍背景,既慢,也容易漏掉刚才已经确认好的信息。

所以问题不在于"会话是不是长",而在于"前面的内容现在还有没有用"。如果还有用,继续当前 session 是合理的。

4. 什么时候应该开新 session

原文里有一句我觉得特别实用:

当你开始一个新任务时,也应该开始一个新的 session。

这句话听着简单,但实际很容易忽略。很多时候我们会在一个会话里连续切任务,比如前面还在调接口,后面顺手去改 README,再往后又开始查另一个 warning。人自己知道已经换题了,但模型看到的还是一整段连续上下文。

下面这些场景,我会更倾向于直接开新会话:

  • 当前任务已经明显结束,后面是另一件事

  • 前面试过不少失败方案,会话里混了很多无效尝试

  • 你已经开始怀疑模型还在受前面旧结论影响

  • 接下来要处理的是另一个子系统,文件和约束都换了一套

新 session 的成本没有想象中高。很多时候只要你在开头写一个简短的交代,把当前目标、涉及文件、关键限制说清楚,效果反而比硬接着聊更稳。

5. 为什么 rewind 常常比"你换个方案再试试"更有用

这一点我觉得是原文里最容易被忽略,但实际特别有用的地方。

假设 Claude 前面已经把相关文件读了,也理解了背景,但后面的实现思路走偏了。这时候最常见的做法是直接补一句:

这个方向不对,换一种方式做。

问题在于,那段错误尝试还在会话里。你虽然口头上纠偏了,但历史上下文没有变干净。

/rewind 的价值就在这里。它不是简单"撤销",而是把会话回到还没走偏的地方,保留前面已经有用的阅读和分析结果,把后面那段错误路径剪掉。这样重新开始,往往比在错误路径上继续补指令更省事。

如果说得再直白一点:

  • 文件已经读对了,方向后来走歪了,用 /rewind

  • 从头到尾都已经聊乱了,直接新开 session

6. /compact/clear 的差别,最好别混着用

这两个命令特别容易混。

/compact 更像是"把当前会话压缩一下,再接着做"。它适合任务本身没变,但上下文已经很长的情况。你还想延续这条主线,只是不想把所有细枝末节都继续背在身上。

比如原文里提到,你可以给 /compact 一点提示,让它在压缩时保留哪条主线,少带哪些无关内容。这个思路挺实用,因为会话一长,最怕的不是信息少,而是重要信息和不重要信息混在一起。

/clear 就不一样了。它更适合任务已经变了,或者你已经不信任当前上下文的时候。这个时候与其让模型在旧会话基础上"尽量忘掉",不如你自己重新起一个头,把新的任务背景交代清楚。

我的理解可以简单归成一句:

  • 任务没变,但会话太长了,用 /compact

  • 任务已经换了,或者上下文已经脏了,用 /clear

7. 原文提到的 autocompact,为什么要小心

文章里还提到一个点:自动 compact 并不总是靠谱,尤其是在会话已经很乱的时候。

这个很好理解。自动压缩本质上还是一次"有损整理"。如果会话里已经塞了很多调试日志、失败方案和临时分支,那压缩时就一定会发生取舍。问题是,模型在上下文本来就有点发散的时候,未必总能替你选对"哪些该留、哪些该丢"。

所以我的感受是:与其等它在最后帮你自动兜底,不如在你自己还清楚主线的时候,主动决定要不要 compact。一旦你自己都已经感觉会话开始发涨,通常就该动手了。

8. subagent 最适合干什么

原文对 subagent 的一个判断标准,我觉得很实用:看这段任务的中间过程你后面还要不要反复参考。

如果你只关心结论,不关心过程,那这类任务通常就适合交给 subagent。

比如:

  • 扫一遍代码库,找某种模式是不是已经存在

  • 对照已有 spec 或需求做检查

  • 跑一轮会产生很多中间输出的分析任务

  • 补文档、整理说明这类相对独立的事情

这样做的好处不是"更高级",而是主会话会干净很多。子任务在自己的上下文里折腾,最后把结果带回来,主线不容易被大量中间输出冲散。

9. 我看完之后,觉得最值得记住的三点

第一,别把 1M context 理解成"以后都不用管上下文了"。它解决的是容量问题,不是信息筛选问题。

第二,任务边界要比会话长度更重要。同一个任务,聊长一点没关系;任务一旦换了,旧上下文留得越多,越容易互相干扰。

第三,很多时候不是模型不会做,而是会话里已经混进了太多早该丢掉的东西。这一点在长时间调试、频繁试错的时候特别明显。

10. 总结

如果只从使用层面看,这篇官方文章想讲的其实很朴素:

  • 同一个任务,能继续就继续

  • 走偏了但前面的阅读还有效,优先考虑 /rewind

  • 任务没变但会话太长了,可以用 /compact

  • 任务换了,就别硬接着聊,直接新开

  • 中间过程很吵、但你只想拿结论的事,交给 subagent

这些东西听起来不复杂,但真到了长任务里,差别会很明显。以前我也会把"上下文大"直接理解成"那就一直聊下去",看完原文之后反而更觉得,大上下文不是让人偷懒的,而是给你更多空间去做取舍。

参考链接

相关推荐
程序员陆业聪2 小时前
同一个 Claude,两种表现:Coding Agent 的六个内部零件
claude
Ztopcloud极拓云视角3 小时前
GPT-6、Claude Opus 4.7、DeepSeek V4同期上线,如何快速搭一个自动选模型的路由网关?
gpt·claude·deepseek
IT 行者4 小时前
软件设计模式会不会是制约大模型编程的障碍?
设计模式·ai编程
百度Geek说5 小时前
读完 Claude Code 源码才发现:Skills、MCP、Rules 的区别,远没有你想的那么大
claude
t***5445 小时前
还有哪些设计模式适合现代C++
开发语言·c++·设计模式
t***5445 小时前
如何在现代C++项目中有效应用这些设计模式
开发语言·c++·设计模式
suke5 小时前
Claude Opus 4.7 来了:代码能力暴涨,还能“看见”更多细节,关键是没涨价
人工智能·ai编程·claude
javaTodo5 小时前
2026 最新 Claude Code 国内上手教程:从安装到第一次跑通,完整流程一次讲清
claude
贵慜_Derek5 小时前
我们能从 DeerFlow 学到哪些优秀的技术架构设计
人工智能·设计模式·架构