news 2026/10/15 14:27:19

深入理解agent学习笔记(九)—— Agent上下文压缩策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入理解agent学习笔记(九)—— Agent上下文压缩策略

1 上下文压缩策略

1.1 为什么需要压缩:不只是长度问题

前文提示工程、Skills、Agent状态栏都是向上下文新增信息;上下文压缩是对上下文做减法,解决多轮交互上下文膨胀问题,即使窗口未满也需要压缩。 压缩存在两类核心动机:

  1. 资源约束:上下文token窗口存在上限,工具返回结果体量巨大,容易撑满窗口造成任务中断;token数量直接决定API成本与推理延迟。
  2. 提升模型推理质量:大量原始信息混杂在上下文,模型检索关键信息困难。通过LLM做结构化总结,产出精炼知识,模型后续决策可直接使用,无需反复从海量原文提取信息。

底层基础:上下文学习的内在机制更偏向检索而非推理。

1.2 上下文学习的内部机制:检索而非推理

  1. 概念释义:注意力机制擅长查找上下文片段,但单次前向传播中难以自动归纳统计。模型可依靠思维链完成统计,但每次查询都需要重复遍历原文,产生大量思考token。
    • Agent状态栏:新增经代码确定性计算得到的结论;
    • 上下文压缩:替换臃肿原始记录为蒸馏后的结论; 二者属于同一思路,补齐检索引擎缺失的提炼能力,区别在于维护主体(代码/LLM)。
  2. 上下文腐化(Context Rot):上下文并未溢出,但大量无关内容稀释注意力权重,模型找不到关键信息,决策质量静默下降。和上下文溢出不同:溢出=装不下;腐化=装得下但是找不到,也就是“大海捞针”现象。
  3. 设计思路:不要等待模型自主从长文本提炼,主动显式完成知识蒸馏。上下文学习属于临时快速适配,不会修改模型参数,会话结束适配效果消失,和参数训练存在本质差异。

1.3 压缩与KV Cache:看似矛盾,实则互补

KV Cache要求上下文前缀尽量固定,压缩修改历史消息,存在明确工程边界:

  1. 执行时机:两轮API调用之间做预处理,不能在单次API调用中途修改上下文。
  2. 静态内容保护:System Prompt、工具定义保持不变,作为静态前缀持续缓存。
  3. 压缩对象:仅替换历史tool results。替换点之后KV缓存失效,替换点之前缓存保留。
  4. 取舍策略:频繁压缩会反复重建缓存,推荐临近token阈值时批量压缩,不建议每轮压缩。

1.4 六种上下文压缩策略对比

实验任务:追踪OpenAI联合创始人职业状态,限定128K上下文窗口

  1. 无压缩:全部原始工具结果保留。几轮迭代就超出token上限,任务失败。
  2. 非任务感知压缩
    • 独立个体摘要:每条搜索单独生成摘要,信息碎片化,重复内容浪费token;
    • 组合合并摘要:全部结果合并后统一摘要,超长输入会截断,丢失尾部信息; 共性缺陷:缺少语义理解,无法识别信息相关性。
  3. 上下文感知压缩:结合当前查询意图、已有信息定向提炼摘要;跟随任务阶段(信息收集→事实核验→整合)动态调整摘要侧重点,大幅降低token消耗。
  4. 带引用的上下文感知压缩:摘要附带来源URL。正文语义有损压缩,保留溯源索引,支持回溯原文;代价是token开销上升。
  5. 自适应窗口化
    • 阈值触发:token超过窗口80%启动压缩;
    • 批量压缩:触发后一次性压缩全部未处理工具结果;
    • 防重复标记:添加[COMPRESSED]标记,避免重复压缩; 优势:前期完整保留原始信息,保障信息采集阶段的完整性。

1.5 生产级分层压缩机制

生产环境采用分层组合策略,信息的压缩方案匹配信息生命周期;优先级:低成本在前,作为首选;高成本在后,作为兜底。

  1. 工具结果预算控制:大容量工具输出落盘存储,上下文仅放摘要预览;内容冻结,保障缓存一致性。
  2. 噪声直接删除:无价值冗余内容直接删除,不为噪声生成摘要,节约算力。
  3. API层微压缩:服务端删除指定历史工具消息;会触发一次缓存重建,适合临近溢出时一次性执行。
  4. 归档式摘要:逐轮结构化摘要,保留每一轮独立记录,维持任务完整逻辑链路。
  5. 全量LLM压缩(兜底手段):分会话记忆压缩、全量压缩两个阶段;配置熔断机制,防止会话陷入无限压缩循环,持续消耗资源。

