DAY 1
Agent 记忆系统基础与认知架构
理解 Agent 为什么需要记忆,建立五层记忆组件与四类记忆分类的完整心智模型。
Morning · 范式转移
从无状态到有状态
- 无状态 LLM 瓶颈:每次调用独立,上下文窗口有限(4K–128K),无法跨会话累积经验
- 记忆核心思想:LLM 作为「处理器」,外挂记忆作为「存储器」,实现超越窗口的持续智能
- 认知架构历史:SOAR (1987) → ACT-R (1993) → Global Workspace Theory → Transformer + Memory 的现代融合
Agent 记忆的五个核心组件
- 感知记忆 Sensory:原始输入缓冲(用户消息、环境观察、工具返回),毫秒级衰减
- 工作记忆 Working:当前激活的上下文 = System Prompt + 近期对话 + 检索到的记忆片段
- 短期记忆 STM:当前会话完整历史(滑动窗口、Token 预算管理)
- 长期记忆 LTM:跨会话持久化存储(向量库、图谱、数据库、文件系统)
- 程序记忆 Procedural:Agent 技能库(工具定义、ReAct 模式、反思策略的固化)
Afternoon · 记忆分类学
四类记忆 Taxonomy
- 情景记忆 Episodic:「我上次做了什么」—— 时间序列事件记录(对话历史、工具调用轨迹、决策路径)
- 语义记忆 Semantic:「我知道什么」—— 事实性知识(用户画像、领域知识、世界知识)
- 程序记忆 Procedural:「我会怎么做」—— 操作序列与策略(CoT 模式、工具链、反思模板)
- 情感/偏好记忆 Affective:「用户喜欢什么」—— 个性化偏好(语气、格式、禁忌、优先级)
经典架构解析
- ReAct + Memory:推理轨迹作为情景记忆,工具结果作为事实记忆
- Reflexion:自我反思生成经验摘要,写入长期记忆指导未来行为
- Generative Agents(斯坦福小镇):记忆流 Memory Stream → 反思 Reflection → 规划 Planning 三层架构
- MemGPT(现 Letta):操作系统式分层记忆(主上下文 / 外部上下文)、分页调度、中断机制
Evening · 实战
实战 HANDS-ON
为简单 ChatBot 添加「记住用户名字」功能 → 对比硬编码变量 vs 文件持久化 vs 数据库三种方案的演进。
import json, os class FileMemory: # v2: 文件持久化 —— 进程重启后记忆仍在 def __init__(self, path="memory.json"): self.path = path self.store = json.load(open(path)) if os.path.exists(path) else {} def remember(self, key, value): self.store[key] = value json.dump(self.store, open(self.path, "w"), ensure_ascii=False) def recall(self, key): return self.store.get(key, "(还没有相关记忆)") mem = FileMemory() mem.remember("user_name", "Kimi") print(mem.recall("user_name")) # → Kimi(重启后依然记得)
可视化 VISUALIZE
绘制 Agent 记忆架构图 → 展示输入如何流经 感知 → 工作 → 短期 → 长期 各层。
每日挑战 CHALLENGE
设计一个客服 Agent 的记忆需求清单:需要记住哪些信息?保留多久?以什么形式(键值 / 向量 / 图谱)存储?