本文目录

引言

随着大语言模型(LLM)应用的深入,长对话场景变得越来越普遍。无论是智能客服、知识问答还是复杂任务规划,对话轮次往往会轻易突破模型的上下文窗口。如果强行把所有历史记录塞进 prompt,轻则消耗 token 成本飙升、响应变慢,重则模型因信息过载而丢掉关键上下文,甚至产生幻觉。

LangChain 作为 LLM 应用开发领域的核心框架,提供了一套灵活的中间件机制来处理这类问题。其中,SummarizationMiddleware 专为对话历史摘要设计,它能智能地对过长对话进行压缩,保留核心语义,在成本、性能与回答质量之间取得平衡。

本文将深入剖析 SummarizationMiddleware 的原理与使用方式,并结合降低大模型幻觉这一前沿话题,给出工程化的实践思考。

关键词:LangChain,SummarizationMiddleware,对话摘要,上下文管理,大模型幻觉,Token 优化

内容介绍

SummarizationMiddleware 是 LangChain 内置中间件之一,位于 langchain.middleware.builtin 模块下。它的核心作用是在对话流中加入一层“自动压缩”:当对话历史长度超过设定阈值时,自动调用摘要模型或大模型本身生成历史总结,并将总结作为系统消息注入,从而保证后续对话始终在一个可控的上下文窗口内进行。

其工作原理可以概括为:

  1. 阈值设定:开发者可根据模型的最大 token 数设置触发摘要的消息条数或总 token 上限。
  2. 历史分析:中间件在每次新消息到来前,检查当前窗口内的对话历史是否超过阈值。
  3. 摘要生成:一旦超限,中间件会构造一个“总结历史对话”的 prompt,调用指定的 LLM 生成一段摘要。
  4. 上下文替换:将原始冗长的历史消息替换为摘要消息,新消息追加其后,形成一个压缩后的上下文。
  5. 链式处理:该摘要会保留到下一轮,当再次超限时继续参与新的摘要,从而维持一个渐进式的压缩逻辑。

这种设计使得开发者在构建 Agent、RAG 对话等应用时,无需手动编写复杂的上下文管理逻辑,只需配置中间件即可获得智能的重载保护。

代码示例

以下示例展示如何将 SummarizationMiddleware 集成到一个基于 LangChain 的对话链中。

from langchain.agents import create_agent
from langchain.agents.middleware import SummarizationMiddleware

agent = create_agent(
    model="gpt-5.5",
    tools=[your_weather_tool, your_calculator_tool],
    middleware=[
        SummarizationMiddleware(
            model="gpt-5.4-mini",
            trigger=("tokens", 20000),
            keep=("messages", 20),
        ),
    ],
)

在这里插入图片描述

说明:当对话轮次增多,memory 中的内容逐渐累积。一旦历史消息的 token 数接近 max_tokens 且达到 trigger_rounds,中间件自动触发摘要,将历史压缩为一条系统消息,保证后续问答仍在模型的上下文承载范围内。这样既避免了手动截断历史导致的信息丢失,又防止了无限制堆叠带来的成本失控和性能退化。

使用场景

SummarizationMiddleware 在以下场景中能发挥关键作用:

  1. 长时对话系统:如客户服务聊天机器人、个人助理,用户可能持续数小时甚至数天进行断续对话。中间件确保无需人工清理历史,系统可自动维持连贯性。
  2. Agent 多步任务规划:当 Agent 需要执行几十步操作并依赖之前步骤的结果时,历史记录很容易超长。通过摘要技术,Agent 能记住任务脉络而不被细碎的中间输出淹没。
  3. 教育与辅导类应用:答疑场景中,一次对话可能涉及上百个问题。中间件帮助模型始终聚焦于当前知识点的上下文,避免被遥远的无关问题干扰。
  4. 成本控制与延迟优化:在按 token 计费的商业环境中,自动压缩历史能显著降低每一次请求的 token 消耗,同时减少推理延迟,提升用户体验。
  5. 多轮审查与监管追溯:虽然原始历史被压缩,但应用层仍可保留完整对话日志用于审计。中间件只在推理时做压缩,不影响日志完整性。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