Agent开发系列(四)-如何做记忆压缩?

【AI Agent工程实战系列③】Agent的记忆系统怎么设计 摘要: AI Agent的记忆系统设计直接影响其性能,简单的对话追加方式会导致短期记忆失效、记忆层次混乱和上下文窗口溢出等问题。本文提出四层记忆架构(短期记忆、工作记忆、用户画像、知识库),并重点优化短期记忆管理。通过滑动窗口+智能压缩策略,在Token预算内动态保留关键信息:当Token接近上限时,先用LLM生成早期对话摘要,而非直接丢弃。这种架构避免了无脑堆叠对话的问题,显著提升Agent的长期交互能力。 阅读详情

目录

一、为什么需要记忆压缩?

二、记忆压缩的分类

2.1 按照压缩方法分类

2.1.1 规则压缩类

2.1.2 智能抽取类

2.1.3 生成式摘要类

2.2 按照压缩对象分类

2.3 按照压缩触发时机分类

三、压缩质量评估指标

四、压缩选型决策矩阵


一、为什么需要记忆压缩?

Agent系统在长期运行过程中会积累大量记忆信息,这些信息如果全部保留会导致存储成本急剧上升、检索效率下降、上下文窗口污染等问题。记忆压缩与摘要是解决这些问题的核心技术,其本质是在信息保留量与存储成本之间寻求平衡。

记忆压缩的核心目标有三个层面。第一,控制存储规模。通过压缩冗余信息,将长期积累的记忆压缩到可控范围内,避免存储线性增长。第二,提升检索效率。压缩后的摘要信息更加精炼,便于快速匹配和返回,减少无效计算。第三,保持关键信息。好的压缩策略能够保留记忆的核心语义和关键细节,确保Agent决策质量不因压缩而显著下降。

二、记忆压缩的分类

2.1 按照压缩方法分类

分类维度压缩类型核心技术是否依赖LLM实现复杂度压缩效果
规则压缩固定长度截断条目数量限制、字符数限制❌ 否⭐ 低适中
规则压缩时间衰减压缩基于时间的权重衰减❌ 否⭐ 低一般
规则压缩重要性分层优先级Tag + 分层保留策略❌ 否⭐ 低良好
抽取压缩关键信息抽取NER、关键词提取、事件抽取⚠️ 可选⭐⭐ 中良好
抽取压缩语义去重合并向量相似度计算 + 聚类⚠️ 可选⭐⭐ 中优秀
生成压缩多粒度摘要LLM生成不同长度摘要✅ 是⭐⭐⭐ 高优秀
生成压缩增量摘要多记忆递归合并生成✅ 是⭐⭐⭐ 高优秀
选择压缩访问频率加权统计访问频率 + 重要性计算❌ 否⭐⭐ 中良好
选择压缩检索反馈压缩基于检索命中率调整⚠️ 可选⭐⭐⭐ 高优秀
2.1.1 规则压缩类
压缩策略工作原理适用场景优点缺点
固定长度截断保留最近N条或前N字符,超出部分丢弃资源受限场景、简单对话系统实现简单、性能稳定、可预测可能丢失重要历史信息、无法智能判断价值
时间衰减压缩按时间逐步降低记忆权重,超阈值后淘汰需要时序追溯的系统自然淘汰过期信息、与人类记忆曲线吻合重要信息可能随时间被错误淘汰
重要性分层压缩为记忆打Tag分层,不同层级不同压缩策略知识密集型应用保留核心知识、层次清晰需要预先定义重要性标准
LFU-K淘汰策略保留频率最高的K条记忆,其余压缩高频访问场景保证热点记忆、简单高效可能忽略新产生的临时重要信息
FIFO窗口压缩固定大小窗口,新进旧出实时性要求高的场景实现简单、内存可控完全忽略历史积累
2.1.2 智能抽取类
压缩策略工作原理适用场景优点缺点
关键信息抽取提取实体、事件、结论等结构化信息知识密集型对话保留核心语义、结构化便于检索抽取质量依赖NLP模型能力
语义去重合并计算记忆向量相似度,合并相似记忆重复内容多的场景消除冗余、保留多样性计算开销大、相似度阈值难调
主题聚类压缩按主题聚类后分别提取摘要多话题混合记忆保留话题多样性、便于按话题检索主题边界可能模糊
事件链压缩提取因果链条,压缩中间状态任务执行过程记忆保留决策逻辑、压缩率高事件关系抽取复杂
2.1.3 生成式摘要类
压缩策略工作原理适用场景优点缺点
固定粒度摘要按预设长度生成摘要(百字/千字)对话总结、报告生成输出可控、质量稳定无法自适应内容复杂度
自适应压缩摘要动态调整压缩比直到目标比例存储空间敏感的端侧设备自适应压缩、空间可控可能需要多次迭代
增量摘要新记忆与已有摘要合并生成新摘要长期对话系统增量计算效率高、上下文连贯误差可能累积放大
层次化摘要生成多级摘要树(详细→摘要→一句话)多层级检索需求支持多粒度回溯、按需展开构建和维护成本高
查询导向摘要根据潜在查询意图生成针对性摘要RAG增强场景检索命中率高、答案相关性强需要预判查询意图
对话式压缩通过问答对形式保留关键信息知识传承类场景问答形式便于后续回忆信息可能碎片化

