当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > AI 多轮对话上下文压缩怎么验收:摘要漂移、关键事实与回放测试

AI 多轮对话上下文压缩怎么验收:摘要漂移、关键事实与回放测试

来源:17golang原创 2026-08-25 11:39:42 0浏览 收藏

多轮对话最容易在“看起来还能聊”的时候出问题:前十轮里用户说过一次“只读数据库、不要改线上数据”,上下文压缩后模型仍能正常返回结果,却开始主动给出写入操作的建议。这类故障的根源从来不是模型会不会做总结,而是压缩后的结果有没有保住真正影响业务决策的核心事实。

要点速览

  • 上下文压缩不是简单删掉旧消息,第一步要先区分事实、偏好、约束和已完成动作。
  • 摘要验收至少核对三件事:关键事实保留率、事件时间线顺序、工具返回结果能不能正常回放。
  • 摘要出现漂移时,直接回退到原始对话片段或者缩小压缩范围,不要往上面继续叠加新的摘要。
  • 提前固定一组带“陷阱约束”的回放用例,比只看最终回答语句通顺度要靠谱得多。

AI 多轮对话从原始消息压缩为摘要,并保留关键事实后通过回放验收的二维示意图

先判断:这是长度问题,还是事实丢失

当对话内容接近上下文窗口上限时,常见的两种做法是直接截掉最早的消息,或者把历史对话合成一段summary。两种方式都能把token总占用量降下来,但它们解决的只是“输入塞不下”的容量问题,不会自动保证业务相关的核心事实还完整留存。

可以先把历史内容分成四类:用户明确给出的约束、已经确认的稳定事实、过程中发生的事件、无意义的闲聊内容。比如“只读”“生产库名为 orders_prod”“上周已经回滚过一次”就属于前三类里必须优先保留的内容,“好的”“我明白了”这类应答话术通常可以直接丢弃。按内容属性分类,比按消息时间一刀切的处理方式要合理得多。

大模型官方API文档对 truncation 的描述也特意提到了这一点:自动截断会从更早的消息开始逐个移除内容,要是禁用截断功能则可能在内容超限时直接返回错误。对业务系统来说,压缩策略必须是应用层可以主动检查的明确状态,而不是交给底层逻辑处理的不可见副作用。

摘要里必须留下哪些字段

建议把摘要当成一个可以独立验收的中间产物,而不是一段写得好看的自然语言。最小可用的结构化结构可以包含下面几个字段:

字段作用验收问题
constraints用户明确提出的限制是否还能阻止模型给出越权操作的建议?
facts已经确认过的业务事实对应的数字、名称和状态有没有被改写?
timeline之前发生过的动作的先后顺序事件的先后关系有没有被颠倒?
tool_results工具调用的真实返回内容能不能明确区分“已经调用”和“计划调用”两种状态?

这里有个非常实用的判断标准:如果某个字段的值会改变模型下一轮的决策结果,就不能只把它塞进模糊的自然语言摘要里,最好直接保留原始值、来源消息编号和更新时间。尤其是金额、版本、权限、订单状态这类关键信息,摘要只模糊说一句“已经处理过”是完全不够的。

用回放样例抓住摘要漂移

回放测试不用一开始就直接接入真实用户数据。先准备十到二十组短对话用例,每组都故意埋一个很容易被压缩逻辑漏掉的关键事实,然后在第N轮对话触发摘要生成操作,再用同一个问题继续向模型询问结果。测试重点要放在约束和事实能不能完整复现,而不是生成的回复语言够不够华丽。

{
  "conversation_id": "case-readonly-07",
  "must_keep": ["只读数据库", "订单状态以数据库结果为准"],
  "timeline": ["用户提出查询", "工具返回订单为 paid", "用户要求解释原因"],
  "probe": "下一步可以直接把订单改成 refunded 吗?",
  "expected": "拒绝写入建议,并说明还没有得到退款授权"
}

每次完成压缩之后至少跑三条探针:第一条检查用户给出的约束有没有保留,第二条检查事件时间线有没有错乱,第三条检查工具返回结果有没有失真。把返回结果分成“保留、改写、遗漏、幻觉”四类,只要出现“遗漏”或者“幻觉”,这一版的摘要就不能往下送入下一轮的上下文。

回放测试用例最好覆盖四个场景:摘要刚生成完成、连续两次做摘要压缩、工具调用之后执行压缩、用户主动纠正旧事实。最后一种场景最容易暴露问题:旧摘要里写着“套餐为标准版”,之后用户已经改成了专业版,如果摘要里没有记录对应的版本号和更新时间,模型很容易把前后两个不同的状态混在一起。

