FDE Times 数据在招 FDE 职位 863▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 71在招公司 181支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

Oracle 出品的 Agent 记忆课值得学,Oracle 可以不用

DeepLearning.AI 这门短课讲的记忆管道设计适用于任何客户,Oracle 数据库层可以替换。

分享微博

要点速览

  • DeepLearning.AI 上一门约两小时的短课,与 Oracle 合作制作,两位讲师都在 Oracle 任职。
  • 值得记住的观点有三个:记忆是基础设施;记忆是一条管道;Agent 的工具列表也可以按语义检索。
  • 客户不用 Oracle 时,只需替换存储层。LangGraph 本身已经把短期记忆和长期记忆分开。
横向条形图,展示 Agent Memory 课程中四节课的时长:Memory Operations 23 分钟、Memory Manager 22 分钟、Memory Aware Agent 20 分钟,这三节因附有示例代码标为橙色;语义工具记忆 17 分钟,标为灰色。课程共 7 个视频,总时长 2 小时 2 分钟。
附带示例代码的三节课也是全课最长的三节,应把大部分时间花在这里。来源:DeepLearning.AI 上的 Agent Memory 课程页面。

DeepLearning.AI 上的 Agent Memory: Building Memory-Aware Agents 一开篇就点出一个问题,把 Agent 部署到生产环境的人都不陌生:大多数 Agent 在单个会话内表现不错,会话一结束就什么都忘了。用户只能把之前给过的指令再说一遍。

前线部署工程师(FDE)很少在演示中遇到这种故障。它往往出现在第二周:真实用户开始追问 Agent,为什么昨天告诉它的事今天就忘了。

这门课直击这个问题,但它是和一家卖数据库的公司合作做的。所以真正该问的是:哪些内容值得学,客户不用 Oracle 时又该略过哪些。

谁来讲,适合谁?

这是 DeepLearning.AI 与 Oracle 联合制作的短课。讲师是 Oracle AI 开发者体验总监 Richmond Alake 和 Oracle 首席数据科学布道师 Nacho Martínez。教材由厂商编写,使用的技术栈是 Oracle AI Database、LangChain 和由 LLM 驱动的管道。

这并不降低课程的价值,但观看时要带着“必须在客户基础设施上部署”的眼光。课程页面称,这门课面向已经构建过 Agent、希望突破单会话交互的开发者。前置要求只有 Python 和对 LLM 的基本了解,不需要 Oracle 相关知识。

七个视频,三个最关键

课程共 7 个视频。课程页面顶部标注的总时长是 2 小时 2 分钟,部分搜索结果显示为 1 小时 57 分钟。时长最长的三节课也是动手最多的,每节都附有示例代码:Memory Manager(22 分钟)、Memory Operations(23 分钟)和 Memory Aware Agent(20 分钟)。

建议按顺序学,因为最后一节是综合项目:一个能跨会话保留状态、启动后立即重新加载此前上下文的 Agent。如果只有一个晚上,就把大部分时间花在这三节代码课上,并且亲手敲一遍代码,不要只看。

观点一:记忆是基础设施,不是一段提示词

课程把自己的方法称为记忆工程:把长期记忆视为位于模型之外的核心基础设施。这一思路转变,比课程里任何一行代码都重要。

一旦把记忆当作基础设施,你就会开始像基础设施工程师那样提问:数据存在哪里,谁能读取,什么时候过期,出错时怎么纠正?客户的安全团队也会问你同样的问题。

观点二:记忆是一条管道,不是一条 insert 语句

课程明确的目标之一,是构建一个能处理多种记忆类型的 Memory Manager,并配套一条三步管道:提取、整合、写入。中间这一步最常被跳过。

设想一个内部支持 Agent。会话 1 中,用户说团队在用 Postgres;到了会话 3,用户说团队已经迁移到 Snowflake。

如果管道只提取事实、直接写入存储,Agent 就会同时保留这两条“事实”,还可能依据旧的那条作答。整合这一步必须识别出两条记录相互冲突,并更新旧记录,而不是再加一条。

下面是这一步的最简示意。它只是示例,并非课程中的代码:

def consolidate(new_fact, store):
    # 查找同一用户、同一主题(例如“团队数据库”)下已有的记录
    old = store.find(user_id=new_fact.user_id, key=new_fact.key)
    if old is None:
        store.insert(new_fact)                      # 新信息:直接添加
    elif old.value != new_fact.value:
        store.update(old.id, value=new_fact.value)  # 用户改了主意:覆盖,不要追加
    # 与旧记录完全相同:跳过,避免重复

实际难点在于生成稳定的 key,让“我们用 Postgres”和“我们已迁移到 Snowflake”落在同一个主题下。到了客户现场,第一件事就是把几个类似这样的“改主意”场景写成测试,甚至要在选数据库之前。

观点三:工具列表也可以检索

有一节 17 分钟的课讲语义工具记忆,用来扩大 Agent 可用的工具数量。这是一种检索模式,适用于任何向量存储。

假设客户有几百个内部 API。把所有描述都塞进提示词既浪费 token,又容易让模型选错。更好的做法是为每个工具的描述生成嵌入,每一轮只传入与请求语义最接近的几个工具。

客户不用 Oracle 时该去掉什么

Oracle 专属的部分相当集中,都在 langchain-oracledb 包及其 OracleVS 向量存储中,python-oracledb 驱动会随之一起安装。只有混合检索需要 Oracle Database 26ai。客户不用 Oracle 时,要替换的就是这一层。

其余部分依然可用,这得益于 LangGraph 本身的组织方式。LangGraph 文档把短期的、线程范围的记忆与长期记忆分开,后者跨对话存储用户或应用相关的数据。

对于短期记忆,LangGraph 建议在生产环境中使用基于数据库的 checkpointer。长期记忆是一个单独的 store,但说到底也只是存储层。两层都可以跑在客户现有的数据库上。

所以在第一次需求调研会上,要问清客户用的是什么数据库、由谁管理。答案决定记忆管道部署在哪里,管道本身的设计不变。

如何把这项技能写进简历

阅读 FDE 岗位描述时,留意 stateful agent、long-term memory 或 multi-session 之类的字眼。看到它们,就要为面试准备一个具体案例:你是如何处理 Agent 在会话之间丢失上下文的。

结课证书说明不了太多。一个小仓库更有分量:在 Oracle 以外的数据库上重做那个综合项目,并为“改主意”场景配一套测试。它能向面试官证明,你能把理念和厂商分开,而这正是 FDE 每周都在做的事。

这门课教 Agent 如何记忆。至于这些记忆放在客户基础设施的哪个位置,仍然要由 FDE 来决定。

这篇文章对你有帮助吗?

4 个信源
路线图上的下一篇 · 阶段 3: AI 应用Albada 的 Agent 书有 354 页,FDE 读一半就够书中最好记的建议只有一句:别给 Agent 300 个工具。FDE 最该读的章节都在后半本。