用途:当多轮对话接近上下文窗口上限(超过约 50% 容量)、长时运行会话、token 成本显著、响应延迟因上下文过大而上升,或需跨多会话管理对话历史时,可使用会话压缩。短对话(少于 10 轮)、需逐字保留每个细节(法律、合规)、单轮或无状态交互、上下文占用低于 30% 时不宜使用。理想场景包括 50 轮以上聊天机器人、AI 代码助手、多会话客服工单、教学辅导和多日协作流程。
主要能力:渐进式压缩按上下文占用设阈值——0-70% 不压缩,70-85% 轻量压缩(去冗余),85-95% 中度压缩(摘要旧消息,保留最近 10-15 轮),95-100% 激进压缩(分层摘要 + 向量库归档)。摘要技术包括抽取式(TF-IDF 选句,无幻觉、2-3x)、生成式(LLM 语义浓缩,5-10x)、分层(摘要的摘要,树状结构,20x+)、滚动式(滑动窗口持续压缩)。基于嵌入的方法使用 RAG:把完整对话存入向量库,仅检索相关片段。另介绍 Anthropic 提示缓存可将缓存内容成本降低约 90%。
使用方式:文档提供 LangChain ConversationSummaryBufferMemory 基础示例、ProgressiveCompressor 渐进压缩类、HierarchicalMemory 分层记忆类、RollingMemory 滚动记忆类,以及结合 ChromaDB 与 OpenAI 嵌入的 RAGMemory 代码。引用模型包括 claude-3-5-sonnet-20241022、claude-3-5-haiku-20241022 等,均需自行配置 api_key;代码中部分方法(如去冗余实现)留空需自行补全。
限制:资料中的压缩比、成本节省、精度损失、延迟提升等均为文档所述数字,未提供独立验证;会话压缩不适用于必须逐字保留的场景;分层摘要存在信息损失累积与多次 LLM 调用的复杂度;RAG 需向量数据库基础设施并引入检索延迟;代码片段不完整,实际部署需自行填充实现。价格以文档列举的 Claude Sonnet 每 1M 输入/输出 token 3/15 美元为参考,其他费用暂未提供。