摘要:说白了,就是给智能体装了个能记事的脑袋,不是把全部对话一股脑儿塞进去,而是把每次有用的事情压缩成几句话,作为“回忆”存起来。下次碰到相关问题,系统先去翻这些回忆,把相关内容放进当前的上下文里,智能体就不会每次都从零开始想事儿了。这个思路听起来简单,做起来有门道
现在的系统能把关键交互记下来,并在后续任务里用这些记忆来改进决策和行为。
说白了,就是给智能体装了个能记事的脑袋,不是把全部对话一股脑儿塞进去,而是把每次有用的事情压缩成几句话,作为“回忆”存起来。下次碰到相关问题,系统先去翻这些回忆,把相关内容放进当前的上下文里,智能体就不会每次都从零开始想事儿了。这个思路听起来简单,做起来有门道,下面把具体套路从大到小、从结果倒着往前交代清楚,和你聊得明白点。
跑起来后的日常流程很像人在做笔记。任务做完,先把关键点摘成一段短摘要(谁、做了什么、结果怎么样、有没有问题、下一步建议),然后把这段话做成向量,写到向量库里;同时把这些元信息、时间戳、状态啥的存在 SQLite 里的表里,方便查。下一次来相关请求,系统先用向量检索搜出语义上最接近的若干条回忆,把这些压缩过的“历史”拼进 prompt,让模型参考。这样检索到的不是全文,而是“意思相近”的总结,避免了长篇原文检索的低效和噪声。
关于记忆的分类,不要把一切搁一起。把记忆分成两类:一类是情景记忆,记录具体发生了什么;另一类是语义记忆,提炼出可复用的经验和策略。情景记忆方便回溯事实细节,语义记忆则更像“套路”,帮你在类似场景里快速做决策。这两类配合起来比只靠单一记录效果好得多。
写入流程要标准化。每次交互结束后,用模型生成那段摘要,然后把摘要转 embedding 写进向量库,同时把结构化字段写入 SQLite。你可以在 SQLite 里做两张表:memory_events(放交互摘要、元数据、时间戳、状态标签等)和 goals(放目标描述、负责人、进度、历史变更)。这样查东西就方便,又好维护。别忘了在写入时把隐私和敏感信息做脱敏或不存储,这是运维的基本功。
系统还要会反思,不只是堆记忆。把近段时间的摘要拿出来做周期性反思:设一个阈值,比如每 N 次交互或每周一次,把这些摘要丢给模型,让它输出“学到什么、哪里出问题、下一步建议”。把这个反思结果也存成元记忆,供以后检索参考。这样就形成了一个闭环:经验会被总结,失败会被变成教训。
再设一个自我批评机制,别怕揭短。每当重要任务没达预期,就写一条修正笔记,讲清楚判断哪里错了、下一次要怎么改。把这些修正也做成可检索项,下次遇到相似情形时能被召唤出来。这种用文字写下改进措施的做法,效果有时候比改模型参数来的快,因为它直接改变了后续决策时可用的知识库。
目标跟踪要独立出来。建立一个 goals 表,里面记目标状态、负责人、进展百分比和建议动作。再写一个“目标跟踪 Agent”定期扫表,挑出滞后的目标,发提醒或建议下一步操作。这样目标不再是一次性写完就扔一边的东西,而是会被长期盯着、分段推进。就像团队做项目,目标有人盯着,进度自然不容易烂尾。
存储和检索的细节也别马虎。SQLite 选它的原因是轻便、易部署,适合做元数据和历史记录。向量库用来做语义检索,记住的是“事情的意思”,不是原话。为了省空间和提高命中率,保留摘要比存完整对话要实用。定期做垃圾回收:把重复的记忆合并成一条元记忆,删掉陈年无用的数据,避免向量库被旧噪声淹没。数据压缩和合并要定时运行,别等库膨胀得动不了手才后悔,俗话说“磨刀不误砍柴工”。
提示词设计也很关键,不能随便写。给反思任务一个明确角色和输出格式,比如“你是反思分析师,分析最近十次交互的成功和失败,输出三条改进建议并给每条建议写出优先级和理由”。把目标、评价维度和期望输出写清楚,反思质量才能上得去。好提示词就像好教练,方向对了,动作就会标准化。
做个简单的可视化界面,会让调试快很多。用 Streamlit 或 React 把记忆聚类、目标进度和反思内容展示出来,能一眼看出哪些记忆常被命中、哪些目标总是拖延、哪些反思意见反复出现。可视化不是必须,但在迭代阶段特别有帮助,能让团队快速找到瓶颈。
接口层要抽象清楚,把记忆写入和检索的逻辑做成一套服务接口,便于上层 Agent 调用。常见的接口包括:record_interaction(记录交互)、generate_summary(生成摘要)、store_embedding(存向量)、retrieve_similar(检索相似记忆)、trigger_reflection(触发反思)、update_goal(更新目标)。把这些接口做成微服务,上层在处理请求前后按流程调用,就能把记忆体系无缝接入现有框架,不管用的是哪个 orchestration 库。
真正上线时,有几件事要盯着做:一是定好摘要格式,保证写入一致性;二是设好反思频率和触发阈值,别太频繁也别太稀;三是安排合并和清理的定时任务,避免冗余堆积;四是把隐私和权限管理制度化,记录谁能看、谁能删。别小看这些运维细节,它们会直接影响系统长期可用性。
最后一点好玩的事:当你让系统自己写下失败的修正笔记,会发现很多低成本的改法能马上见效。不一定非得改模型架构或训练数据,有时候调整 prompt、更新一条规则、改一条流程就能把表现提升上去。这种靠“写下来并复用”来改进的方式,就像把团队的复盘交给机器来做,省事儿还管用。
来源:快乐雪碧hYYcJ
