CMU AI AGENTS / 历史越来越长,经验应该放在哪里 / 第 14 课

记住“用户偏好蓝色”和记住“怎么做采购”,是一回事吗?

区分情景记录、事实记忆和程序性技能;即时上下文、外部存储、模型权重是不同更新位置。写进文件不等于模型已经训练过。

完整讲解 · 条件对照 · 理解检查所在单元与学习顺序官方课件全页浏览

本节要解决的事:把什么保存下来,与保存在哪里,是两条不同的轴。一个文件既可能记录过去发生的事,也可能说明下次怎样做。

四张卡片,不应该有同一种有效期

卡片一:“用户更喜欢蓝色。”卡片二:“上次 A 店下单因地址缺失失败。”卡片三:“采购时先核对规格、含税运总价和库存,再请求确认。”卡片四:“A 店现在库存 5。”它们都能写进文件,却不能因此当成同一种记忆。

偏好更像相对稳定的事实,仍可能被用户更新;失败订单是带时间和对象的情景记录;采购流程是程序性知识,说明怎样行动;当前库存是会迅速过期的观察。下次采购若把库存 5 当成永远正确,保存得越牢反而可能错得越坚定。

先分内容,再选更新位置

情景记忆保留某一次经历,便于追问当时发生了什么。语义或事实记忆提炼相对一般的信息,例如用户当前明确表达的偏好。程序性知识描述步骤、适用条件和验证方法。这个分类是帮助分析的教学框架,不表示每份记录必须互斥地归入一个格子:一条技能可以附带它来自哪次成功经历。

官方原课件 · Lecture 4 · PDF 第 5 页记忆与技能有重叠,但不等同
左侧是来自自身交互的记忆,右侧是关于如何行动的可复用技能,中间是归纳得到的技能

原图中间说明“从经验归纳的技能”兼具两者。右边人工编写的发布检查表可以是技能,却不一定来自 Agent 自己的经历;左边一次购买记录也不自动变成操作方法。

再看保存位置:即时上下文让当前调用直接看见内容,保真却受长度与成本限制;外部文件或数据库允许检查、修改、检索,但必须选对再载入;模型权重则通过训练改变行为,更新和审查方式不同。写进 memory.md 不是训练了一次模型,也不能保证下次调用一定会读取。

官方原课件 · Lecture 4 · PDF 第 3 页同一经验可以放在三个更新位置
上下文窗口、外部产物、模型权重各自的优点和缺点表格

逐行问:谁负责更新、怎样取回、能否直接审查。课件把本讲重点放在外部产物,不把写文件与更新权重混为一谈。

一条长期记录至少回答四个问题

从哪里知道它?什么时候有效?什么任务会读取它?什么证据能修改或撤销它?例如偏好卡记录“用户在本次项目明确表示偏好蓝色”,下次挑颜色时取回;新消息明确改为黑色时更新,同时保留必要的变更来源。库存卡则加查询时间,下单前重新查询,不以长期存储代替实时验证。

失败情景也不应直接变成绝对规则。“上次 A 店失败”可能因为地址缺失,不代表 A 店永远不能买;真正可复用的是检查地址完整性及对应接口要求。保留原情景帮助追溯,归纳技能则需要额外证据与测试。

观察过程 · 改变条件

同样查采购,哪些卡片可以直接沿用?

先做预测,再逐步展开。这里是固定规则的教学回放,不是真实模型测评。

教学构造场景 · 按下方规则逐步回放;不调用真实模型,不代表实际成功率。

这一轮的输入

旧偏好蓝色;昨日库存 5;今天需要 3;无新的库存结果。

  1. 1. 检索偏好

    将蓝色作为候选筛选条件。

  2. 2. 检查新鲜度

    昨日库存只是历史观察,当前库存未知。

  3. 3. 读取流程

    按采购技能重新核验库存后再判断。

检索偏好

将蓝色作为候选筛选条件。

1 / 3
先预测,再核对结果与原因保留偏好,刷新库存

不同内容的失效速度不同。

存得多,不等于记得好

朴素系统把每次聊天都附加到记忆文件,久而久之包含互相冲突的库存、重复偏好和不再使用的步骤。检索可能恰好找到最旧的一条。更好的维护至少需要去重、来源、有效范围和失效处理;重要事实出现冲突时,应选择有依据的当前版本,无法确定就保留冲突而不是猜一个。

另一组对照是“只存事实”和“只存操作”。只有事实,换到新任务时仍不知道怎样做;只有流程,可能忽略当前用户的限制。真正执行时要组合:当前目标决定要做什么,事实约束允许什么,技能提示怎么做,工具观察检查现在是否成立。

外部记忆还会有检索错误、陈旧内容和权限问题。某条记录来自其他任务,不等于可无条件用于所有上下文。这里不追求建立无限记忆,而是让每一条被拿出来的信息都能解释为何适用于当前行动。

理解检查

问题一:记录“上次成功买过红笔”,是否等于学会采购技能? 不等于。它描述结果,没有给出可复用步骤、前提与失败处理。可以作为归纳材料,但还需提炼并验证。

问题二:把蓝色偏好写进文件,下次模型一定知道吗? 不一定。文件必须经过检索或读取进入本次输入,除非系统有明确加载机制。外部存储不是权重更新。

问题三:本次要求黑色,是否应该永久删除蓝色偏好? 未必。“这次”可能是局部例外。应优先满足当前任务,同时区分一次性覆盖与用户明确修改长期偏好,避免过度归纳。

下一问

当外部产物变成几十份技能,每份都很长,怎样让模型选到合适的一份而不把全部内容每轮重读?下一节沿目录、正文、脚本和参考文件逐层打开。