情景、语义、程序记忆各归其位:Oracle 示例拆解 Agent 记忆架构
AlexAtOracleAIDB · reddit · 2026-11-13
Oracle 开发者团队发布了一个 Spring AI 示例,把 agent 记忆拆成三类、分别用不同存储承载,发帖人(Oracle AI Database 相关员工)逐层解释了实现:
- 情景记忆(episodic):对话历史,存于关系表,经 Spring AI 的 JDBC chat memory repository 读写;每次请求由 MessageChatMemoryAdvisor 拉取最近 100 条消息并保存新交换,窗口越大每次调用携带的上下文越多。
- 语义记忆(semantic):领域知识(如退货政策),用 RetrievalAugmentationAdvisor 跑混合检索——向量相似度捕捉同义改写、关键词匹配捕捉订单号等精确字符串,两者结果用 Reciprocal Rank Fusion 合并;嵌入由加载进数据库的 ONNX 模型 all-MiniLM-L12-v2 生成,混合向量索引默认后台同步,插入行要等下次同步才可检索。
- 程序记忆(procedural):示例把注册到 ChatClient 的 u/Tool Java 方法(查订单、发起退货等)标为程序记忆,但作者认为用词应更窄——这些是开发者写死、agent 只调用的程序;真正“学习到的”程序记忆(存储并复用有效动作序列)不在本示例范围内。
架构上,聊天历史、检索索引和订单表共享同一个数据库实例与连接池。作者最后抛出问题:你的 agent 持久化了哪几类记忆、用了几个存储?
「编程与Agent」频道最新
- Amplitude 推出 Wave:AI 自动决定产品下一步该做什么 — testingcatalog · 2026-11-13
- jxnlco 观点:AI 让你变快后,别只顾多交付,要深耕新领域养品味 — jxnlco · 2026-11-13
- jxnlco 登 Google DeepMind 演讲台:执行免费后拼的是品味与好奇心 — jxnlco · 2026-11-13
- 一条提示词做出太空塔防游戏,AI 生成 Three.js 实战演示 — kimmonismus · 2026-11-13
- 用 AI 写 WebGL2 着色器做黑洞:光线弯曲零追问一次过 — kimmonismus · 2026-11-13
- Mac 刘海里的个人智能体 Sentientos:自带光标接管屏幕任意操作 — ycombinator · 2026-11-13