Summarization摘要压缩 | Middleware 中间件概述 | 产品经理学Langchian

内容纲要

概述

在构建AI智能体(Agent)时,我们经常会遇到一个问题:随着对话的进行,上下文越来越长,占用的token数量不断增长。这不仅会带来成本的快速上升,更重要的是,很多模型都有上下文窗口的限制,一旦超过这个限制,就无法继续处理了。

Summarization中间件就是为了解决这个问题而生的。它的核心思路很直观:当上下文快要超出限制时,自动对历史对话进行摘要压缩,把长篇的对话历史浓缩成简短的摘要,既保留了关键信息,又大幅减少了token消耗。

想象一下,就像我们平时开会做会议纪要一样,把两个小时的会议内容压缩成几页要点,关键信息都在,但篇幅大大减少了。这样,AI智能体就能在有限的上下文窗口内,处理更长、更复杂的对话和任务了。

使用场景

长对话场景

当用户与AI智能体进行长时间、多轮对话时,每轮对话的内容都会累积到上下文中。如果不做任何处理,很快就会超出模型的上下文限制。

多工具调用场景

AI智能体在执行复杂任务时,往往需要调用多个工具,每次工具调用的结果都会添加到上下文中。大量工具调用结果会让上下文快速膨胀。

成本敏感场景

在某些对成本要求较高的场景下,通过摘要压缩减少token消耗,能够有效控制成本。

核心功能需求

触发机制设计

我们需要让系统知道“什么时候开始压缩”。这是一个关键的决策点,因为压缩得太早可能没必要,压缩得太晚可能已经超限了。

在PRD中,我们需要明确以下触发条件的设计思路:

基于上下文窗口比例

当对话占用的token数量达到模型上下文窗口的某个比例时(比如80%),触发摘要压缩。这种方式的优点是自适应不同模型的窗口大小,但需要准确知道模型的上下文窗口限制。

基于绝对token数量

直接设定一个token数量阈值(比如4000 token),超过这个阈值就触发。这种方式更直观,但需要根据不同模型调整。

基于消息数量

当对话消息达到一定数量时(比如30条)触发。这种方式适合消息长度相对稳定的场景。

多条件组合

可以设置多个条件,满足任一条件就触发。比如:token数量超过阈值或者消息数量超过阈值。

产品建议:建议采用多条件组合的方式,更加灵活,能够适应不同的使用场景。同时,需要预留配置界面,让产品经理或运营人员可以根据实际情况调整这些阈值。

保留策略设计

压缩不是全部删除,而是要保留一些关键信息。我们需要明确“压缩后保留什么”。

保留比例控制

可以按上下文窗口的比例来保留(比如保留30%的窗口大小),这样能确保模型还有足够的空间继续对话。

保留token数量

直接指定保留多少个token的上下文。这种方式更精确,但不一定能在不同模型间复用。

保留消息条数

保留最近N条消息(比如最近10条)。这个策略比较简单,适合消息结构清晰的场景。

产品建议:建议采用保留最近N条消息的策略,这样用户能看到最近的对话内容,体验更好。同时,可以根据对话复杂度动态调整保留数量。

摘要生成策略

压缩的核心是生成摘要。我们需要考虑以下几个维度:

摘要模型选择

可以用轻量级的模型来生成摘要(比如GPT-4o-mini),这样成本更低。摘要任务相对简单,不需要太强的模型能力。

摘要前预处理

在生成摘要前,可以先把对话历史修剪到一定长度,避免摘要模型也超限。

摘要提示词

摘要的提示词需要设计好,确保生成的摘要能够准确概括对话的核心内容,不丢失关键信息。

产品建议

  • 默认使用轻量模型做摘要,降低成本
  • 对于高精度要求的场景(如法律、医疗),可以提供选项使用中等规模模型
  • 摘要提示词需要有可配置性,方便后续优化

PRD需求描述

功能需求

FR-1: 自动触发摘要压缩

  • 描述:当对话达到预设的触发条件时,系统自动启动摘要压缩流程
  • 触发条件:支持多种条件(token数量、消息数量、窗口比例)及组合逻辑
  • 优先级:P0(核心功能)

FR-2: 智能保留关键信息

  • 描述:压缩时保留最近的对话内容和关键信息,确保上下文连贯性
  • 保留策略:支持按比例、按数量、按消息条数等多种方式
  • 优先级:P0(核心功能)

FR-3: 摘要生成与替换

  • 描述:使用AI模型生成对话摘要,并用摘要替换历史对话内容
  • 摘要质量:确保摘要准确概括对话核心,不丢失关键信息
  • 优先级:P0(核心功能)

FR-4: 配置管理

  • 描述:提供配置界面,允许产品经理或运营人员调整触发条件和保留策略
  • 配置项:触发阈值、保留数量、摘要模型选择等
  • 优先级:P1

非功能需求

NFR-1: 性能要求

  • 延迟:摘要生成不应显著影响用户体验,建议单次摘要生成时间 < 3秒
  • 并发:支持多用户并发使用摘要功能

NFR-2: 成本控制

  • 摘要成本:使用轻量模型做摘要,摘要成本应控制在主模型调用成本的10%以内
  • 成本监控:提供摘要功能的成本统计,便于成本分析和优化

NFR-3: 可观测性

  • 日志记录:记录每次摘要触发的详细信息(触发原因、压缩前后token数量、摘要生成时间等)
  • 监控指标:摘要触发频率、摘要生成成功率、token节省量等

成本、速度、准确性的平衡

在实际产品设计中,我们经常需要在成本、速度和准确性之间做权衡:

成本优化建议

  • 使用轻量模型:用GPT-4o-mini这类轻量模型做摘要,可以降低50%以上的摘要成本
  • 避免过度触发:触发阈值不能设置得太低,否则频繁摘要反而增加成本
  • 合理设置保留比例:保留比例过高(如50%),token节省效果不明显;建议控制在20%-30%

准确性保障

  • 高精度场景:对于法律、医疗等对准确性要求高的场景,可以使用中等规模模型(如Claude 3 Sonnet),但需要控制预处理长度
  • 触发阈值设置:参考主模型的窗口大小,如果主模型是GPT-4o(8k窗口),触发阈值建议设为6000-7000token,留出安全余量

速度优化

  • 异步处理:可以考虑异步生成摘要,不阻塞主对话流程
  • 缓存机制:对于相似的对话历史,可以考虑缓存摘要结果

使用建议

什么时候应该使用

  1. 长对话场景:用户与AI智能体进行长时间、多轮对话
  2. 多工具调用:任务涉及大量工具调用,工具结果会快速积累
  3. 成本敏感:需要控制token消耗成本

配置建议

  1. 触发阈值:建议设为模型窗口的70%-80%,留出安全余量
  2. 保留策略:建议保留最近10-20条消息,或保留30%的窗口大小
  3. 摘要模型:默认使用轻量模型,特殊场景再考虑升级

注意事项

  1. 避免频繁触发:触发阈值设置过低会导致频繁摘要,可能影响对话连贯性
  2. 关键信息保护:确保压缩过程中不会丢失关键信息,必要时可以调整保留策略
  3. 成本监控:定期查看摘要功能的成本统计,确保在预期范围内

后续优化方向

  1. 智能摘要策略:根据对话内容的重要性,选择性摘要,保留最重要的内容
  2. 多粒度摘要:支持不同粒度的摘要(主题级、对话轮次级等)
  3. 摘要质量评估:提供摘要质量评分,帮助优化摘要效果
  4. 用户自定义:允许用户自定义摘要提示词,适应不同场景需求
滚动至顶部