一个会话从早聊到晚,模型开始”忘了之前说过什么”、响应变慢、花费一路涨——这是上下文窗口被吃满了。窗口上限摆在那里:主流 Claude 模型 20 万 token。长会话管理是必修课,核心动作三个字:压、清、存,外加一条组织原则——脏活外包给子代理。
解决什么问题
上下文吃满的三种症状:
- 模型引用不了早前的约定,开始违反你两小时前定下的规矩;
- 每次响应明显变慢,
/cost读数曲线陡增; - 新文件读不进去,模型表现”变笨”。
背后机制不复杂:多轮对话里,每一轮请求都要携带全部历史上下文,窗口越满,每一轮的固定开销越大——这就是长会话又慢又贵的原因。对应的动作各有分工:/compact 压缩(保留任务、丢细节)、/clear 清空(彻底重开)、claude -c / claude -r 恢复(找回过去的会话)。先建立记账意识,再谈技巧——不知道水位,压和清都是盲动。
环境与版本
- Claude Code 已安装,实测版本【待补:claude —version 输出】。
- 上下文窗口:主流 Claude 模型上限 20 万 token;会话逼近上限时 auto-compact 自动压缩【待补:本机观察的触发阈值与压缩前后 /cost 读数】。
- 会话转录保存在本机
~/.claude/projects/下、按项目启动路径归档【待补:本机实际转录目录与文件名样式】。 - 四个动作速查:
| 动作 | 命令 | 代价 |
|---|---|---|
| 压缩 | /compact,可带保留指令 | 细节摘要化,压掉就回不来 |
| 清空 | /clear | 全部上下文归零,当前会话内找不回 |
| 恢复 | claude -c / claude -r | 无,随时可做 |
| 外包 | Task 工具派子代理 | 中间过程不进主线 |
分步骤:一套可执行的会话管理流程
步骤 1:先看清水位
会话内 /cost 看 token 与花费累计,/status 看版本与账号状态;当前版本还有上下文明细视图可用【待补:/context 或等价命令的可用性与输出样式】。每半天看一眼,形成”水位感”。
步骤 2:该压就压——/compact
> /compact
> /compact 保留所有 API 接口签名、表结构与未完成 TODO,其余可压缩
/compact 把历史对话压成一份摘要后继续工作,可以附加指令指定保留什么。收益最大的是调研阶段堆积的中间输出——几百行日志压成几行要点。但压缩是有损的:被压掉的细节回不来。两个配套习惯:重要约定先落盘再压缩;压缩完让模型复述一遍关键约束(接口签名、表结构),确认还在摘要里再继续干活——十秒钟的检查,省掉半小时返工。
步骤 3:该清就清——/clear
任务切换时直接 /clear,比压缩更彻底:上下文归零,响应立刻回到最快状态。两个前提:清掉的上下文在当前会话里找不回;CLAUDE.md 里的项目记忆不受影响,下一条消息仍会注入——这正是记忆文件该承担的职责。
步骤 4:该存就存——结论落盘
长会话里形成的结论,让 Claude 写进文件:方案文档进 docs/,团队约定进 CLAUDE.md(会话里 #一句话 最快)。切换任务前,直接让它生成交接摘要:
> 把本次会话整理成交接摘要,写入 docs/handoff-login.md,包含:
> 1. 已完成的改动与涉及文件
> 2. 关键决策及原因
> 3. 未完成事项与下一步
> 4. 复现步骤与相关测试命令
落盘之后,/clear 才敢放心按。
步骤 5:找得回来——会话恢复
claude -c # 继续最近一次会话
claude -r # 打开历史会话选择器
昨天关机前的会话、上周某个调试现场,都能从选择器里捞回来接着聊。注意会话按启动时的工作目录归档,“找不到历史”多半是站错了目录。旧会话除了”续聊”还能当资料查:想不起某次怎么修的,claude -r 进去翻记录,比翻聊天记录靠谱。
步骤 6:长任务开始前就设计好
水位管理最省力的是源头:开任务前先切计划模式(Shift+Tab),让模型只读探索、出方案,确认后再动手——避免”边聊边改”堆出无法压缩的混杂上下文;CLAUDE.md 维护到位,新会话不用重复交代背景。设计好的会话,天生短不了。
常见坑
坑一:把 auto-compact 当保险丝。 自动压缩不可控,它不知道哪条约束是命门,压掉了你才发现模型开始违规。主动 /compact 并指定保留项,比被动等压缩稳得多【待补:auto-compact 触发阈值实测】。
坑二:/clear 前不落盘。 “方案细节我们刚才聊得很清楚”——/clear 之后就没有”刚才”了。清空前把结论写进文件,或按步骤 4 留一份交接摘要,新会话直接读。
坑三:一个会话干三件事。 又调研又写码又改配置,三类上下文互相稀释,压缩也无从下手。一个会话一个任务;调研类脏活派子代理,主线只收结论。
坑四:以为历史会话在云端。 转录在本机按项目归档,换机器、清理缓存目录都可能丢。关键产出照旧要进仓库,会话记录只是工作现场,不是档案库。
最终效果
按这套流程跑一天:上午任务 A 收尾,交接摘要写进 docs → /clear → 任务 B 调研(派子代理,主线只收摘要)→ 下午开发全程水位可控,/cost 读数不再陡涨;第二天 claude -c 无缝续接。当会话逼近 20 万 token 上限时,手里有 /compact(带指令)、/clear、落盘、子代理四张牌,而不是被动等 auto-compact 裁决。

相关阅读
- 结论落盘的正确位置:CLAUDE.md 怎么写:项目记忆配置实践。
- 调研脏活外包:Claude Code 子代理:任务拆分与并行实战。
/compact、/clear等命令速查:Claude Code 常用命令速查:日常高频用法。- Claude Code 中文配置指南。