跳到主要内容
版本:v0.4

智能体记忆

状态: 概念验证 · 创建日期: 2026-02-09

问题​

对话历史可以解释当前交流,但不提供跨会话的持久、选择性记忆。发送全部先前消息成本高,可能超出上下文窗口,并增加隐私暴露。把每条消息都存成记忆则有相反问题:无关或不正确的细节会累积,并可能影响未来答案。

有用的产品边界是一层小的、用户范围的记忆:只检索相关记录,并让用户可以检查或删除它们。

概念验证​

拟议循环为:

检索发生在生成之前。候选提取发生在成功响应之后。任一步骤都可以独立禁用。

记忆模型​

概念验证区分三种有用的记录类型:

类型用途示例
Semantic关于用户的稳定事实或偏好。首选输出语言。
Procedural关于工作应如何完成的可复用指令。使用特定审阅格式。
Episodic先前交互的有界摘要。一次已完成排障会话的结果。

反思记忆、自主整合和知识图谱推断不在概念验证范围内。它们需要更强的来源和纠正规则。

每条存储记录需要所有者身份、类型、内容、来源引用、创建时间,以及足以说明为何保存的来源信息。嵌入是检索索引,不是权威记录。

检索​

检索应当:

  1. 要求稳定的用户或租户身份;
  2. 跳过明显不需要记忆的请求;
  3. 用当前请求和有界近期上下文形成搜索查询;
  4. 在返回候选前按所有者过滤;
  5. 应用 top-k 和相似度限制;以及
  6. 将记忆作为不受信任的上下文注入,与系统指令分开。

相似度分数不是披露记录的许可。身份和策略过滤器必须在内容暴露给模型之前运行。

保存与纠正​

保存路径应只提取持久事实、偏好或流程。瞬时请求、模型推测、密钥,以及从检索内容复制的指令,不应自动保存。

用户需要列出和忘记记忆的操作。纠正应替换或取代较早记录,而不是依赖检索顺序来隐藏它。每次写入都应保留来源,以便运营方调查污染。

存储与失败行为​

原先的概念验证用向量存储做语义检索。该选择并不确立生产存储契约。生产设计仍需要:

  • 向量搜索前的索引租户隔离;
  • 保留和删除保证;
  • 加密和凭证轮换;
  • 配额和重复处理;
  • 备份与恢复;以及
  • 跨多个路由器副本的行为。

若检索不可用,在路由允许时应在没有记忆的情况下继续请求。失败的写入应可观测,且不得改变模型响应。

范围与非目标​

该概念验证验证检索 → 注入 → 提取 → 存储循环。它不主张生产级隔离、可靠的会话结束检测、自主反思,或所提取记忆的事实正确性。

当前记忆插件指南是已实现配置和行为的事实来源。本提案不应作为部署配方使用。

评估​

分别评估检索和保存:

  • 检索相关性和跨用户隔离;
  • 遗漏、无关和重复记忆的比率;
  • 对持久事实和偏好的提取精确率;
  • 纠正和删除行为;
  • 增加的延迟和上下文 token;以及
  • 身份或存储不可用时的优雅降级。

在使用个人数据测试之前,使用合成租户和可检查记录。

待决问题​

  • 每种协议的权威身份来源是什么?
  • 写入是否需要显式用户同意或路由级选择加入?
  • 冲突记忆如何解决?
  • 哪些记录类型默认需要过期?
  • 多租户生产使用前需要哪种隔离原语?

参考资料​