每个 LLM 都有上下文窗口——一次可以处理的固定令牌数。GPT-4o 上限为 128K。Claude 为 200K。Gemini 为 1M。这些数字听起来很大,但在实践中,带有工具调用、代码块和详细指令的繁忙对话可以在 30-40 次交换中消耗 200K 令牌。
当您撞到墙时,大多数平台会直接失败。对话停止。您从头开始,重新解释花了一小时建立的上下文。这是对话式 AI 中最令人沮丧的体验。
JieGou 通过迭代对话压缩解决了这个问题。
数字说明问题
考虑一个典型的重度用户会话:
- 系统提示:约 2,000 个令牌
- 每条用户消息:约 200 个令牌
- 每条助手回复:约 800 个令牌
- 工具调用和结果:每轮约 500 个令牌
40 次交换后,您大约有 60,000 个令牌。使用 128K 模型,您已经接近 50% 容量。添加几个长文档或代码文件,您会在对话感觉”完成”之前就达到限制。
简单的解决方案——截断旧消息或直接拒绝继续——都会丢失有价值的上下文。
迭代压缩如何工作
JieGou 实时监控每个对话的令牌计数。当使用量超过模型上下文窗口的 80% 时,压缩系统激活。
流程如下:
1. 衡量所有消息的总令牌使用量
2. 如果使用量 > 80% 阈值 → 触发压缩
3. 选择较旧的消息(除最近 N 次交换外的所有内容)
4. 生成所选消息的结构化摘要
5. 用摘要替换所选消息
6. 将摘要作为系统消息注入
7. 使用摘要 + 最近消息继续对话
摘要不是含糊的段落。它是一个具有明确定义部分的结构化文档:
摘要结构
## 关键决策
- 决定使用 PostgreSQL 而非 MongoDB 作为用户存储
- 同意公共 API 使用 REST 而非 GraphQL
## 待解决问题
- 仍需确定搜索结果的缓存策略
- 移动客户端的认证流程待定
## 行动项
- [ ] 根据商定的 ERD 起草数据库模式
- [ ] 使用新测试框架设置 CI 管道
## 上下文
- 正在开发用于库存管理的 B2B SaaS 平台
- 目标发布日期是 2026 年第三季度
- 团队有 4 名工程师,全程使用 TypeScript
这种结构确保模型保留决策和意图——而不仅仅是对讨论内容的模糊回忆。
压缩期间会发生什么
当压缩触发时,系统会:
-
**确定边界。**最近的消息(通常是最后 4-6 次交换)保持完整。该边界之前的所有内容都可以进行压缩。
-
**生成摘要。**压缩提示指示模型提取决策、待解决问题、行动项和上下文事实。模型阅读较旧的消息并产生结构化摘要。
-
**替换较旧的消息。**原始消息从活跃上下文中移除,替换为包含摘要的单条系统消息。
-
**保留引用。**早期消息中提到的文件名、变量名、URL 和其他具体引用在摘要中逐字保留。这防止了模型”忘记”20 条消息前讨论的特定文件路径或端点的常见失败模式。
-
**按需迭代。**如果对话继续增长,后续压缩更新现有摘要而不是从头创建新摘要。这避免了”摘要的摘要”退化问题。
用户体验
从用户的角度来看,压缩几乎是不可见的。当它发生时:
- 对话时间线中出现一个小的**“上下文已压缩”**指示器
- 对话不间断地继续
- 模型的回复保持连贯和具有上下文感知
- 之前的消息仍然在 UI 中可见供参考(它们从 LLM 上下文中移除,但不从显示中移除)
不需要用户采取任何操作。没有”开始新对话”的提示。没有手动摘要。
为什么是 80%?
80% 阈值是经过深思熟虑的。它留出足够的空间用于:
- 压缩摘要本身(消耗令牌)
- 用户的下一条消息和模型的回复
- 下一次交换中的任何工具调用或函数输出
触发太早浪费上下文容量。触发太晚可能在模型空间耗尽时生成中途失败。80% 平衡了这些考虑。
适用于每个模型
压缩自动适应模型的上下文窗口。如果您在对话中途从 Claude Sonnet(200K 上下文)切换到 GPT-4o-mini(128K 上下文),系统会重新计算阈值,并可能触发即时压缩以适应较小的窗口。
这意味着您可以:
- 使用大上下文模型开始对话进行复杂探索
- 切换到更小、更快的模型进行快速跟进
- 对话无需手动干预即可继续
压缩 + 编程 Agent
编程 Agent 工作流步骤使用相同的压缩系统。需要 30 次以上文件读取、编辑和测试的复杂编程任务从压缩中获益巨大——agent 保留其目标和进展,即使对话远远超过任何模型的原始上下文限制。
压缩 + 会话分支
当您分支一个对话时,分支继承当前的压缩状态。这意味着您可以从深度压缩的对话中分支,两个分支都以相同的上下文基础开始。
可用性
迭代对话压缩在所有计划上可用,包括免费层。它适用于所有支持的 LLM 供应商——Anthropic、OpenAI、Google 以及任何 BYOK 配置。
无需配置。在需要时自动激活。
自己试试
开始一个长对话。粘贴文档。提出后续问题。突破您通常在单次会话中尝试的极限。JieGou 会保持对话活跃。