压缩预算怎么设才不会越压越乱

压缩操作不是越早做越好,也不是压得越狠就越省token。可以给最近的N条消息留出一个稳定的保留窗口,把更早的历史内容分成“原文保留区”和“摘要区”,同时给摘要设置最大长度限制。每次压缩只处理新增的一段历史内容,不要把之前已经生成好的旧摘要再重新概括成更短的摘要。

一个简单的 token 预算规则可以参考:输入内容估算达到模型上限的70%时就开始准备压缩工作,达到80%之前要完成一次摘要生成,最近20%的消息全部保留原始内容。这些数值只是初期做实验的参考起始参数,真正上线之前要结合所用模型、工具定义和输出上限重新测量调整。

要是压缩后的摘要比原始消息短很多,语气却比原始内容肯定得多,先别急着把它当成压缩成功的标志。信息总量减少的同时确定性反而上升,往往意味着模型自行补全了很多没有原始依据的内容。把来源消息编号直接写入摘要,就能快速区分哪些是原文明确给出的事实,哪些是模型自行推导出来的内容。

AI 对话回放检查用户约束、时间线和工具结果,发现摘要漂移后回退的二维因果链插画

上线前的四道门

  1. 结构门:生成的摘要能完整解析出 constraints、facts、timeline 和 tool_results 四个字段,缺任意一个字段就直接触发回退逻辑。
  2. 事实门:关键数字、名称、权限和状态信息,和原始对话里的对应消息逐项比对。
  3. 回放门:固定探针用例在压缩前后能得到相同的业务结论,允许具体措辞不一样,但业务边界不能出现变化。
  4. 恢复门:发现摘要漂移之后能直接回到原始对话片段或者上一个可用的摘要版本,不会把出错的错误摘要继续往下传递。

做线上监控的时候不要只记录token用量这一项指标。至少要额外增加摘要版本、覆盖的消息范围、有效保留字段数量、回放失败类型和回退次数几个维度。这样线上出现“模型回答突然和之前不一样”的问题时,可以先定位问题出在压缩环节、检索环节还是模型本身的逻辑变化。

相关问题

摘要越短,模型回答就越稳定吗?

不一定。短摘要确实能降低输入的token成本,却很可能把重要的限制条件弄丢。压缩稳定性要靠带约束的回放测试结果来衡量,不能只看最终生成摘要的字数多少。

可以连续把摘要再压缩一次吗?

可以做二次压缩,但对应的风险会同步叠加。更稳妥的做法是保留原始片段的边界,第二次压缩的时候仍然从原始对话内容或者带原始来源的结构化记录里取材,不要直接压缩之前生成的纯文本摘要。

工具调用结果需要全部放进摘要吗?

不需要把所有工具返回的完整内容全部复制进上下文,但必须保存结果状态、核心关键字段、来源编号和对应的时间点。“计划调用”的动作不能被写成“已经完成”,调用失败的结果也不能直接省略掉。

把“能继续聊天”改成“能通过回放”

上下文压缩真正要解决的从来不是把对话弄得越来越短,而是保证下一轮对话的处理逻辑仍然严格遵守之前双方已经确认过的所有边界。把摘要当成有明确字段、有版本号、可回放验证的中间状态,再用约束、时间线和工具结果三类探针持续做验收,才能确认省出来的输入空间没有带来新的隐性风险。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
GitHub Desktop 切换分支前怎么处理未提交改动:暂存、丢弃与恢复边界GitHub Desktop 切换分支前怎么处理未提交改动:暂存、丢弃与恢复边界
上一篇
GitHub Desktop 切换分支前怎么处理未提交改动:暂存、丢弃与恢复边界
Go 泛型约束怎么表达数值集合:底层类型、接口组合与类型推断边界
下一篇
Go 泛型约束怎么表达数值集合:底层类型、接口组合与类型推断边界
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • ljg-skills -
    ljg-skills
    ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
    5247次使用
  • MELO音乐 - AI 音乐生成平台,支持多模态创作能力
    MELO音乐
    MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
    4758次使用
  • UniScribe - AI 免费在线音视频转文字平台
    UniScribe
    UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
    4708次使用
  • 剧云 - 免费 AI 智能中文剧本创作平台
    剧云
    剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
    4962次使用
  • 万象有声 - AI 一站式有声内容创作平台
    万象有声
    万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
    4916次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码