作者:互联网 时间: 2026-07-02 09:58:53
用 Claude Code 做开发,上下文管理这块早晚得踩几个坑:聊久了前面的规则就忘了,后台跑着任务不敢随便打断,/clear 和 /compact 分不清手滑就翻车。

这篇把所有和上下文、会话管理相关的命令按功能理清楚,别名、边界、坑点、适用场景全说明白,看完不会再混用。
/clear 的作用就是清空当前会话的聊天记录、工具输出和临时约定,给你一个干净的对话环境。项目里的代码、CLAUDE.md 规则、装过的 Skill、登录状态这些,一概不动,不用担心清个对话把项目搞坏。
/reset、/new 全是它的别名三个命令其实效果一致,都是清空当前会话。不存在"/new 是新建独立会话"的功能,想新开独立会话要用 /branch,后面会讲。
不会杀掉后台任务不用担心清个对话把跑了一半的构建搞挂。ClaudeCode 的后台任务是独立进程托管的,清上下文和跑任务是两套机制,互不影响。
清空了也能找回来不是清了就彻底没了,本地会持久化存储历史记录,用 /resume 命令按会话 ID 就能恢复。
适用场景:任务彻底切换、对话聊乱了 AI 开始丢信息、想刷新一下思考状态,都可以用。
配套的 /resume(别名 /continue)就一句话:专门用来找回历史会话,清错了、想翻旧记录,都靠它。
如果任务还没做完,对话越堆越长,不用直接清空,用 /compact 就行。
它的逻辑很简单:AI 把当前所有对话、日志、文件读取记录压缩成一份结构化摘要,用摘要换掉原来冗长的完整记录,核心信息基本都能保留。
正常会留下技术方案、任务进度、关键参数约定这些重要内容,中间反复试错的过程、冗余的运行日志、被推翻的旧方案细节会被丢掉。
压缩的时候可以告诉它哪些东西要留着,不用每次压缩都一刀切,比如:
/compact 保留讨论的技术方案、当前Bug的复现路径和排查进度,测试日志和试错过程都可以清掉
要注意压缩是不可逆的,原来的对话细节找不回来;但后台运行的任务不会中断,跑任务的时候也能正常压缩。
自动压缩会在上下文接近满载时触发,具体阈值官方没有精确公开。自动压缩是通用化总结,不会区分你什么内容重要,很容易把关键细节给精简没了。所以最好自己盯着点,上下文到六七成的时候手动压一次。
拿不准该清还是该压,先跑两条命令看看状态。
直接显示当前上下文的总使用率,还能拆开看系统提示、文件索引、对话历史、工具输出各占了多少 Token。加 all 参数(/context all)可以展开逐项明细。
我自己的判断标准:
另外它还能帮你定位膨胀原因:如果是日志占得多,压缩就管用;如果是文件索引占得多,就得去优化 .claudeignore,把没用的文件排除掉。
看当前会话一共耗了多少 Token、对应费用、跑了多久、调用了多少次工具。旧版叫 /cost,现在统一成 /usage 了,老命令也还能兼容。
看会话 ID、消息条数、累计消耗、当前工作目录这些基础信息,配合 /resume 恢复会话的时候常用。
分叉和回退这两个功能,用好了从一开始就能避免单条对话越堆越长。
/branch 是真正的"新开一条独立会话"——完整复制当前的全部上下文,生成一条全新的会话,你自己切过去继续操作。
/fork 也是复制上下文,但区别在于:fork 出来的会话会交给后台子袋里去跑,不用你自己切过去。适合把耗时任务甩给后台,主会话留着聊需求。
和 /clear(也就是 /new)最核心的区别:
/clear:在原会话里清空历史,会话 ID 不变,没有新会话产生/branch / /fork:生成新的会话 ID,带着当前所有进度和记录另开一档最常用的场景:后台要跑耗时的构建、回测,就 fork 一个专门跑任务的会话,主会话留着聊需求、改方案,主线上下文不会被一堆日志污染。
/rewind 是回退到历史某一轮对话,那一轮之后的对话记录、文件修改、工具调用全都会丢弃,相当于时光倒流到出错前。
可以指定回退步数,比如 /rewind 3 就直接回退 3 轮,也可以在界面上点对应轮次的按钮定点回退。
适用场景:AI 思路跑偏了、连续试错好几轮都不对、改代码改坏了想整体退回去,都能用。
临时聊其它问题,共享主会话的所有上下文和代码认知,但聊天记录不会写到主会话历史里,主会话的后台任务也完全不受干扰。
适合临时确认个参数、查一段代码,问完就关,不会把主对话拉得很长。
还有几条命令日常也会用到,一起整理在这里。
就是快速打开编辑项目根目录下的 CLAUDE.md 文件,不是什么独立的记忆系统,本质就是个项目级的规则配置文件。
和 /clear、/compact 最大的区别:
/memory 修改的是项目里的实体文件,永久生效,所有新开会话都会自动加载,清多少次会话都不会丢适合把项目技术栈、编码规范、目录约定、常用命令模板、输出风格这些固定规则写进去。别把临时调试参数、单次任务方案往里写,会一直留在所有新会话里,反而添麻烦。
给当前会话改名字。并行会话多的时候特别有用,跑任务的、聊方案的、调 Bug 的各标清楚。
把当前对话导出成纯文本或者 Markdown 文件,重要的方案讨论、调试过程可以导出来备份,或者整理成开发笔记。
交互式展示当前项目的代码变更,对比修改前后的差异,写完代码自查、做评审的时候是核心命令。
进入规划模式,AI 先列技术方案和执行步骤,确认了它再动手写代码,避免上来就瞎写、反复返工。
| 命令 | 核心动作 | 当前任务是否中断 | 历史是否可找回 | 是否影响项目文件 | 生效范围 | 适用时机 |
|---|---|---|---|---|---|---|
/clear(别名 /reset /new) | 清空当前会话对话历史 | 否,后台任务继续运行 | 是,可通过 /resume 恢复 | 完全不影响 | 当前会话 | 切换任务、上下文彻底混乱 |
/resume(别名 /continue) | 恢复指定历史会话 | 无影响 | - | 完全不影响 | 目标历史会话 | 找回清空的旧会话、切换历史对话 |
/compact | 历史浓缩为语义摘要 | 否,继续当前任务 | 否,原始细节丢失 | 完全不影响 | 当前会话 | 同任务继续,上下文快满 |
| 自动压缩 | 系统自动执行通用摘要 | 否 | 否 | 完全不影响 | 当前会话 | 上下文接近填满时自动触发 |
/rewind(别名 /checkpoint /undo) | 回退到指定轮次,丢弃后续 | 否,从断点继续 | 否,后续内容删除 | 同步回退对应轮次的文件修改 | 当前会话 | AI 跑偏,回到正确节点重来 |
/branch | 复制上下文,切换到新会话 | 否,原会话保留 | 是,两条都保留 | 默认共享同一目录,可能冲突 | 全新会话 | 自己切过去并行干活 |
/fork | 复制上下文,交给后台子袋里 | 否,原会话继续 | 是,两条都保留 | 默认共享同一目录,可能冲突 | 后台子袋里 | 把任务甩给后台,主会话不动 |
/btw | 侧边临时聊天,不写主历史 | 否,主线继续 | 关闭后通常无法在会话中直接恢复 | 完全不影响 | 临时侧边窗口 | 临时插问,不想污染主对话 |
/context | 查看上下文使用率与构成 | 无影响 | - | 完全不影响 | 当前会话 | 拿不准该清还是该压时先观测 |
/usage | 查看累计 token 消耗与费用 | 无影响 | - | 完全不影响 | 当前会话 | 评估长对话成本 |
/status | 查看会话基础状态信息 | 无影响 | - | 完全不影响 | 当前会话 | 排查会话问题、获取会话 ID |
/memory | 编辑持久化规则文件 CLAUDE.md | 无影响 | 是,永久保存 | 修改项目内文件 | 整个项目所有会话 | 固化核心规则,重开也不丢 |
/rename | 重命名当前会话 | 无影响 | - | 完全不影响 | 当前会话 | 多会话管理,打标签分类 |
/export | 导出对话为文件 | 无影响 | - | 生成导出文件 | 当前会话 | 沉淀笔记、备份对话 |
/clear 和 /branch原地清空重来用 /clear;带着当前进度另开一条并行干别的用 /branch
/compact 和 /clear继续同一个任务用 /compact;切到完全不相关的新任务用 /clear
/compact 和 /rewind对话长但都是有效内容,想精简一下接着干用 /compact;后面几步走错了,想退回去重来用 /rewind
/btw 和 /branch临时问一两个小问题,问完就完事用 /btw;要展开讨论、改代码,需要留记录用 /branch
/clear 和 /resume想清空当前对话换干净环境用 /clear;想找回之前的旧会话用 /resume
针对"后台跑耗时任务,同时还要聊方案改代码"的场景,这样用上下文基本不会乱:
/fork task-run 分叉一个任务专用会话交给后台,后台任务全放里面跑,主会话保持干净,专门聊需求、理方案。/btw 快速确认,不污染主会话;深度方案讨论、架构设计留在主会话。/context 看占用率,占用率过高的时候手动 /compact,顺便指定好要保留的核心内容。/clear 清空主会话开下一个。重要规则提前写进 CLAUDE.md,清空了也不用重复交代。/rewind 退回去;已经乱了好多轮,直接 /clear 重来反而更快。/rename 给会话打标签,重要讨论用 /export 导出备份,找旧会话用 /resume。任务做完换题了 → /clear
任务没做完,只是对话太长 → /compact
AI 跑偏了,只想退几步重来 → /rewind
想同时干两件事不打架 → /branch 或 /fork
临时插句话不添乱 → /btw
拿不准先看看 → /context
核心规则想永久留着 → 写进 /memory
旧会话想找回来 → /resume