· 4 min read
TUI 右下角才显示 60%、70%,自动 compact 突然就触发了——这是用 OpenCode 最高频的困惑。原因不止一个,按可能性从高到低排:
- 给输出 token 预留 buffer:TUI 显示 80% 触发压缩,真正留给"历史"的安全位可能只有 50% 左右。
- Tool calls 占空间:一次
Bash输出几百行、一次大文件读取直接干到 10k+ tokens,这才是隐形杀手。 - Provider 实际限制比标称小:qwen3.7-plus 在 OpenCode 上硬卡 200k(issue #30838),即使模型标称 1M。
- Compaction 循环 bug:issue #29450 报过一句话烧光 200k 的 case,先升级 / 换 provider 再说。
- 手动控制:用
/compact自己把握时机,/compact 50保留最近 50 条消息不压。