AIGC标识 上下文压缩

上下文压缩

摘要+Spill 层

在已有的有损摘要层之上,再叠加一个 Spill 层:把大工具结果全量落盘并生成定位器,模型只看到摘要或指针,需要细节时再按需 read/grep 取回。两者互不干扰,一个负责“压缩”,一个负责“可找回”。同时补两条规则:先修剪再摘要、系统提示禁止压缩。

为什么需要这个?

大模型上下文窗口有限(比如 128K token),但工具调用(如扫描、爆破、日志)返回的结果可能极大。如果全部塞进上下文:

  • 很快爆窗,模型无法继续推理。
  • 大量无关信息干扰模型注意力。
  • 成本高、速度慢。

摘要层:

  • 把大结果压缩成一段简短的摘要,只保留关键信息。
  • 优点:极大节省 token。
  • 缺点:信息有丢失,细节没了就真没了,模型无法追问原始内容。

Spill层:

  • 全量落盘:原始完整结果保存到文件系统(比如 spill/xxx.json)。
  • 定位器:生成一个简短的标识,比如文件路径、ID、摘要+指针。
  • 模型按需取回:模型上下文里只放定位器(或摘要+定位器)。当模型需要细节时,可以调用 read 读取文件,或用 grep 搜索内容。

配套措施一:pruning 先于摘要

  • pruning(修剪):在摘要之前,先对工具结果做一轮修剪。
  • 修剪什么:去掉明显无关的内容、重复行、噪音、超长堆栈等。
  • 为什么先修剪:
    • 让摘要输入更干净,摘要质量更高。
    • 减少摘要的计算量。
    • 避免摘要被垃圾信息带偏。
  • 顺序:原始结果 → 修剪 → 摘要→ 落盘(Spill)→ 模型看到摘要+定位器。

配套措施二:系统提示禁压缩保护

  • 系统提示(system prompt):定义模型角色、规则、安全边界的那段指令,极其重要。
  • 禁压缩保护:明确标记系统提示不能被 摘要、不能被 Spill 替换、不能被修剪。
  • 原因:一旦系统提示被压缩或丢失,模型可能行为失控、违反安全规则。
  • 做法:在压缩流程中把系统提示加入“保护名单”,原样保留在上下文中。
posted @ 2026-09-19 20:59  MillionMind  阅读(9)  评论(0)    收藏  举报