TypeSafeClient.system_one 一次提交一个共享的 state(结构化状态)加一批 questions。布尔型的题叫 Noul——用一条指令加明确的「真 / 假」判据定义一个是非命题,返回 0 到 1 之间的值,多个 Noul 各自独立判断(一条记忆可以同时是「情景型」又是「语义型」);互斥的多选一叫 Choice,返回选中的标签和各选项的分布。同一批里的题互不引用彼此的答案,所以每条指令都要自己写明用到了 state 里哪些字段。→ 详细
▲ 图注:论文图 1「智能体记忆的工作流」。① 交互:用户提问、环境观测、任务目标;② 记忆更新:把观测存下、组织、更新;③ 不断演化的智能体记忆:过往经验、用户偏好、事件与时间脉络、关系与知识;④ 检索 + 推理:先按查询检索出证据,再交给 LLM 推理出回应或动作;成功的回答、用户反馈等新经验再沿虚线回流去更新记忆。
▲ 图注:论文图 2「Jev-Mem 概览」。❶ 写入:观测 → Jev 打类型 → 候选搜索 → Jev 判关系 → 插入记忆;❷ 记忆平面:语义、时间、因果、实体四张视图,底下共享一套向量 + 关键词索引,右侧挂着整合;❸ 检索:查询 → Jev 路由 → 锚点 → 证据检查 → 扩展 → Jev 打分,再回到证据检查循环,检查通过才停下交给系统二生成答案。四个标着 Jev 的步骤用浅黄色框标出。
表 1(LoCoMo,LLM 裁判评分,越高越好,作答模型基于 gpt-4o-mini;粗体照原表):
| 方法 | 多跳 | 时间 | 开放域 | 单跳 | 对抗 | 总体 |
|---|---|---|---|---|---|---|
| Full Context | 0.468 | 0.562 | 0.486 | 0.630 | 0.205 | 0.481 |
| A-MEM | 0.495 | 0.474 | 0.385 | 0.653 | 0.616 | 0.580 |
| MemoryOS | 0.552 | 0.422 | 0.504 | 0.674 | 0.428 | 0.553 |
| Nemori | 0.569 | 0.649 | 0.485 | 0.764 | 0.325 | 0.590 |
| MAGMA | 0.528 | 0.650 | 0.517 | 0.776 | 0.742 | 0.700 |
| Jev-Mem | 0.623 | 0.637 | 0.618 | 0.802 | 0.962 | 0.777 |
表 2(记忆构建总时间与平均查询延迟,单位秒;粗体照原表):
| 方法 | 构建时间(秒) | 延迟(秒) |
|---|---|---|
| Full Context | N/A | 1.74 |
| A-MEM | 3636 | 2.26 |
| MemoryOS | 3276 | 32.68 |
| Nemori | 1044 | 2.59 |
| MAGMA | 1404 | 1.47 |
| Jev-Mem | 158 | 0.93 |
Mira、bicycle;查询是「Mira 是什么时候买的新自行车?为什么?」。时间戳记的是这句话被观测到的时间,不一定是事件发生的时间。论文声明示例记忆是虚构的,只演示请求结构,不把任何分数当作实测的 Jev 预测。→ 详细admission_enabled=false),每条有效的非空观测都进写路径,类型分不决定留不留。类型标注一次批量问四个 Noul——episodic、semantic、procedural、preference,附录给出了其中两个的原文判据(下两条)。→ 详细episodic(情景):这条观测是否描述了某位参与者的一次特定经历或事件?真=具体的过去、当前或计划中的事件,哪怕没说确切时间;假=只是一般事实、流程或偏好。→ 详细preference(偏好):是否表达了某位参与者的偏好、反感或习惯性选择?真=能归到具体某人的喜欢、讨厌、偏爱选项或习惯;假=只是一次孤立的行为、没说是谁的偏好,或压根没有偏好证据。→ 详细semantic(语义关系):在新记忆和候选之间连一条语义边,是否有助于检索它们共有的某个具体话题或事实?真=有具体的共同话题、事实或事件,这条连接有用;假=只有泛泛的对话用语,或没有有意义的联系。→ 详细caused_by(有向因果):候选里的事件是否导致、促成或解释了新记忆里的事件?真=给出的记述支持这个方向的因果影响;假=只有相似、时间先后、共同实体,或因果证据不足。causes 检验反方向;判据刻意把「真有因果」和「话题相同 / 只是先后发生」分开。→ 详细Mira、bicycle,所以不必再调别名消解。→ 详细representation(Choice,四选一):这两条观测的关系最适合哪种表示?keep_separate(分开存)=记述矛盾、合并会丢独特细节,或是不同事实且没有证据支撑的一般模式;merge(合并)=同一事实或事件的相容记述,合并不丢细节;promote(提升为一般规律)=多次不同的重复情景明确支撑一个稳定模式、适合做语义抽象,重复事件优先选它而不是合并;uncertain(拿不准)=证据不足,没法稳妥地选合并还是分开。指令还特意叮嘱「依据所提供的记述作出判断,不要预设其他问题的答案」。→ 详细merge 或 promote 以 ≥ 0.85 的概率被选中、且矛盾分低于 0.85 时,调用方提供的系统二摘要器才能生成一条新的表示——卡门槛的是被选项自己的概率,不是另算的置信度汇总。→ 详细multi_hop_need(要不要多跳)和 recency_importance(新近性有多重要);一个查询可以同时激活几种图。→ 详细temporal(时间路由):回答这个查询是否需要事件的日期、持续时长、先后顺序或随时间的变化?真=要靠某种时间关系才能答对;假=日期或先后对答案只是附带信息。→ 详细causal(因果路由):回答是否需要解释某个原因、动机、促成条件或结果?真=需要因果或解释性证据;假=只问事实关联或时间先后。→ 详细relevance(候选相关性):候选内容是否包含回答查询所需的事实?真=能直接支撑答案的证据,或必要的中间事实;假=只是话题重叠,或内容无关。→ 详细new_information(新增证据):候选是否补上了现有证据里缺的、与答案相关的细节?真=一个不同于已有证据的相关细节,或一个缺失的推理环节;假=只是重复证据,或无关的新细节。→ 详细relation_usefulness(经由的这条关系有没有用)和 supports_current_evidence(是否支持当前证据);这四个分数按第七节的方式与余弦相似度、图需求分、边概率合成综合分,按它排序,束宽 10——光是相关分高,并不能无条件进入检索证据。→ 详细evidence_sufficient、continue_useful、missing_evidence、contradiction 四项,刻意把「对答案的支撑」和「再查一轮的预期效用」分开问。→ 详细evidence_sufficient(证据充分):证据是否为答案里每一个事实性部分都提供了支撑?真=不用编造缺失事实,就能凭这些记忆给出有依据的答案;假=任何一项必需的事实或推理环节没有支撑——「仅有相关话题并不充分」。→ 详细continue_useful(还值得再查吗):再查一轮是否有可能填补某个具体缺口,或化解某个冲突?真=存在可识别的缺失事实或冲突,能从更多检索中获益;假=已没有可识别的检索需求,或更多记忆不太可能帮上忙。→ 详细timestamp_role 与 temporal_references,把时间戳标明为「观测时间」,并附上锚定过的时间表达及其精度——判断充分性时用的时间锚定,和交给作答方的保持一致,不把每个对话日期都当成事件日期。→ 详细evidence_sufficient ≥ 0.95,且 missing_evidence 与 contradiction 都 < 0.15;continue_useful < 0.15 时也可以停。另有五道各自独立的上限——深度 8、访问节点 60、检查边 2400、Jev 尝试 16 次、检索时限 15 秒,证据不完整时它们也可能把检索叫停;时限只在操作与操作之间检查,对本地计算不保证到点立刻打断。→ 详细本期是论文,没有闪电问答;结论段(把记忆控制与生成式推理分开「是构建更有效、更高效的长程智能体的一个有前景的方向」)已并入第十节最后一条,读数字前的注意事项集中在第十五节。
作者 Dongming Jiang、Yi Li、Bingzhe Li(通讯作者),均属 UT Dallas 计算机科学系,邮箱见论文首页;论文 arXiv 2609.23986,代码 GitHub · libingzheren/Jev-Mem。