完整对话记录与历史摘要怎么选:先保住需要追溯的细节
比较继续发送完整对话和压缩历史的适用条件,说明摘要会丢失什么,以及怎样用旧任务中的细节检查上下文是否仍然可用。
怎样选择更合适
后续任务需要逐字引用或重查早期决定时,应保留原始记录供检索;只需要延续目标和关键约定时,可以评估历史摘要。摘要能够缩短输入,却可能丢掉否定条件或来源。也可以把短摘要与可查原文组合使用,不必在“永远全传”和“只剩摘要”之间固定选择。
保存对话状态不代表每次都无成本
OpenAI 的对话状态说明区分了维护请求历史的方式,相关输入仍受所用模型上下文限制。长会话继续累积时,需要核对实际送入模型的内容;服务保留了会话,不等于所有早期细节都完整地参与当前回答。
压缩机制的具体实现也不相同。API 提供的 compaction 不能简单等同于自己写的一段可读摘要,接口支持和保留内容需要查相应说明。比较时先明确使用的是哪一种方法,不把不同机制的演示结果混为同一件事。
用早期约定检查摘要是否漏掉限定
取一段允许使用的长对话,在早期放入真实需要遵守的条件,例如禁止改动某个文件。分别用完整历史与摘要继续同一个任务,检查后续操作是否仍遵守条件。摘要里应保留决定的适用范围,不能只写成一句宽泛目标。
另加一个需要回看原句的问题,检查摘要方案是否能找到原文,而不是补写近似表述。若无法回查,就不应让它承担逐字引用任务。测试只说明保留了哪些信息,不能因对话变短就推定回答质量一定提升。
更新摘要时保留可恢复的原记录
摘要应注明覆盖到哪一轮,并在重要约定变更时更新。原始资料继续保存到可访问的位置,防止一次错误摘要覆盖唯一记录。维护时需要关注过期约定和新条件冲突,而不是反复把摘要越写越短。
记录输入消耗与完成任务的情况,再判断是否值得压缩。旧对话含无关内容时,重开任务并提供必要资料也可作为参照。本文未测试任何平台的长期记忆效果,提供的是同条件检查方法,不能替代所用接口的上下文说明。
核对来源
以下资料用于核对概念和方法。文中的示例与测试范围分别注明,实际使用时请核对所用工具的版本。