Day3:记忆系统——专属AI助手
Day3:记忆系统
开发能记住你的专属 AI 助手
昨天我们让 Agent 掌握了多个工具。今天来解决一个关键问题:Agent 总是”健忘”——每次对话都从零开始。今天我们要给 Agent 装上记忆系统,让它成为真正懂你的专属助手!
今日学习目标
理解为什么Agent需要记忆掌握短期记忆vs长期记忆学会记忆注入技术实战:专属AI助手
一、为什么 Agent 会”健忘”?
想象你和一个”失忆”的朋友聊天:
你:“我叫小明,请帮我推荐一款手机”
Agent:“好的,根据您的需求,我推荐 iPhone 15…”
你:“那适合我吗?”
Agent:“请问您叫什么名字?我需要了解您的需求才能推荐…”
❌ Agent 完全忘记了你刚才说的话!
核心问题:LLM(大语言模型)是无状态的,每次 API 调用都是独立的,它不会自动记住之前的对话!
二、什么是 Agent 的记忆?
简单说,记忆就是让 Agent 记住对话中的关键信息,就像你手机里的备忘录:

三、两种记忆类型对比
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
四、实战:给 Agent 装上记忆
1. 短期记忆——记住对话历史
class ShortTermMemory:“””短期记忆:像一个临时笔记本,记录当前对话””” def __init__(self, max_history=10): self.messages = [] # 存对话的列表 self.max_history = max_history def add(self, role, content):# 添加一条对话记录 self.messages.append({“role”: role, “content”: content})# 太多了就删掉旧的 if len(self.messages) > self.max_history: self.messages = self.messages[-self.max_history:]
2. 长期记忆——记住用户信息
class LongTermMemory:“””长期记忆:像通讯录,永久保存用户偏好””” def __init__(self, user_id): self.user_id = user_id self.profile = {} # 存用户画像 self.load() # 启动时加载 def save(self):# 保存到文件(像保存通讯录) with open(f”{self.user_id}.json”, “w”) as f: json.dump(self.profile, f)
3. 记忆管理器——自动提取信息
class MemoryManager:“””记忆管理器:协调短期和长期记忆””” def __init__(self, user_id): self.short_term = ShortTermMemory() self.long_term = LongTermMemory(user_id) def extract_info(self, message):# 自动识别”我喜欢”、”我叫”等关键信息 if “我喜欢” in message: preference = message.split(“我喜欢”)[-1].strip() self.long_term.profile[“preferences”] = preference
4. 运行效果演示

五、核心概念总结
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
六、今日作业
🎯 必做任务
运行带记忆的 AI 助手,测试:先告诉它你的名字和喜好,然后问”你还记得我吗?”
🚀 进阶挑战
添加记忆检索功能:当用户问”我喜欢什么?”时,Agent 能从长期记忆中找到答案
💡 思考题
如果对话很长,短期记忆存不下了怎么办?(提示:如何压缩对话历史)
明天我们将学习:

恭喜你!今天你已经让 Agent 拥有了”记忆”。明天,我们将让多个 Agent 组队协作,完成更复杂的任务!
夜雨聆风