构建AI代理最困难的部分不是教它们记住。 而是教它们忘记。 我的同事,才华横溢的作家@helloiamleonie刚刚发布了我见过的关于代理记忆的最全面的分析,信我,我们都需要这个。 核心挑战是:𝗟𝗟𝗠𝘀 𝗮𝗿𝗲 𝘀𝘁𝗮𝘁𝗲𝗹𝗲𝘀𝘀。每次对话都是一个全新的开始。它们不记得你五分钟前说了什么,更不用说你上周说了什么。那么我们如何让代理真正记住呢? 𝗧𝘄𝗼 𝗳𝘂𝗻𝗱𝗮𝗺𝗲𝗻𝘁𝗮𝗹 𝗺𝗲𝗺𝗼𝗿𝘆 𝘁𝘆𝗽𝗲𝘀: • 𝗦𝗵𝗼𝗿𝘁-𝘁𝗲𝗿𝗺 𝗺𝗲𝗺𝗼𝗿𝘆: LLM的上下文窗口中的信息(当前对话) • 𝗟𝗼𝗻𝗴-𝘁𝗲𝗿𝗺 𝗺𝗲𝗺𝗼𝗿𝘆: 外部存储的信息(过去的对话、用户偏好、学习的事实) 但有趣且令人困惑的是,不同的框架对记忆的分类不同,例如: 𝗖𝗼𝗔𝗟𝗔'𝘀 𝗮𝗽𝗽𝗿𝗼𝗮𝗰𝗵(受人类认知启发): • 工作记忆(当前对话) • 语义记忆(关于用户的事实) • 事件记忆(过去的经历和行为) • 程序记忆(指令和行为) 𝗟𝗲𝘁𝘁𝗮'𝘀 𝗮𝗽𝗽𝗿𝗼𝗮𝗰𝗵(以架构为中心): • 消息缓冲区(最近的消息) • 核心记忆(在上下文中主动管理的块) • 回忆记忆(原始对话历史) • 档案记忆(明确存储的知识) 𝗧𝗵𝗲 𝗵𝗮𝗿𝗱𝗲𝘀𝘁 𝗽𝗮𝗿𝘁? 𝗙𝗼𝗿𝗴𝗲𝘁𝘁𝗶𝗻𝗴。 管理进入记忆的内容非常复杂。管理被𝘥𝘦𝘭𝘦𝘵𝘦𝘥的内容更难。你如何自动决定什么是过时的?旧信息何时真正过时,何时仍然具有上下文相关性?这正是大多数实现所面临的挑战。 Leonie涵盖了从不同的记忆类型(工作、语义、事件、程序)到实际实施策略,以及像mem0、Letta和zep这样的记忆框架日益增长的生态系统。...