2.2 按照压缩对象分类

分类压缩对象实现策略示例
内容压缩文本内容本身摘要生成、关键词提取对话内容压缩为"用户询问退货流程,客服已发送处理链接"
结构压缩元数据结构选择性保留字段只保留时间戳、对话ID、摘要文本
频率压缩重复出现的模式模式抽象、模板化将"用户每次打开APP都看天气"抽象为"习惯性行为"
关系压缩记忆间的关系关系图压缩、核心实体保留保留核心实体及关系,压缩冗余描述
时序压缩时间序列数据关键时间点提取、趋势摘要将一年的每日数据压缩为月度统计

2.3 按照压缩触发时机分类

触发类型触发条件执行时机优点缺点
定时压缩定时任务触发每日/每周固定时间可控、可预测可能影响系统活跃时段
阈值触发存储超限触发达到存储上限时存储可控压缩时机不可预期
访问触发访问时评估压缩记忆被访问时动态适应使用模式实现复杂度高
对话触发新对话开始时开启新对话上下文清理过期上下文可能中断正在进行的任务
主动触发用户指令触发用户手动执行灵活可控需要用户参与
混合触发多条件组合触发多种条件满足时综合考虑多因素配置和维护复杂

三、压缩质量评估指标

评估压缩策略的效果需要从多个维度进行衡量。

评估维度指标名称计算方法理想值
压缩效率压缩比原始大小 / 压缩后大小越高越好
语义保留语义相似度Embedding余弦相似度> 0.85
信息完整度关键信息召回率保留关键信息数 / 总关键信息数> 0.8
检索效果检索命中率相关检索成功次数 / 总检索次数不显著下降
决策质量任务成功率压缩后Agent任务成功率不下降超过5%
计算成本压缩耗时单次压缩平均耗时越低越好

四、压缩选型决策矩阵

需求优先级推荐策略类型核心特点典型场景
资源受限优先规则压缩类实现简单、计算量小嵌入式设备、移动端
语义保留优先生成压缩类压缩质量高、语义完整知识管理、RAG增强
实时性优先规则压缩+增量摘要响应快、增量计算实时对话、在线客服
存储成本优先高压缩比规则压缩比高、可控性强海量日志、长周期存档
检索效果优先语义去重+访问加权热点突出、冗余少高频检索场景
任务完成优先生成式层次摘要多粒度支持、按需展开复杂任务助手
综合平衡混合策略多策略组合取长补短企业级Agent系统

AI Agent记忆重建:从上下文压缩到结构化记忆的工程实践 在AI Agent和对话系统开发中,上下文管理是核心技术挑战之一。传统方法依赖扩大上下文窗口或向量检索,但面临成本高昂和信息过载问题。其原理在于,有效的记忆并非简单回放历史信息,而是基于当前目标动态重建相关上下文。这一技术价值在于显著降低token消耗、提升响应速度,并增强Agent的连续性和个性化能力。应用场景广泛覆盖长对话助手、任务型Agent和多轮交互系统。通过开源项目如LangGraph的状态管理和双网络记忆模型,开发者可以实践上下文压缩与结构化记忆体系,实现从存储到重构的范式转变。 阅读详情

相关推荐

AI Agent记忆管理优化:压缩技术与动态分配实战

记忆管理是构建高效AI系统的核心技术,其核心原理是通过结构化存储和智能检索实现长期上下文保持。在工程实践中,记忆压缩技术和动态token分配策略能显著降低计算成本,其中基于注意力权重的动态分配算法和分层记忆架构是典型解决方案。这些技术在金融对话系统、文档处理等场景中尤为重要,能有效应对上下文窗口限制和记忆衰减问题。测试数据显示,合理的记忆压缩可在40%压缩率下保持92%的关键信息完整性,而动态token分配可使系统响应速度提升28%。对于开发者而言,掌握TF-IDF关键词提取、语义嵌入聚类等技术组合,配合实

