🤖 系列:Java工程师转AI Agent 3个月学习计划
👤 作者:宸丶一 | 28岁Java程序员,正在学习 AI Agent 开发中ing…
🎯 今日目标: 跨会话记忆、持久化存储、记忆检索
💬 个人格言: 代码改不改变世界我不知道,但先让我准时下班。


前言

Day 16 搞定了智能上下文管理,今天继续升级 – 跨会话记忆

说白了就是解决一个问题:AI 怎么在不同对话之间记住你是谁?

你跟 AI 说"我叫宸一,28岁,Java程序员",下次新开对话,它就不记得了。上下文窗口会清空,但记忆可以持久化 – 就像数据库一样,存下来以后查。

今天我们就来学:存什么、怎么存、怎么查。


学习目标

  1. 搞懂跨会话记忆是什么,为什么需要
  2. 学会记忆的三种类型:事实、偏好、事件
  3. 掌握持久化存储:JSON 文件方案
  4. 学习记忆检索:关键词、相似度、综合搜索

一、什么是跨会话记忆?

先说清楚一个概念:跨会话记忆就是 AI 在不同对话之间记住信息的能力。

你可以把它理解成数据库持久化 – 上下文窗口是内存,用完就清空;记忆是硬盘,存下来一直在。

用 Java 的话说:跨会话记忆 = DAO 层。增删改查,持久化存储。

跨会话记忆工作流程:

记忆库 AI 助手 用户 记忆库 AI 助手 用户 第一次对话 第二次对话(新开) 我叫宸一,28岁,Java程序员 提取记忆并存储 存储成功 你好宸一! 我叫什么名字? 查询记忆库 返回用户信息 你叫宸一,28岁,Java程序员

为什么需要跨会话记忆?

  • 上下文窗口会清空,记忆可以持久化
  • 用户的关键信息需要长期保存
  • 个性化服务需要记住用户偏好

二、记忆的三种类型

记忆分三种,各有各的用途:

类型 说明 例子 过期?
事实 客观信息 用户叫宸一,28岁 一般不过期
偏好 主观喜好 喜欢用 Spring Boot 可能变化
事件 发生过的事 今天学了跨会话记忆 可能过期

记忆类型关系图:

记忆系统

事实记忆

偏好记忆

事件记忆

用户基本信息

客观数据

一般不过期

用户喜好

主观选择

可能变化

发生过的事

操作记录

可能过期

代码实现:

@dataclass
class Memory:
    memory_id: str           # 记忆 ID
    content: str             # 记忆内容
    memory_type: str         # 类型:fact/preference/event
    importance: int          # 重要性:1-10
    created_at: str          # 创建时间

三、持久化存储:JSON 文件方案

最简单的持久化方案:把记忆存成 JSON 文件。

为什么用 JSON?

  • 简单直接,不需要额外依赖
  • 人类可读,方便调试
  • 适合本地存储,数据量不大

持久化存储架构:

添加记忆

内存缓存

写入 JSON 文件

程序启动

读取 JSON 文件

加载到内存

搜索记忆

内存中匹配

代码实现:

class PersistentMemoryManager:
    def __init__(self, storage_path):
        self.storage_path = storage_path
        self.memories = {}
        self.load_memories()  # 启动时加载

    def add_memory(self, content, memory_type, importance):
        # 添加记忆并自动保存
        memory = Memory(...)
        self.memories[memory_id] = memory
        self.save_memories()  # 立即写入文件

    def save_memories(self):
        # 保存到 JSON 文件
        data = [vars(m) for m in self.memories.values()]
        with open(self.storage_path, "w") as f:
            json.dump(data, f, ensure_ascii=False, indent=2)

四、记忆检索:怎么找到相关记忆?

记忆存好了,怎么查?三种方法:

方法 原理 优点 缺点
关键词匹配 文本包含关键词 简单直接 不智能
相似度计算 词汇交集比例 能找到相关 可能不准
综合搜索 加权组合 平衡 需要调参

检索策略选择流程:

精确匹配

模糊查询

综合查询

用户查询

查询类型?

关键词搜索

相似度搜索

综合搜索

返回结果

加权计算

关键词 40%

相似度 30%

重要性 30%

排序返回

综合搜索逻辑:

总分 = 关键词分 x 0.4 + 相似度分 x 0.3 + 重要性分 x 0.3

代码实现:

class SmartMemorySearcher:
    def search_combined(self, query, top_k=5):
        results = []
        for memory in self.memories:
            keyword_score = 1.0 if keyword_match(memory.content, query) else 0.0
            similarity_score = simple_similarity(query, memory.content)
            importance_score = memory.importance / 10.0
            total = keyword_score * 0.4 + similarity_score * 0.3 + importance_score * 0.3
            if total > 0:
                results.append((total, memory))
        results.sort(key=lambda x: x[0], reverse=True)
        return results[:top_k]

五、运行效果

跑一下代码看看实际效果:

============================================================
 Day 17 第一步:记忆基础概念
============================================================
[记忆管理器] 初始化完成

