Agent Memory 是一项托管服务,它为您的应用程序提供持久的、AI 驱动的内存。它自动将原始对话转换为结构化知识,并在您需要时检索正确的上下文。
Agent Memory 将每个提取出来的内存归类为以下四种类型之一:
- Facts (事实) — 关于人、项目或工具的稳定知识。例如偏好、身份、关系和目标。事实会随着时间的推移通过代替 (supersession) 发生演变:当关于同一主题的新事实取代旧事实时,旧版本会被保留,但最新版本会在召回结果中呈现。
- Events (事件) — 锚定到时间点的已完成操作。例如部署、决策、里程碑和观察。事件是累积的,且彼此之间不会冲突。
- Instructions (指令) — 可重用的程序、工作流和规范。与事实类似,指令在更新时支持代替。
- Tasks (任务) — 生命周期较短且限定在会话范围内的条目,例如活动调查和后续跟进。会话结束后,任务的优先级会降低。
当您调用 ingest() 时,Agent Memory 会通过几个阶段来处理对话:
-
提取 (Extraction) — AI 读取对话并识别出离散的、值得记住的内容。每一项都是一个独立的知识点,具有清晰的摘要和支持性内容。
-
分类 (Classification) — 每个提取出来的项都被分类为一种内存类型(事实、事件、指令或任务),并分配一个主题键 (topic key)、关键字和搜索查询,以便稍后检索。
-
去重 (Deduplication) — 系统会将当前批次与现有的存储内存进行重复检查。具有相同主题键的事实和指令将代替旧版本,而不是创建重复项。
-
存储 (Storage) — 内存会被写入具有全文搜索索引的持久存储中。非任务类内存也会被作为向量嵌入,以便进行语义搜索。
原始对话消息始终与提取出的内存并排逐字存储,从而保留原始文字记录以供全文搜索。
当您调用 recall() 时,Agent Memory 会并行运行多种检索策略:
-
查询分析 (Query analysis) — AI 分析您的查询以确定最佳的检索方法,并生成关键字词、主题键和语义搜索向量。
-
并行检索 (Parallel retrieval) — 系统同时搜索关键字索引、主题键查找、语义向量索引和原始对话消息。
-
评分与排序 (Scoring and ranking) — 来自所有源的结果将被合并并进行排序,以呈现最相关的内存,同时保持检索方法的多样性。
-
合成 (Synthesis) — AI 根据排名最前的内存生成自然语言回答,该回答完全基于实际存储的内容。
如果没有内存与查询相匹配,recall() 将返回一个空回答,而不是凭空捏造 (hallucinate) 一个响应。
Agent Memory 针对安全地重复摄取进行了设计:
-
消息使用内容寻址 (content-addressed)。 每条消息都拥有一个从其内容和会话中派生出来的确定性 ID。发送相同的消息两次不会创建重复项。
-
会话是确定性的。 如果您未提供
sessionId,则会从消息内容派生出一个 ID。相同的对话始终映射到相同的会话。 -
事实和指令不断演变。 当新的内存与现有内存共享相同的主题键时(例如“编辑器偏好”),旧内存会被标记为被代替。最新版本会在召回结果中呈现,但完整历史会被保留。