weixin_29090677的博客 330

【Agent 学习日记】我们来说说 Agent 记忆压缩通常有哪些方法?

我是小假 期待与你的下一次相遇 ~

纵有疾风起 人生不言弃 6737

别再硬编码了!WinCC子画面动态加载的5种C脚本写法对比

本文深入解析WinCC子画面动态加载的5种C脚本实现方案,包括基础加载、路径动态解析、多语言切换、窗口自适应布局和混合架构交互。通过代码示例和场景分析,帮助开发者避免硬编码问题,提升工业自动化系统的交互效率和可维护性。特别推荐路径动态解析方案,有效解决项目路径管理的痛点。

weixin_29008691的博客 476

Agent 记忆压缩:上下文省下来,事实不能压没了

Agent 记忆压缩要分层保留短期窗口、任务状态、长期事实和证据引用,并用结构化输出防止事实漂移。上下文可以省,事实不能压没。记忆压缩越谨慎,Agent 越不容易一本正经地忘事。

2401_87746054的博客 4521

彩虹期权定价

彩虹期权的定价较为复杂,因为它涉及多个标的资产的联合分布。蒙特卡洛模拟(Monte Carlo Simulation):通过模拟多个标的资产价格路径,计算期权的预期支付。解析近似方法:如马尔可夫链近似方法或多变量Black-Scholes公式的扩展。数值方法:如有限差分法或傅里叶变换法,适用于某些特定条件下的多资产期权定价。由于彩虹期权涉及多个标的资产,我们通常使用蒙特卡洛模拟来进行定价。接下来,我将演示如何使用Heston模型和蒙特卡洛模拟方法来定价彩虹期权。

智能科技前沿 1858

从手机到单片机:聊聊ARM Cortex家族那些事,A、R、M系列到底有啥不同?

本文深入解析ARM Cortex家族的A、R、M三大系列处理器,揭示它们在性能、实时响应和能效方面的核心差异。从智能手机到汽车电子和物联网设备,Cortex-A、R、M各司其职,分别应对复杂运算、实时控制和超低功耗场景。通过技术指标对比和典型应用案例,帮助开发者理解如何根据DMIPS/MHz等关键参数选择适合的处理器架构。

weixin_31574149的博客 350

Agent记忆压缩方法

让 LLM 定期把历史记忆总结成短文本。例如原始记忆:用户:我喜欢C++,正在学习机器人后端开发。讨论ROS2通信机制。学习MQTT连接机器人云平台。完成Robot SDK项目,实现TCP通信。压缩后:用户长期目标:- 学习机器人后端开发- 熟悉C++、ROS2、MQTT已有经验:- 开发过Robot SDK- 实现TCP通信和JSON协议。

2301_81350012的博客 393

如何在 R 中执行 Kruskal-Wallis 检验

Kruskal-Wallis 检验用于确定三个或更多独立组的中位数之间是否存在统计学上的显着差异。它被认为是单向方差分析的非参数等效项。本教程介绍了如何在 R 中执行 Kruskal-Wallis 检验。示例:R 中的 Kruskal-Wallis 检验 假设研究人员想知道三种不同的肥料是否会导致不同水平的植物生长。他们随机选择 30 种不同的植物并将它们分成三组,每组 10 株,每组施用不同的肥料。在一个月结束时,他们测量每株植物的高度。使用以下步骤执行 Kruskal-Wallis 检验以确定三个组的中

Mrrunsen的博客 3798

agent开发——深入解读短期记忆、长期记忆

其实对话记忆这些在简单的chat_bot场景、work_flow中也是经常用到的,不止局限于agent场景,可以把思路打开。下面我来介绍他们的概念和作用。对话历史是数据底座,短期记忆是逻辑现场,长期记忆是知识资产。

m0_64363449的博客 1297

【AI Agent】Harness Engineering实践

Harness(运行宿主)是围绕 LLM构建的一套确定性工程系统,其核心职责是:承认模型的固有局限,用可控的工程手段逐一弥补,使"强大但不可靠的推理引擎"变成"可信赖的生产级Agent"模型 是发动机——提供原始动力Agent 是驾驶员——做出决策Harness 是道路、地图、护栏、仪表盘、维修站和质检线——确保行驶安全有序没有Harness,模型越强,可能只是更快地制造混乱。

