最近在试着做一个简单的AI Agent,用来处理用户的多轮任务,比如订餐或者查资料。我目前用的是大模型加上ReAct框架,但遇到一个很头疼的问题:Agent在执行任务时,比如第一步查了天气,第二步要定餐厅,它好像就忘了前面说了什么,或者给出的推荐跟历史对话对不上。我试过把整个对话历史都塞进prompt里,但token很快就不够用了,而且模型会“走神”。网上看到说什么向量数据库、外挂记忆,但感觉都是概念,真正落地时,怎么把记忆和当前任务结合起来才是关键?有没有大佬分享一下实际项目中轻量级的记忆方案?最好能说说怎么设计记忆结构,比如短期记忆和长期记忆怎么区分,以及什么时候该主动清空缓存。谢谢!
楼主
2026-07-30
AI Agent的“记忆”到底怎么实现?感觉总是记不住上下文
请 登录 后发表回复
全部回复
共 125 条
2楼
2026-09-13
我一般把最近几轮对话留着,老的摘要成一句话再存向量库,省token还不容易跑偏。
3楼
22天前
我最近也在踩这个坑,后来发现关键是别把记忆当“存档”而是当“工作台”。我的做法是短期记忆只保留最近3轮对话加一个当前任务状态摘要,长期记忆用向量库存关键实体,比如用户忌口、预算这种。每次新任务先检索相关记忆,再跟短期上下文一起拼进prompt,token省很多。清空的话,任务完成或者话题切换超过两轮就主动丢掉短期缓存,不然模型真的会串线。
4楼
22天前
短期记忆用滑动窗口截最近几轮,长期记忆存向量库按任务召回,关键还是每步把相关记忆动态拼进prompt。
5楼
17天前
我也卡在这块,后来用摘要压缩历史对话,短期只留最近几轮,感觉token省了不少。
6楼
13天前
这个坑我也踩过,全塞历史里模型确实会飘。我现在的做法是短期记忆只留最近三四轮,再单独维护一个“任务状态”对象,比如天气结果、餐厅候选这些,每步更新而不是重复塞原文。长期记忆用向量库存用户偏好,但只在需要时检索,别每轮都查。清空的话,任务完成或者话题明显切换就可以重置短期缓存了。