06. 会话
压缩与回退
会话一长,就会占满模型的上下文窗口。可以把早期轮次压缩掉,给后面的工作留位置;也可以回退到更早的提示,丢掉之后的一切。两种做法都留在同一个本地会话里。
相关命令:/compact [hint]、/context、/rewind(别名 /undo)。
看窗口还剩多少:`/context`
/context需要活动会话。这个视图是即时的(不会排在当前轮后面)。
你会看到分类明细——系统提示、消息、推理与开销、剩余空间——另外还有工具定义、技能列表、MCP 声明的信息行,以及估算的 token 占用。
压缩前看一次 /context,压缩后再看一次。若只要一行更短的 ID / 模型 / 百分比,用 /session-info。
压缩:`/compact`
/compact
/compact keep the auth details/compact 压缩对话历史,给后面的轮次腾出空间。命令后面的可选文字是提示(也叫 context,或压缩说明):告诉 Matcha CLI 要保留什么。
例如:
/compact
/compact keep the auth implementation details
/compact keep the migration plan and the failing test names该命令作用于当前会话。不带提示时,Matcha CLI 自己决定保留什么。带提示时,这条说明会作为 /compact … 排进普通命令管道。
早期消息已经无关、还想在这个会话里继续时,用压缩。最近一轮走错、想把后面的轮次清掉时,用回退。
自动压缩
用量接近上限时,Matcha CLI 也会自己压缩。默认阈值是上下文窗口的 **85%**。触发时会有通知。
在配置里调整:
[session]
auto_compact_threshold_percent = 85按模型覆盖写在 [model.<id>].auto_compact_threshold_percent。分母是该模型的 context_window;百分比是自动压缩开始的时机。
处于计划模式的会话被压缩后,计划模式仍保持开启。
回退:`/rewind`
/rewind
/undo/undo 是同一条命令。
回退会把对话滚回到更早的用户提示,并丢掉之后的轮次。那一轮之后改过的文件仍留在磁盘上。回退不会还原文件。
打开选择器
会话里已有消息时,下面任一方式都可以:
/rewind/undo- 空闲、提示为空时(焦点在提示或滚动记录),**Esc Esc** 间隔不超过 800 ms。第一次 Esc 没有反馈。
你会看到回退点列表——每个用户提示一个。选你想回到的那一轮。若当前轮还在跑,会先让你取消。
回退前确认
**Confirm before rewind** 默认开启(/settings,键 confirm_before_rewind)。每次选择后都会问:
- **Yes**
- **Yes, and don't ask again** — 执行这次回退并关掉该设置
- **No**
该设置关闭时,选中即执行。
回退之后
记录停在你选的那一轮。之后的提示、回复和工具结果会从历史里消失。那些后续轮次改过的文件不会被还原。
用 /btw 旁问不会给主轮加回退点。
你应该看到
| 你执行了 | 结果 |
|---|---|
/context | 本会话的 token 明细 |
/compact keep the API shape | 历史已压缩;提示被采纳 |
| 自动压缩提示 | 窗口用量达到阈值(默认 85%) |
/rewind 或 /undo | 用户轮次选择器 |
| Esc Esc(空闲、提示为空) | 同一个选择器 |
| 确认 **Yes** | 后续轮次已丢;文件不变 |