sysu_lluozh 190

基于Matlab的深度学习OFDM系统信号检测

在接收端,我们首先去除循环前缀,然后对接收到的信号进行FFT变换和QAM解调。在通信系统中,正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)是一种常用的调制技术,它可以将高速数据流分成若干个低速子载波进行传输,提高了信道利用率和抗干扰性能。接下来,我们使用训练好的神经网络对QAM调制后的数据进行检测,得到估计的FFT变换结果。深度学习方法可以通过大量的训练数据来学习信号的特征,并具有一定的适应能力,在某些情况下可能能够获得更好的检测性能。

2301_79325657的博客 296

Agent系列——Agent记忆

上篇结尾我挖了个坑:现在的 Agent 是"金鱼记忆",聊完就忘。你想想,一个真助理如果每分钟都忘了你刚说的名字、偏好、任务进度,你还敢用吗?记忆,是 Agent 从"一次性玩具"变成"能长期共事的伙伴"的分水岭。这篇讲清楚几件事:短期记忆怎么攒、长期记忆怎么存、历史太长怎么处理、多人用怎么隔离。我会给你 LangChain 1.x 实测能跑的写法,不是老教程那套过时的 。你记不记得第 4 篇讲过,调 Agent 时参数是 ——那个 就是关键。LangChain 里的 Agent,本质上是在一堆"消息"上

weixin_44753388的博客 445

基于 MATLAB 的 FastICA 算法实现语音信号盲分离

FastICA 算法通过最大化信号的非高斯性,找到独立成分,从而实现信号的分离。这些混合的信号被称为盲源信号,我们希望通过分析混合信号,将它们分离出来以便进行进一步的处理和分析。FastICA 是一种常用的盲源信号分离算法,它基于统计学原理,通过寻找独立成分来实现信号的分离。FastICA(独立成分分析)是一种常用的盲源信号分离算法,在语音和图像处理领域都有广泛的应用。本文将介绍如何使用 MATLAB 实现 FastICA 算法来实现语音信号的盲分离,并提供相应的源代码。FastICA 算法原理。

学习使你进步。 2024

Agno 记忆优化实战:用 Summarize 与自定义策略压缩 Agent 长期记忆

