Skip to content
产品

永不丢失上下文:JieGou 如何处理无限对话长度

LLM 上下文窗口有硬性限制。JieGou 的迭代对话压缩确保您的对话无缝继续——无论运行多久。

JT
JieGou Team
· · 3 分钟阅读

每个 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

这种结构确保模型保留决策意图——而不仅仅是对讨论内容的模糊回忆。

压缩期间会发生什么

当压缩触发时,系统会:

  1. **确定边界。**最近的消息(通常是最后 4-6 次交换)保持完整。该边界之前的所有内容都可以进行压缩。

  2. **生成摘要。**压缩提示指示模型提取决策、待解决问题、行动项和上下文事实。模型阅读较旧的消息并产生结构化摘要。

  3. **替换较旧的消息。**原始消息从活跃上下文中移除,替换为包含摘要的单条系统消息。

  4. **保留引用。**早期消息中提到的文件名、变量名、URL 和其他具体引用在摘要中逐字保留。这防止了模型”忘记”20 条消息前讨论的特定文件路径或端点的常见失败模式。

  5. **按需迭代。**如果对话继续增长,后续压缩更新现有摘要而不是从头创建新摘要。这避免了”摘要的摘要”退化问题。

用户体验

从用户的角度来看,压缩几乎是不可见的。当它发生时:

  • 对话时间线中出现一个小的**“上下文已压缩”**指示器
  • 对话不间断地继续
  • 模型的回复保持连贯和具有上下文感知
  • 之前的消息仍然在 UI 中可见供参考(它们从 LLM 上下文中移除,但不从显示中移除)

不需要用户采取任何操作。没有”开始新对话”的提示。没有手动摘要。

为什么是 80%?

80% 阈值是经过深思熟虑的。它留出足够的空间用于:

  • 压缩摘要本身(消耗令牌)
  • 用户的下一条消息和模型的回复
  • 下一次交换中的任何工具调用或函数输出

触发太早浪费上下文容量。触发太晚可能在模型空间耗尽时生成中途失败。80% 平衡了这些考虑。

适用于每个模型

压缩自动适应模型的上下文窗口。如果您在对话中途从 Claude Sonnet(200K 上下文)切换到 GPT-4o-mini(128K 上下文),系统会重新计算阈值,并可能触发即时压缩以适应较小的窗口。

这意味着您可以:

  • 使用大上下文模型开始对话进行复杂探索
  • 切换到更小、更快的模型进行快速跟进
  • 对话无需手动干预即可继续

压缩 + 编程 Agent

编程 Agent 工作流步骤使用相同的压缩系统。需要 30 次以上文件读取、编辑和测试的复杂编程任务从压缩中获益巨大——agent 保留其目标和进展,即使对话远远超过任何模型的原始上下文限制。

压缩 + 会话分支

当您分支一个对话时,分支继承当前的压缩状态。这意味着您可以从深度压缩的对话中分支,两个分支都以相同的上下文基础开始。

可用性

迭代对话压缩在所有计划上可用,包括免费层。它适用于所有支持的 LLM 供应商——Anthropic、OpenAI、Google 以及任何 BYOK 配置。

无需配置。在需要时自动激活。

自己试试

开始一个长对话。粘贴文档。提出后续问题。突破您通常在单次会话中尝试的极限。JieGou 会保持对话活跃。

开始对话

conversation compaction context-window long-conversations
分享这篇文章

喜欢这篇文章吗?

在您的信箱中获取工作流程技巧、产品更新和自动化指南。

No spam. Unsubscribe anytime.