Overview
助手对话和会话以两种形式产生知识:短期记忆和长期记忆。短期记忆保存逐段对话。长期记忆通过内存提取或从代理或应用程序直接写入来保存从对话中提取的知识。要学习;了解两个内存层之间的差异,请参阅代理内存。
内存提取管道
Atlas Agent Engine 分四个阶段在背景运行提取:
它将会话轮次存储在配置的MongoDB 集群中。对于平台部署的代理,启用内存时会自动发生这种情况。
平台拥有的进程会监控每个会话的这些写入,并根据可配置的大小和时间参数将它们捆绑到快照中。
LLM 从每个快照中提取长期记忆。您可以在项目的内存配置中配置它提取的内存类型。
它将提取的每个记忆与已知的内容进行核对。
轮次记录和会话Atlas 备份快照
平台在发生对话时将其存储在配置的MongoDB 集群中。对于平台部署的代理,启用内存时会自动发生这种情况。对话轮次会在短期记忆中累积,直到平台将其提升为会话快照。当会话达到最大消息计数或处于空闲状态达到配置的时间段时,该会话就有资格升级。
一旦符合条件,会话的未记录轮次将一起提升。每个快照都将会话的连续运行涵盖为单个有界单元。随着新回合的累积,长时间会话会生成一系列快照。每个提取过程都从快照中读取,而不是从单个轮次中读取。
重要
服务帐户内存身份
当服务帐户调用已部署的代理时, Atlas Agent Engine 会使用服务帐户自己的身份作为运行时内存身份。平台会忽略调用请求或 agentengine invoke --user-id 标志提供的任何最终用户 user_id 值。
自动轮流记录、提取、合并和 app.memory 操作会使用此已解析身份。因此,通过同一服务帐户进行身份验证的调用股票一个内存用户作用域。
此限制仅适用于服务帐户调用的已部署代理。独立运行的、项目范围的内存服务不受影响。此服务继续接受来自调用者的显式 user_id 和 session_id 值。
要按最终用户隔离内存,请从应用程序中调用独立运行内存服务,并将显式 user_id 和 session_id 值传递给每个调用。要学习;了解更多信息,请参阅使用独立内存服务。
异步提取
记录转弯是对短期记忆的快速写入。平台在写入期间不会运行提取。
平台拥有的背景进程异步运行,检查会话的升级资格并定期扫描空闲会话。背景工作线程会接手这项工作,并对每个新提升的快照运行已启用的提取处理程序。
代理从不等待这项工作。在一次对话中学到的知识可以在下一次对话中使用,而不是在当前对话的下一回合中可用。最近的回合仍然可以通过短期记忆获得。提取的长期知识会在提取完成后出现。
LLM 提取阶段
提取将快照提炼为四种类型的长期记忆。当快照准备就绪时,每种已启用内存类型的提取处理程序都会独立读取快照。处理程序不会将回合归为一种类型。相反,它会提示 LLM 在快照中查找其特定类型的知识。每个处理程序提取并存储不同的结果:
语义:事实,与平台已知信息进行核对
情景:事件及其参与者,每个事件及其参与者都存储了所发生事件的摘要说明
程序性:对话演示的可重用程序
分类:领域术语及其定义
提取的记忆在提取时接受嵌入,这使平台可以在以后的对话中通过语义搜索找到它们。嵌入是记忆含义的数字表示。语义提取处理程序使用嵌入将新事实与其已知事实进行比较。
内存协调
每个提取处理程序都会将新记忆与平台已知信息进行协调,因此重复或不断变化的信息不会创建重复或矛盾的记录。每个处理程序都会对提取的内存执行以下三个操作之一:
ADD:提取的内存与调用者作用域中的现有记录不匹配,因此处理程序会创建一个新文档。UPDATE:提取的内存会取代现有记录,例如用户报告新的归属机场。该处理程序写入新的文档版本并将先前版本标记为已被取代。REINFORCE:提取的记忆重述现有记录。处理程序不会创建副本。相反,它加强了现有记录。示例,它会增加语义事实的强化计数,或者将新证据合并到现有的分类术语中。
协调功能可以使长期记忆保持最新状态,同时保留每个记忆的学习和强化历史。
配置提取类型
您可以在项目的 project-config.yaml文件中配置平台自动提取的长期记忆类型:
memory: extraction: enabled: - semantic - episodic - procedural - taxonomic
平台将 enabled 列表作为 MONGOMEM_ENABLED_EXTRACTIONS 环境变量传递到内存服务器。从列表中删除类型只会禁用其自动背景提取。您的应用程序仍可通过软件开发工具包 (SDK) 直接保存该内存类型。
编辑列表后,运行agentengine memory configure 以上传配置,然后运行agentengine memory apply --wait 以下发配置并重新启动内存服务器,直到其报告就绪为止。运行 agentengine memory status 以确认更改已生效。要学习;了解完整的配置工作流程,请参阅配置内存。
无论启用哪种提取类型,内存服务器都需要嵌入提供商和 LLM提供商密钥才能做好准备。如果项目没有配置 LLM提供商密钥,则平台在内存服务器启动之前无法部署。要学习;了解这些先决条件,请参阅为代理添加内存中的先决条件部分。
后续步骤
了解提取的工作原理后,您可以浏览以下指南:
要从 MCP客户端记录和调用会话轮次,请参阅将 MCP 客户端连接到内存。