1.6 压缩策略四条设计原则

  1. 信息价值非均匀分布:关键决策信息 > 佐证证据 > 噪声(网页导航、广告等)。
  2. 语义完整性:压缩不可丢失主体、时间、事件属性等关键限定信息。
  3. 任务相关性:同一段文本,面向不同任务目标,压缩结果不同。
  4. 压缩即理解:压缩模块需要深层语义理解;压缩产物结构化,支持人工复核。
1.6.1 压缩信息保留优先级
  • 最高优先级(原样保留,禁止摘要):架构决策与关键约束;文件变更清单;验证结果(pass/fail);未解决TODO、回滚笔记;UUID、hash、URL、文件名、端口等标识符。
  • 可压缩内容:工具原始输出,仅保留结论。

1.7 隔离优于压缩:子Agent上下文隔离

压缩属于事后补救,信息已经进入主上下文再精简;更优方案是事前隔离。 主Agent将大文件读取、大范围检索这类会产生海量中间文本的任务委派给独立子Agent。子Agent拥有独立上下文,自主完成探索,仅将简短结论传回主Agent;海量中间数据不进入主上下文,完全不破坏主Agent的KV缓存。

  • 优点:源头避免主上下文膨胀,减少压缩操作;
  • 局限:子Agent无法看到完整主会话上下文,下发任务描述必须自包含、目标清晰;
  • 落地案例:Claude Code Task工具、Deep Research检索子Agent。

核心观点:上下文信息的组织方式,对Agent最终效果的影响,往往超过模型本身能力。 整套上下文工程体系:

  • KV Cache:定义上下文修改底层约束;
  • 提示工程、Agent Skills:静态指令、按需加载领域能力;
  • Agent状态栏:隐式任务状态转为显式元信息;
  • 上下文压缩:解决上下文持续膨胀,把原始数据提炼为高密度结构化知识;
  • 子Agent隔离:源头阻断海量冗余信息进入主上下文。

统一思想:采用显式、工程化的知识管理,主动提炼结构化知识,而不是让模型被动在海量文本检索。契合《苦涩的教训》理念:高效利用算力的通用工程方法具备长期优势。 整套技术属于Harness框架【上下文与工具】模块实现,服务于上下文五组件基础框架。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 14:27:07

KITTI数据集3D目标检测可视化:坐标系变换与点云投影全解析

KITTI数据集在3D目标检测里的地位,基本等同于视觉领域的"Hello World"。入门第一篇聊完怎么下载和解析数据格式之后,这次我打算把可视化这件事彻底讲透。不是教你怎么点一个"可视化按钮",而是把KITTI数据集每一帧背后的四…

作者头像 李华
网站建设 2026/10/15 14:26:52

基于 YOLOv8 + PySide6 的火焰烟雾检测系统

博主介绍 一线CV算法工程师 / 毕设实战派导师 / 踩坑无数但都填平了的老司机 从事计算机视觉与深度学习落地开发多年,主攻目标检测、视频分析、边缘部署方向。做过安防监控、工业质检、智慧交通等多个方向的真实项目,不是只会跑demo的调参侠&#xf…

作者头像 李华
网站建设 2026/10/15 14:26:14

SpringBoot旅游订票系统开发与高并发优化实践

1. 项目概述与核心价值 旅游景点订票系统是当前文旅行业数字化转型的典型应用场景。这个基于SpringBoot的全栈项目,涵盖了从后端API开发到前端交互、数据库设计乃至部署上线的完整生命周期。我曾在多个景区信息化项目中采用类似架构,实测证明这种技术组合…

作者头像 李华
网站建设 2026/10/15 14:25:08

STM32直线倒立摆控制实战:从LQR算法到嵌入式实时部署

简介:本资源是一套基于STM32微控制器实现直线倒立摆动态平衡控制的完整嵌入式工程代码,面向自动化、控制工程与嵌入式系统方向的本科生、研究生及开发者,解决经典非线性控制系统建模、实时算法部署与硬件闭环调试等核心实践问题。压缩包共214…

作者头像 李华
网站建设 2026/10/15 14:24:49

云客服会话数据,怎么做结构化统计和分析?

摘要:云客服会产生大量聊天会话原始数据,如果不做结构化处理,很难提取有效业务信息,本文分享会话数据统计分析的实现方法。从数据采集、清洗、结构化建模、指标定义、技术选型对比到可视化与工程落地,给出可复用的方案…

作者头像 李华
网站建设 2026/10/15 14:23:48

几片晶圆封装无配套产线:小批量订单的封测困局与破局之道

几片晶圆封装无配套产线的行业现象剖析 在半导体封测领域,一个不容忽视的现实是:设计公司或初创团队手中握有“几片晶圆”的流片成果,却往往找不到合适的封装产线来完成后续工序。这种“几片晶圆封装无配套产线”的困境,并非个例&…

作者头像 李华