会话拖得很长,代理开始忘记一小时前谈好的事,接着弹出提示:上下文快用完了。解决办法不是从头重来、丢掉一切,而是压缩。/compact 会把对话历史换成一份摘要,而这份摘要要保留什么,由你决定。本文介绍相关命令、Verboo Code 何时会自动压缩,以及压缩失败时该怎么办。
Verboo Code 里的 /compact 做什么?
它会清除对话历史,并在上下文中留下一份已发生内容的摘要。会话照常继续,项目和代理都不变,只是占用的上下文窗口 token 少得多。
源码中该命令的描述原文是:"Clear conversation history but keep a summary in context. Optional: /compact [instructions for summarization]"。它在非交互模式下也能用,按 Ctrl+O 可以查看完整摘要。
如何查看已经用了多少上下文?
运行 /context。交互会话中会以彩色网格显示当前用量;非交互模式下则以文本输出用量。
/context
压缩前先看一眼。用量只有 20% 时压缩,只是花一次模型调用去总结很少的内容。
如何压缩并指定要保留的内容?
把说明写在命令后面。说明会进入摘要请求,所以摘要会保留你点名的内容,而不是自行取舍。
/compact 保留已修改文件列表、orders 表的新 schema,以及不使用 Redis 的决定
不带说明时,Verboo Code 会先尝试会话记忆压缩,这种方式不支持自定义说明。如果不适用,就退回传统压缩,通过一次模型调用生成摘要。带说明时则直接走传统压缩。实际做法:只要有不能丢的决定或文件名,就写上说明。
| 命令 | 效果 |
|---|---|
/compact | 先尝试会话记忆压缩,不行就用传统摘要 |
/compact <说明> | 传统摘要,按你要求保留的内容生成 |
/clear | 清空对话,不留摘要 |
Verboo Code 何时会自动压缩?
当上下文接近上限且 Auto-compact 处于开启状态时。触发点是模型的有效窗口减去 13,000 个 token 的余量。有效窗口已经扣除了为摘要预留的空间,最多 20,000 个 token。
要开启或关闭,打开 /config 切换 Auto-compact 选项。也可以用环境变量控制:
| 变量 | 效果 |
|---|---|
DISABLE_AUTO_COMPACT | 只关闭自动压缩,手动 /compact 仍可用 |
DISABLE_COMPACT | 关闭所有压缩,包括 /compact 命令 |
CLAUDE_CODE_AUTO_COMPACT_WINDOW | 限制计算所用的窗口大小,让压缩更早发生 |
export DISABLE_AUTO_COMPACT=1
压缩之前可以先运行别的东西吗?
可以。Verboo Code 会触发 PreCompact 和 PostCompact 钩子,前一个钩子会得知本次压缩是 manual 还是 auto。PreCompact 钩子还可以返回额外说明,这些说明会附加在你的说明之后。配置钩子请看 Verboo Code 钩子指南。
/compact 报错怎么办?
源码中会出现三条消息,各有不同的处理方式:
| 消息 | 处理办法 |
|---|---|
Not enough messages to compact. | 对话还太短,继续工作即可,没有可总结的内容 |
Compaction interrupted · This may be due to network issues | 网络故障或响应不完整,再运行一次 /compact |
Conversation too long. Press esc twice to go up a few messages and try again. | 连摘要都放不下。按两次 Esc,回退几条消息再试 |
自动压缩连续失败 3 次后会停止重试,避免在已经超限的会话里白白消耗调用。如果走到这一步,请用 /compact 手动压缩,或用 /clear 重新开始。
什么时候该用 /clear 而不是 /compact?
当下一个任务不依赖上一个任务时。/compact 会在上下文中保留摘要,这份摘要仍然消耗 token,还可能把代理拉回旧话题。/clear 则是干净的开始。
当你能控制代理记住什么,长会话就不再是问题。Verboo Code 在终端里运行这套流程,套餐内 token 不限量:在 verboo.ai 创建账号,安装 CLI,在你的下一次长会话里运行 /compact。