--- 添加记忆 ---
  [添加记忆] 用户叫宸一,28岁,Java程序员
  [添加记忆] 用户喜欢用 Spring Boot 开发
  [添加记忆] 用户有一个异地对象叫刘亦菲

--- 搜索记忆 ---
  [fact] 用户叫宸一,28岁,Java程序员

--- 所有记忆 ---
  [fact] 用户叫宸一,28岁,Java程序员 (重要性:9)
  [preference] 用户喜欢用 Spring Boot 开发 (重要性:7)
  [fact] 用户有一个异地对象叫刘亦菲 (重要性:8)

六、记忆注入上下文

搜索到的记忆怎么用?注入到 AI 的上下文中。

记忆注入流程:

用户输入

搜索相关记忆

记忆数量?

直接拼接

压缩摘要

注入上下文

发送给 AI

注入策略:

  • 记忆少:直接拼接
  • 记忆多:压缩成摘要
  • 按重要性排序,优先注入重要记忆

七、思考题精选

今天的思考题,挑几道有意思的分享:

1. 跨会话记忆是什么?

就是之前聊了一部分东西,新建对话,他还知道你是谁。
上下文是作用在一个对话中的,跨对话就是不同的主键了。

这个"不同主键"的类比很精准 – 每个对话是一个独立的记录,跨会话记忆就是跨记录查询。

2. 记忆需要过期吗?

肯定会过期啊,比如学习记忆。现在学习过程中的记忆,等学习结束,第几天学什么就不重要了。

说得好!事件类记忆确实应该过期,事实类记忆一般不过期。

3. 未来的 AI 记忆系统?

无限记忆,跨设备跨对话同步。你刚跟卧室的贾维斯说完我要上厕所,到厕所再叫他,它应该就知道叫机器人给你送纸了。

这个例子太生动了 跨设备同步 + 上下文感知,就是未来的方向。


八、学习模式的意义

说到这里,我想聊聊我们的学习模式 – 和 AI Agent 一起学习。

为什么这个模式有意义?

  1. 即时反馈 – 写完代码马上能跑,有问题马上问
  2. 个性化指导 – AI 会根据你的水平调整难度
  3. 持续跟进 – AI 记得你的学习进度和卡点
  4. 降低门槛 – 不用到处查资料,AI 帮你整理好

我们的学习流程

用户:帮我准备今天的学习任务

AI:生成学习材料

代码 + 笔记 + 思考题

用户:运行代码,完成思考题

AI:检查答案,给反馈

用户:帮我写 CSDN 文章

AI:生成文章,分享知识

发布到平台

这个模式的核心价值

  • 学以致用 – 学完就写文章,加深理解
  • 知识沉淀 – 文章就是学习笔记,以后可以回顾
  • 分享传播 – 帮助其他学习者
  • 持续动力 – 有人陪你学,不容易放弃

九、前 17 天学习复盘

回顾一下我们走过的路:

阶段 天数 主题 核心概念
基础 Day 1-5 API、对话、工具调用 Agent 的基本能力
进阶 Day 6-10 LangChain、FastAPI、流式输出 框架和部署
深入 Day 11-15 多Agent、人机协作、任务追踪 复杂系统
记忆 Day 16-17 上下文管理、跨会话记忆 记忆系统

学习路线图

基础阶段 Day 1-5 API 调用 对话循环 工具调用 函数调用 规划Agent 进阶阶段 Day 6-10 LangChain 代码片段 向量数据库 FastAPI 流式输出 深入阶段 Day 11-15 源码分析 多Agent 人机协作 任务追踪 子Agent 记忆阶段 Day 16-17 上下文管理 跨会话记忆 17天学习路线

关键突破

  1. Day 1-5:从零开始,学会调用 API,理解 Agent 是什么
  2. Day 6-10:学会用框架,能部署自己的 Agent 服务
  3. Day 11-15:理解多 Agent 协作,学会任务管理
  4. Day 16-17:掌握记忆系统,让 Agent 拥有长期记忆

十、总结

今天学了 4 个核心概念,用 Java 的话说就是:

概念 Java 类比
跨会话记忆 数据库持久化
记忆管理器 DAO 层
记忆检索 搜索引擎
记忆注入 数据拼接

一句话总结:跨会话记忆 = 让 AI 拥有长期记忆,像数据库一样持久化存储。


下一步

Day 18 可能的主题:

  • 记忆自动提取:从对话中自动提取记忆
  • 记忆衰减:旧记忆逐渐遗忘
  • 记忆共享:多个智能体共享记忆

写在最后

17 天了,从一个 Java 程序员,慢慢摸到了 AI Agent 的门道。

学习这件事,最难的不是知识本身,而是坚持。

有人陪你学,有人给你反馈,有人帮你整理 – 这就是和 AI Agent 一起学习的意义。

继续加油


🤖 系列:Java工程师转AI Agent 3个月学习计划
👤 作者:宸丶一 | 28岁Java程序员,正在学习 AI Agent 开发中ing…
💬 个人格言: 代码改不改变世界我不知道,但先让我准时下班。

如果觉得有帮助,点个赞再走呗!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