大模型记忆模块架构复盘:新手程序员必看,收藏提升开发技能!

发布时间:2026/7/13 14:26:36

大模型记忆模块架构复盘:新手程序员必看,收藏提升开发技能! 本文详细复盘了Dream-SaaS多Agent平台的记忆模块架构核心分为三层结构化记忆用户身份、规则、向量语义记忆跨对话上下文和对话窗口近期交互。通过双层接口双套实现PGvector/Redis实现灵活存储切换结合HITL待确认机制防止LLM幻觉并采用三信号混合检索提升召回率。适合想要学习大模型记忆设计的程序员收藏备查Dream-SaaS 记忆模块架构复盘ADR 全记录0.背景Agent 最后缺的那块板——记忆Dream-SaaS 多 Agent 平台开发中遇到一个很现实的问题代码审查 Agent 第一次审完代码用户说以后安全相关的多关注第二次对话 Agent 忘了。同样的需求说了三遍。Graph 编排解决了RAG 解决了文档检索但记住用户是谁、记住用户偏好这块——没有现成方案。自己写核心三条诉求1. Spring 生态原生接入不要跨语言2. 按业务分层设计记忆单元不能套固定模板3. HITL 机制LLM 提取的记忆要经过确认不能直接写进去1.记忆的三个层次不是越多越好Agent 的记忆需求其实分三层这三层解决的问题完全不同L1 结构化记忆StructuredMemoryService — 回答用户是谁、规则是什么rules行为准则。比如回复用中文、“代码审查优先看安全性”facts客观事实。比如用户是 Java 开发者、“正在做 Dream-SaaS 项目”status当前状态 KV。比如current_projectdream-saas、moodtiredL2 向量语义记忆VectorMemoryService — 回答之前讨论过什么相关的语义检索“之前讨论过 K8s 部署的内容吗”跨对话积累用户和 Agent 聊过多次 Spring AI不需要每次重新说明上下文L3 对话窗口Spring AI ChatMemory — 回答最近几轮聊了什么这是 Spring AI 自带的不是我们做的纯消息历史滑动窗口超出窗口就忘了2.核心设计双层接口 双套实现dream-ai-agent-memory/ ├── dream-ai-agent-memory-api ← 接口层对业务透明 │ ├── StructuredMemoryService ← L1 接口 │ ├── VectorMemoryService ← L2 接口 │ ├── MemorySnapshot ← 返回模型不可变快照 │ └── MemoryPendingItem ← HITL 待确认条目 ├── dream-ai-agent-memory-pgvector ← 生产实现推荐 │ ├── PgStructuredMemoryService ← L1 PG 持久化 │ ├── PgVectorMemoryService ← L2 pgvector 向量检索 │ ├── MemoryExtractService ← LLM 自动提取 HITL │ └── metrics/MemoryMetrics ← Micrometer 监控 ├── dream-ai-agent-memory-redis ← 降级实现热缓存场景 │ ├── RedisStructuredMemoryService ← L1 RedisTTL 自动过期 │ └── RedisVectorMemoryService ← L2 降级无真正向量 └── dream-ai-agent-memory-mcp ← MCP 工具暴露层 └── MemoryMcpContributor ← 暴露为 MCP 工具read/search/store为什么分层接口与实现分离业务代码永远只依赖StructuredMemoryService/VectorMemoryService两个接口。切换存储引擎只需要改一行配置# 切 PGvector ai.memory.pgvector.enabled: true # 切 Redis 降级 ai.memory.pgvector.enabled: false ai.memory.redis.enabled: trueConditionalOnProperty自动装配零代码改动。3.L1 StructuredMemoryService三种单元的 CRUD记忆模型MemorySnapshotget(ownerId)返回一个不可变快照MemorySnapshot snapshot structuredMemory.get(author); // snapshot.rules → ListMemoryRule // snapshot.facts → ListMemoryFact // snapshot.status → MapString, String // snapshot.pending → ListMemoryPendingItem // 待确认注入 Agent 的方式很简单String systemPrompt 你是一个 AI 搭子用户信息如下 规则%s 事实%s 当前状态%s .formatted( snapshot.ruleContents(), snapshot.factContents(), snapshot.status() );三种单元的定位差异单元语义典型场景修改频率rules用户明确要求的行为准则“回复时先说结论再说原因”低facts关于用户/环境的客观事实“用户是 Java 开发者”中status当前工作的上下文状态projectdream-saas高HITL 待确认机制LLM 自动提取记忆时不是直接写入而是走 HITLHuman-in-the-Loop三色阈值置信度 ≥ 0.82 → 直接写入高置信度 置信度 ≥ 0.55 → 入队待用户确认中等置信度 置信度 0.55 → 跳过低置信度不写入为什么这样设计防幻觉。LLM 有时会创造用户没说过的事实不经过确认就写入会影响 Agent 长期行为。4.L2 VectorMemoryService混合检索的三信号融合为什么需要混合检索纯向量检索有个问题语义相关但用词不同可能漏掉比如用户说部署而记忆中写的是上线纯关键词检索则无法处理同义词扩展。解决方案三个信号加权融合hybrid_score 0.6 × vector_score 0.3 × keyword_score 0.1 × time_score信号来源权重解决什么问题vector_scorepgvector cosine 相似度0.6语义理解“K8s≈Kubernetes”keyword_scoreILIKE 关键词匹配率0.3精确召回“部署必须匹配部署”time_score1/(1days/30) 指数衰减0.1新记忆优先防止古老记忆反复出现权重为什么这么定0.6/0.3/0.1 是经验值语义权重最高但不能独占否则关键词退化严重时间权重最低只是微调不喧宾夺主。去重策略store 时检测相似记忆cosine 0.85 即认为是重复store(content) → 生成 embedding → cosine 0.85 → 合并更新 content 合并 metadata保留原有 embedding → cosine ≤ 0.85 → 新增合并时merged_from和merged_at记录到 metadata可追溯。5.核心设计决策ADR-001分层架构接口与实现分离决策接口层独立于实现层业务代码只依赖接口。理由L1/L2 接口不变实现可以在 Redis / PGvector / MCP 之间切换不影响上层 Agent 代码。放弃无。要做多 Agent 共享记忆存储灵活性是必须的。ADR-002选择 PGvector 而非 Milvus决策向量存储选 PostgreSQL pgvector不单独部署 Milvus。理由Dream-SaaS 已有 PostgreSQL复用现有基础设施pgvector 在 PG 15 性能已足够1000条记忆检索 50ms无额外运维成本放弃Milvus 的分布式向量检索能力。对于几千条记忆的场景pgvector 完全够用。ADR-003混合检索三信号融合决策hybrid_score 0.6×vector 0.3×keyword 0.1×time理由纯向量在专有名词/产品名场景召回率差纯关键词无法处理同义词扩展。三信号互补。放弃纯向量检索简单但不够精准。ADR-004HITL 置信度分层决策≥0.82 自动写入≥0.55 待确认0.55 跳过。理由防止 LLM 幻觉导致错误记忆永久化。用户确认为记忆的参与感也能提升用户对 Agent 的信任。放弃直接写入省事但风险高。纯人工确认体验差。ADR-005Embedding 可选注入决策EmbeddingModel有就注入没有就走 ILIKE 降级。理由降低接入门槛。开发/测试环境不一定有可用模型降级到 ILIKE 至少能跑通。放弃强制要求 EmbeddingModel接入成本高。最后如果说程序员已经是高薪职业那么干AI的程序员就是高薪中的高薪。现在的市场已经用数据给程序员指明了方向学AI大模型就是冲刺高薪的最优解看着身边越来越多的同行转型大模型、拿到高薪offer很多人心里都动了心但真正的难题来了零基础小白不知道从哪入门有基础的程序员找不到系统学习路径实战项目练手无门面试不知道考什么别慌今天就给大家整理了一份【2026年最新版】AI大模型免费学习资源包覆盖从入门到实战、从理论到面试、从基础到进阶的全流程所有资料均已整理归档无冗余、无套路免费分享给每一位想抓住AI风口的程序员和小白扫码免费领取全部内容1、大模型系统化学习路线2、大模型学习书籍文档3、AI大模型最新行业报告4、大模型项目实战配套源码5、大模型大厂面试真题四阶段精细化学习规划附时间节点可直接照做结合上述资源给大家整理了一份可直接落地的四阶段学习规划总时长约2个月小白可循序渐进程序员可根据自身基础调整节奏高效掌握大模型核心能力快速实现从“入门”到“能落地、能面试”的跨越。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容6、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