记忆是 Agent 长期会话能力的核心,但无限制累积的用户记忆会迅速膨胀上下文,推高 Token 成本并稀释关键信息。本文基于 agno 仓库 cookbook 中 [optimize_memories](https://link.gitcode.com/i/e6fa3ab788f239a7228a83686c586a06) 目录的两个完整示例,系统讲解如何通过记忆优化策略(Memory Opti

gitblog_00731的博客 1025

K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

🔴 K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

彻底搞懂Agent记忆压缩(附腾讯面经),看这一篇就够了!

面试官:(抬眼冷脸)来,说说 **Agent 记忆压缩通常有哪些方法?

m0_59235245的博客 461

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Agent常见上下文压缩与记忆策略:4 种压缩路线、4 类记忆机制及选型思路

Agent 系统的工程化落地中,有两大瓶颈几乎绕不开:一是 LLM 上下文窗口有限,历史对话越长,可用空间越紧张;二是 Agent 需要"记住"跨会话、跨任务的信息,但记忆不是简单地把所有内容塞进 prompt。我们来看看 Agent 常见的上下文压缩策略与记忆策略,并重点看看不同路线的适用边界和选型红线,供大家一起参考。

m0_59163425的博客 330

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Claude自管理记忆与长期上下文:智能Agent知识追踪与压缩实战

本文系统介绍Claude大模型的自管理记忆与长期上下文机制,涵盖智能Agent知识追踪、记忆压缩、滚动摘要与多层级知识管理等核心技术。通过实战案例与可视化图表,帮助中国AI开发者掌握高效构建长期智能对话与知识管理系统的最佳实践。代码示例# 用法mem.write("用户喜欢被称为小明")mem.edit("小明", "小王")原理:定期将对话历史压缩为摘要,节省上下文空间。代码示例{"role": "user", "content": "我喜欢科幻小说。"},

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1606

Agent 上下文压缩策略:长对话下的记忆裁剪与摘要

长对话下 Agent 需要上下文压缩保持质量。三层记忆架构:工作记忆、摘要记忆、长期记忆。滑动窗口保留最近对话,旧对话压缩为结构化摘要。压缩时提取关键实体和决策,避免信息丢失。Token 消耗从 O(n) 降为 O(k),k 为窗口大小。

好代码自己会说话,烂代码才需要注释来圆谎 7542

ChatGPT VS Claude ,Agent记忆用对话压缩还是RAG按需检索

指的是短期、非持久化记忆,仅在会话启动时注入一次,会话结束后销毁,主要用于让模型适配当前场景(如移动端简化回复格式),不影响长期记忆。,则是长期、可编辑的核心记忆,用于记录用户稳定属性(,如姓名、职业目标、过往经历、项目成果、学习偏好),每次对话都会强制注入。有时是纯语义检索(之前讨论的性能优化方案),有时是纯时间检索(上周的所有对话),有时是复杂组合(三个月内关于 Python 且提到 FastAPI 的讨论)。必须支持存储计算分离,热数据在内存、冷数据在对象存储,按需加载。(不包含助手回复);

ZILLIZ 1472

Agent开发系列(二)-记忆系统的设计

本文提出智能Agent的四层记忆系统设计:工作记忆、短期记忆、长期记忆、永久记忆;并说明了四层记忆的协同机制,包括写入流程、读取策略等

LHW0621的专栏 360

LangChain Summarization中间件:用摘要压缩为Agent记忆做加减法

大语言模型的上下文窗口就像一张工作台,空间有限却要承载所有信息。当对话轮次变多,无关内容堆积,关键指令反而被挤出了视野。如何让Agent既不健忘又不信息过载?答案不是扩大窗口,而是学会遗忘。摘要压缩技术应运而生,它利用LLM将冗长历史提炼为精华笔记,在保留逻辑连贯的同时大幅降低token占用。LangChain提供的Summarization中间件正是这一思路的工程化实现,通过ConversationSummaryBufferMemory管理缓冲与摘要,配合自定义提示词控制保留优先级,还能与向量检索组成双通

weixin_29053073的博客 221

从0到1开发AI Agent记忆模块:基于TencentDB Agent Memory的二次开发指南

TencentDB Agent Memory是一款强大的AI Agent团队级记忆中枢,能够将对话、文档和代码转化为四种可重用的记忆资产(聊天记忆、技能、LLM-Wiki、代码图),实现跨Agent和框架的治理、共享与装备。本指南将带你从0开始,基于TencentDB Agent Memory进行二次开发,打造属于你的AI Agent记忆模块。 ## 一、TencentDB Agent Memo

gitblog_00724的博客 325

压缩完上下文后,Agent 怎么还记得你的开发习惯

本文介绍了Claude代码项目中Memory机制的实现,用于跨任务保存关键信息。Memory分为用户偏好、反馈意见、项目背景和参考线索四类,存储在.memory/目录下的独立Markdown文件中,并通过MEMORY.md目录索引。Agent通过轻量模型调用选择相关记忆加载,每次最多读取5条。记忆提取发生在消息压缩前,以保留原始完整信息。当记忆文件达到10条时会触发合并整理,但存在信息失真的风险。该机制适合保存工作偏好和稳定项目背景,高风险信息仍需版本控制。测试显示记忆能跨会话保留并影响后续任务执行。下篇将

2301_81530281的博客 685

Agent Memory:短期记忆、长期记忆、用户画像与上下文压缩

前面我们已经学习了 Prompt、结构化输出、Tool Calling、ReAct,以及 Workflow 和 Agent 的边界。做到这一步,很多同学会发现一个很实际的问题:为什么用户刚说过的信息,Agent 过几轮就“忘了”?为什么同一个用户第二次进来,Agent 又像第一次认识他一样?答案是:模型本身并不会自动记住用户。每次调用大模型 API,本质上都是一次相对独立的请求。所谓“记忆”,通常是我们的后端系统保存、筛选、压缩并重新注入上下文的结果。什么是短期记忆、长期记忆;

2401_88139521的博客 718

大厂 Agent 面试|Agent 记忆压缩有哪些方案?解决长上下文爆炸问题

Agent 多轮对话时,短时记忆会不断累积,上下文越来越长,带来成本飙升、模型遗忘前置信息、响应变慢等问题。记忆压缩就是用来精简历史会话,在尽量保留关键信息的前提下减少 token 消耗。本文梳理工程上主流的记忆压缩方法,对比各自优缺点和落地场景。

2501_93406832的博客 418
上一篇: Agent开发系列(三)-记忆检索策略
下一篇: Agent开发系列(五)-Agent中如何建设个性化记忆?
morning_judger
博客等级 码龄16年 403粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

morning_judger

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值