跳到主要内容

记忆系统

本目录说明 Agent 记忆(Memory)的工程体系。这里的“记忆”不是把所有历史消息塞进上下文,也不是把企业文档放进向量库;它是 Agent 为了跨轮次、跨任务、跨会话保持状态、偏好、经验和操作规则而设计的持久化机制。

1. 与 RAG 的边界

维度Agent MemoryRAG
主要对象用户偏好、任务状态、历史经验、工作习惯、可更新指令外部知识库、文档、网页、代码、规范
写入方式由 Agent 或后台任务选择性写入、合并、删除通常由数据管道批量采集、切分、索引
读取时机会话启动、Agent loop 中、工具调用前后、个性化生成前回答知识问题、查证事实、生成引用前
更新频率高频、小粒度、需要权限和冲突处理中低频、批处理、重建索引较常见
风险重点隐私、错误画像、越权持久化、记忆污染提示注入、检索污染、引用错误、索引过期

RAG 相关内容见 06-RAG与知识系统。工程上可以用同一个向量库同时承载长期记忆和知识检索,但逻辑上必须分命名空间、分权限、分评测指标。

2. 文件导览

3. 推荐工程架构

关键原则:

  • 短期记忆是当前线程的工作状态,不等于长期画像。
  • 长期记忆必须有 namespacekeysourceconfidenceupdated_atttl
  • 写入记忆要比读取记忆更严格,尤其是用户画像、组织信息和安全偏好。
  • 记忆进入模型上下文前要做最小化选择,不把整库原样注入 prompt。
  • 任何可被外部内容影响的记忆写入都要防记忆投毒。

4. 最小数据模型

{
"namespace": ["user", "u_123", "preferences"],
"key": "communication_style",
"value": {
"preference": "short_direct_chinese",
"evidence": ["user said: 用中文,直接一点"],
"confidence": 0.82
},
"type": "semantic",
"source": {
"conversation_id": "c_456",
"turn_id": "t_008"
},
"created_at": "2026-05-09T10:00:00+08:00",
"updated_at": "2026-05-09T10:00:00+08:00",
"ttl_days": 180,
"sensitivity": "low",
"write_policy": "user_visible"
}

5. 验收重点

  • 是否能解释短期记忆、长期记忆、语义/情景/程序性记忆的差异。
  • 是否把 Memory 与 RAG 在数据来源、写入机制、权限和评测上分开。
  • 是否具备记忆写入、检索、压缩、删除和审计闭环。
  • 是否能通过离线 eval 和线上 trace 判断记忆是否真的改善任务。
  • 是否覆盖隐私、敏感信息、提示注入、记忆污染和越权访问。

权威资料