金融场景下的语调偏差与手动修复困境
在构建AI代理时,团队普遍希望系统能从一次运行到下一次运行中不断变好。以LangChain Labs与一家金融服务公司合作的案例为例,该客户正在开发一个用于支出、预算和非投资建议的代理。由于金融行业的强监管性质,该代理必须严格遵守特定的语调指南。用户的交互方式、词汇选择以及语气是判断其是否合规的关键指标。代理需要根据上下文、记忆以及对规则和政策的引用来生成相应的语调。然而,在实际运行中,代理的语调偶尔会出现偏差,从“建议性”和“有帮助”转变为“尖锐”和“指令式”。例如,它可能会说:“实际上,看起来你需要取消一些订阅并将资金转入储蓄。”
"The company that we're working with thought that this is a violation of tone... the review process is manual. You have to have someone understand the traces and understand where its tone slipped..."
这种语调偏差被视为违规,且类似情况时有发生。目前的修正流程完全依赖人工:审查人员必须理解追踪记录(traces),定位语调偏差的具体位置,修改代理在生成语气时引用的上下文,并确保没有发生回归测试失败。这种手动修正过程显然无法扩展(doesn't scale)。因此,围绕代理的系统应当成为一个能够从其交互和经验中持续学习并受益的地方。这正是本次演讲所探讨的记忆版本的核心目标。
从可观察到自适应:追踪日志转化为记忆信号
许多团队在构建代理时,虽然擅长观察它们的行为,但将观察结果和代理经验转化为未来运行的教训是截然不同的两件事。这就是“记忆”发挥作用的地方。随着更多代理的构建,它们产生的信号和追踪记录比以往任何时候都多。每一次运行都会产生一条被存储在某处的追踪记录,这非常有用。它让我们能够理解调用了哪些工具、代理在做出决策过程中的推理逻辑,以及引用的工件。可观察性(Observability)显然是构建可靠代理的关键基础。
然而,真正的挑战在于追踪记录被存储之后。如果未来代理引用的上下文从未改变,那么错误的技能或指令意味着今天犯下的错误将在未来的运行中持续存在。我们追求的目标是让追踪记录不再仅仅是一条日志,而是成为信号的来源——即记忆。可观察的代理告诉你发生了什么,而自适应的代理能够改变并指导其后续的运行。为了明确概念,“记忆”是指代理引用的、将引导未来运行的持久上下文。追踪记录、转录本或日志是发生了什么事的证据,只有当这些教训被转化为代理可以在未来运行中引用的持久上下文时,它才成为记忆。
认知科学视角下的代理记忆分类体系
为了更清晰地理解这一概念,我们将记忆内容分为三个不同的类别,借鉴了认知科学中的分类法:事实与偏好属于语义记忆(Semantic Memory),即代理“知道”的内容;学习到的模式、过去的交互和示例属于情景记忆(Episodic Memory),即代理“经历过”的内容;而指令、技能和规则则属于程序性记忆(Procedial Memory),即代理“应该如何行为”的内容。
"Procedural memory is where actually most of the visible gains come from."
在之前提到的金融辅助案例中,我们希望代理遵循的语调变化是通过更新其程序性记忆来实现的。我们并没有给它一个新的事实,也没有告诉它不要使用某个坏词,而是给了它在与用户交互时必须遵循的一条规则。程序性记忆是指导我们代理行为的核心。此外,还需要区分工作内存(Working Memory)与长期记忆。工作内存是代理在当前运行中引用的内容,如中间草稿、工具结果或检索到的文件;而长期记忆则存在于其他数据结构中,包含代理在后续回合和持续行为中需要引用的指令和技能。不同的代理框架会以不同方式利用和注入长期记忆,但其核心在于将过去的经验固化为可复用的持久上下文。
短期工作记忆与长期持久记忆的区分
在构建 AI Agent(智能体)时,实现方式虽多样——无论是直接注入提示词、使用工具检索、从存储库拉取,还是通过文件或运行时状态加载——但核心在于区分短期工作记忆(Working Memory)与长期持久记忆(Long-term Memory)。前者是临时的,服务于当前任务;后者则是持久的,用于指导未来的运行轨迹。追踪(Traces)不仅仅是最终输出的记录,更是工作记忆在运行过程中变化的完整历史。这种区分至关重要:一部分证据应保留为可参考的历史,另一部分则需转化为持久的长期上下文。正如演讲者所言:> "A trace isn't just a record of the final output. It's a record of how our working memory changed over the course of the run." 这种结构化的记忆观为理解智能体如何随时间进化提供了基础框架。
核心心智模型:读写循环与睡眠时计算
为了更清晰地理解这一关系,LangChain 团队提出了一种读写循环(Read-Write Cycle)的心智模型。这一过程类似于人类睡眠时的计算或“做梦”,即在智能体工作或休息时,将记忆从长期存储提取到短期工作区。在运行开始时,智能体需要从长期记忆中读取相关上下文(如技能、指令或渐进式披露的相关能力)进入短期记忆。随后,智能体执行任务并产生追踪证据。关键在于过滤步骤:如何决定哪些是有效信号以更新长期记忆,而哪些仅作为历史保留。如果将所有证据都转化为长期记忆,智能体将难以推理;因此,必须筛选出有用信号。这一核心循环可以概括为:记忆指导运行 -> 运行产生证据 -> 过滤证据形成信号 -> 更新记忆。通过构建这种飞轮效应,智能体能够表现出随时间推移而变得越来越可靠和强大的特性。
抽象三步法与 LangSmith Context Hub 的实现
将上述循环进一步简化,可以归纳为三个抽象步骤:捕获(Capture)、分析(Analyze)和更新(Update)。在 LangChain 的实践中,捕获步骤依赖于可观测性工具(如 LangSmith),用于记录智能体的轨迹、工具调用及子代理交互;分析步骤则是从追踪中提取信号的智能过程。LangChain 的 Context Hub(上下文中心)正是这一分析结果的存储点,它允许远程更新智能体的参考数据。以金融助手为例:当 Agent 运行时,其上下文(包括指令、技能 Markdown 文件等)从 Context Hub 加载;运行产生的追踪数据会标记出语调偏离预期的情况。引擎随后识别模式,决定是否需要修改静态技能文件并更新 Context Hub。下一次运行时,智能体便能根据更新的上下文调整其交互语调。这种机制确保了只有经过筛选的、有意义的信号才会改变智能体的行为模式。
记忆更新的过滤原则与数据治理
在设计此类抽象时,必须认识到智能体产生的“废气”或反馈量巨大,并非所有内容都应成为记忆更新。演讲者强调:魔鬼在于细节——理解并决定什么对你来说才是重要的,是设计记忆系统的核心。大多数追踪数据应仅作为可参考的历史或用于离线评估的数据集,只有一小部分子集才应转化为改变 Agent 记忆的信号。这种严格的过滤机制防止了信息过载,确保长期记忆的纯净性和有效性。通过明确区分历史参考与持久上下文更新,开发者可以构建出更加稳健、可解释且具备自我进化能力的 AI Agent 系统。这一方法论不仅适用于 LangChain,也为整个行业提供了构建具备持续学习能力智能体的通用蓝图。
记忆更新的热路径陷阱与缓存策略
在构建AI Agent时,开发者常面临一个隐蔽的难题:如何在优化系统性能的同时,确保记忆存储能在“热路径”(hot path)中即时更新。对于长时间运行的后台Agent而言,如果在操作初期进行了记忆更新,但由于运行时状态或访问机制的限制,这些新信息可能无法在后续运行中被正确读取。这种缓存与实时更新的矛盾导致Agent的行为模式停滞不前,开发者往往难以察觉为何系统表现没有随经验积累而改善。理解哪些数据可以缓存、哪些必须保持实时可用,是确保记忆更新对后续运行生效的关键。这一原则对于维持Agent行为的动态演进至关重要,忽视它会导致系统陷入静态僵化。
程序性记忆的人类审核机制
随着Hermes Agent等流行框架的普及,Agent具备自我更新能力成为一种趋势。然而,并非所有记忆都适合完全自动化更新。程序性记忆(包括指令、策略和语气指南)通常决定了Agent约75%的行为表现。鉴于其重要性,这部分记忆应当引入人类在环(human in the loop)机制。在进行任何实质性提交之前,应设置一个审查环节,让人类确认对Agent核心行为部分的修改。这种保护重要行为的机制确保了自我更新不会偏离预设的安全或质量轨道,是构建可靠Agent架构的第三层重要考量。
从经验到上下文的转化逻辑
记忆不仅仅是信息的存储库,更是将经验转化为上下文的媒介。只有当过去的经历被正确编码并作为当前运行的背景信息时,Agent的下一次执行才能获得改进的机会。这种“下一次运行应该更好”的理念是记忆系统的核心价值所在。通过提供丰富的上下文,Agent能够基于历史数据调整策略,从而实现持续优化。
"Memory really does give us the ability to do this. And it's more than just a place to store information. It's how experience becomes context."
"The next run should be better. Memory allows us to do this."
结论
该演讲论证了将追踪日志转化为持久记忆是构建自适应AI代理的关键,核心在于区分工作记忆与长期程序性、语义及情景记忆。通过“捕获-分析-更新”的读写循环,系统能从大量交互信号中筛选有效信息以优化行为。然而,该方法面临显著挑战:需严格过滤数据以防过载并解决热路径缓存导致的更新失效问题。鉴于程序性记忆主导大部分行为,完全自动化存在风险,必须引入人类审核机制以确保安全与质量。最终结论是:记忆系统不仅是存储库,更是将经验转化为上下文以确保持续进化的核心机制。