短期记忆是 Session 级的,服务当前任务;长期记忆是跨 Session 的,负责把用户偏好、历史决策、过往经验沉淀下来。

下面是AI Agent记忆系统架构图,包含从用户输入到LLM推理到读写记忆的完整流程,并标注了短期/长期记忆的策略与挑战:

图片补充解读:

维度 短期记忆 长期记忆
核心策略 滑动窗口(如保留最近5轮)、Token级别截断(优先保留系统指令和最新对话)、必要时使用LLM生成历史摘要 向量数据库(如Milvus/Pinecone)存储Embedding,采用余弦相似度检索;结合知识图谱存储实体关系;设置记忆衰减因子(越旧权重越低)
典型挑战 窗口溢出导致信息丢失;长对话中模型“遗忘”早期指令;无法处理跨会话的依赖 检索噪声(召回不相关内容);存储爆炸(海量对话);记忆冲突(新旧事实矛盾);冷启动时无可检索内容
工程实践 使用Redis缓存短期数据;设置TTL过期;对历史轮次做滚动摘要 定时任务离线清洗/合并相似记忆;使用HyDE(假设文档检索)提升召回率;对检索结果重排序(Rerank)

短期记忆膨胀问题解决方式?

上下文缩减(滑动窗口-自动丢弃以前的N轮对话/将对话压缩成摘要)

上下文卸载(存储到外部,提示词做引用即可,需防止读取超时做降级或熔断)

上下文隔离(多agent协作时主agent只传递必要的指令给子agent)

记忆反思常见实现方式?

1/自我反思 

2/反思闭环 ----规划-执行-反思 闭环流程

主要反思三方面:是否符合客观事实  是否完成用户指标   关键数据是否丢失或损失

3/记忆聚类及合并  记忆碎片化,重复记录

Agent反思主要方式有哪几种?

agent反思:agent审视自身推理过程,执行结果,中间输出并自我修正的过程

1/自我审视 对自身答案进行打分或挑错  依赖LLM自身,有幻觉问题

2/链式推理(Chain-Of-Thought) 显式写出推理过程和可能问题点

实现方式:自问 或者 ReAct中的思考-行动-观察循环迭代过程

Token消耗过多

3/保存交互历史,总结失败经验,经验存入长期记忆(总结经验并进行学习)

4/独立agent,互相评判   

CLAUDE.md机制(200行以内,不断变化会随项目演进)

写入内容:

团队一般写入

(项目架构、编码标准、工作流,提交至 Git)

项目构建,启动命令/已知陷阱等

1.技术栈,版本信息

2.架构决策及理由

3.团队约定和项目特有的坑(如分支命名规范,环境变量依赖,提交信息格式)

不适合写入:

1.代码风格

2.参考文档给链接即可

3.大段日志、完整对话记录、密钥、Token、账号

4.高频变化的运行数据、实时的动态信息

注意:

1.规则要具体  禁止宽泛概念

2.禁止加上具体实现方案  禁止做什么,具体可以如何做,也可以加上示例

3.禁止滥用标记词

4.反复忽略规则,需精简文件

项目变大需分层管理:

Claude.md里面写入Rules:定义API约定/数据库约束等不同类型的约定路径文档

示例:

## Rules - API 约定:@docs/api-conventions.md

- 数据库规范:@docs/database-rules.md

路径作用域规则:在.claude/rules/目录下创建.md文件,如下:

# .claude/rules/api-design.md
paths:
  - "src/api/**/*.ts"
---
# 这里写API相关的设计规范
- 所有Handler必须返回 { data, error } 格式

@导入语法:

可在CLAUDE.md中使用@path/to/other.md导入其他文件内容 

也可在CLAUDE.md中写入@AGENTS.md导入团队通用规则

MarkDown记忆分层:

用户记忆:存个人偏好和长期习惯,放在 ~/.claude/CLAUDE.md,如 先写测试再写代码等;

项目记忆:存项目规范、技术栈、目录结构,放在仓库根目录的 CLAUDE.md,团队成员通过Git同步;

子目录记忆:局部专属,backend/或者front/

团队共享记忆:需提交到仓库

维护规则:

添加要慢

删除果断

错误驱动地持续进化:累计几次同类错误,归纳成一条精炼规则

自我对话审查:直接问删除此条规则是否会改变相应行为,不会则删除

(会自我欺骗,备份规则,看删除规则前后区别)

XXX注意:

1.Claude Code已经为定义的规则道歉,规则表述有问题,不直接

2.同一规则在不同会话被违反,文件太长需压缩

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