乐于分享
好东西不私藏

Day3:记忆系统——专属AI助手

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. 运行效果演示

五、核心概念总结

概念
通俗解释
类比
短期记忆
记录当前对话内容
临时便签
长期记忆
保存用户画像
通讯录
记忆注入
把记忆放入Prompt
给AI看备忘录
信息提取
自动识别关键信息
自动保存联系人

六、今日作业

🎯 必做任务

运行带记忆的 AI 助手,测试:先告诉它你的名字和喜好,然后问”你还记得我吗?”

🚀 进阶挑战

添加记忆检索功能:当用户问”我喜欢什么?”时,Agent 能从长期记忆中找到答案

💡 思考题

如果对话很长,短期记忆存不下了怎么办?(提示:如何压缩对话历史)

明天我们将学习:

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