讨论了 Agent 内存提取的核心问题:存太少失信息,存太多积累噪声;提出了应该持久化的内容分类(用户偏好、决策与结果、纠正、持久状态)和应该丢弃的瞬时内容。
并非 Agent 看到的一切都值得记住。存得太少,它会忘记真正重要的内容;什么都存,记忆就会充斥噪声,等到检索时,真正有用的信号反而会被淹没。
提取这一步——决定保留什么,并将其提炼为干净、独立且完整的事实——是记忆系统中影响最大、也最容易被忽视的环节。
刚刚发生的一切中,哪些值得保留?这是记忆系统需要回答的第一个问题,也是最重要的问题,但无论偏向哪个极端,都很容易出错。存得太少,Agent 会忘记真正重要的事情;什么都存,记忆就会被噪声填满,因为每一条无关记忆都有可能在错误的时刻被检索出来,淹没真正有用的内容。
关于用户的稳定事实——偏好、背景,以及会在未来会话中反复产生影响的需求。
决策与结果——选择了什么、什么方法有效、什么方法失败,从而避免 Agent 对已经确定的事情反复争论、重新决策。
纠正信息——当人类纠正 Agent 时,这类纠正具有很高的记忆价值:必须牢牢记住。
持久状态——正在进行的工作处于什么状态、Agent 正在跟踪哪些实体,以及任何生命周期超过单轮对话的信息。
临时闲聊、与未来无关的一次性细节,以及到下一次会话时就会过期的内容,都是噪声。克制地不存储这些内容,与认真存储重要信息同样关键——塞满无关碎片的记忆库,其检索效果反而不如精简的记忆库。
好的记忆来自筛选,而不是照单全录。
免费《Agent Memory 快速入门》——用短短几页介绍四类记忆和完整闭环(存储、检索、反思、遗忘)。可免费下载。
原始对话往往杂乱无章,而存储的记忆应当干净清晰。提取过程通常会把一次交互提炼成简洁、独立且完整的陈述——例如“用户偏好 X”“项目截止日期是 Y”——而不是直接把整段对话记录存进去。一种常见模式是让模型自行总结哪些内容值得记住,从充满噪声的情景经历中提取出整洁的语义事实。
memories = extract(conversation)
# -> [{'content': 'prefers email over phone',
# 'subject': 'user_1837', 'type': 'semantic'},
# {'content': 'had billing issue, resolved by refund',
# 'subject': 'user_1837', 'type': 'episodic'}]
store.add(memories)
独立且完整是关键属性:如果一条记忆只有结合最初的上下文才能理解,那么日后检索到它时,反而会造成困惑。
此外,还需要考虑提取时机。常见选择有两种:一种是在会话结束时执行,这样可以一次性提炼整个交互;另一种是在重要事件发生时增量执行,这样即使会话中途终止,也不会丢失信息。会话结束时提取更简单、成本更低,但如果一次交互没有正常结束,就可能导致信息丢失;增量提取捕获信息更可靠,代价则是需要更频繁地运行。许多系统会同时采用这两种方式。
想深入了解?《AI Agent Memory:完整指南》是一份完整参考资料——共 41 页、15 章和 5 个附录,包含一个完整的客服 Agent 实例,以及一条为期 30 天的落地路径。获取这份指南。
关于用户的稳定事实(偏好、背景)、决策与结果、来自人类的纠正,以及正在进行的工作的持久状态。判断标准是:这些信息在未来的会话中是否仍然重要。
临时闲聊、与未来无关的一次性细节,以及到下一次会话时就会过期的任何内容。不存储噪声与存储有效信号同样重要——无关记忆会在错误的时机浮现,降低检索质量。
它会把杂乱的交互提炼成简洁、独立且完整的事实——例如“用户偏好 X”——而不是存储原始对话记录。一种常见方法是使用模型本身来总结值得记住的内容,将其整理成干净的语义事实。
可以在会话结束时运行(更简单、成本更低),也可以在重要事件发生时增量运行(更可靠、运行更频繁)。许多系统会同时采用这两种方式——立即捕获明确重要的事实,并在会话结束时提炼其余内容。
因为每条存储的记忆都有可能在检索时浮现。塞满无关碎片的记忆库,其检索效果不如精简的记忆库:真正重要的记忆会被那些无关紧要的内容掩埋。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。