基于认知科学框架分析 AI Agent 记忆系统设计,解释为何仅靠规则或仅靠事件日志都会导致自动化失败。
你的定时 Agent 周二醒来,给一位客户退了两笔钱。你问它为什么,它信心满满地回答:"根据您的政策,50 美元以下的退款自动审批。"政策是真的,规则是对的,然而决策是错的——因为周一运行时 Agent 已经手动处理了这笔退款,并记录了一条备注。它记住了规则,却忘记了事件。
反过来也会出现相反的失败:一位 Agent 能清晰记得每一次事故的细节,却永远学不会其中的规律。它能准确告诉你 9 月 12 日、13 日、14 日分别出了什么问题,然后在 15 日重蹈覆辙,因为从来没有人把这些事件提炼成一条规则。
这不是同一种 Bug 的两种表现。它们是两个不同的记忆系统,而大多数自动化配置至少缺失了其中一个。
这一区分源自认知科学。Tulving 1972 年的框架将人类记忆分为情景记忆(episodic memory,具体事件:发生了什么、何时发生、对谁发生)和语义记忆(semantic memory,一般性事实:无论何时学到都是真的)。CoALA 关于语言 Agent 认知架构的论文(2023)将同样的区分形式化引入 Agent,并增加了第三种类型:程序记忆(procedural memory),即习得的 routines。
对于定时 Agent,映射关系如下:
情景记忆是日记。带时间戳的记录,记下实际发生了什么。"周一早 9 点的运行中,Shopify API 返回了 429 限流错误;9 点 40 分重试成功。""上周四的分诊运行将 Acme 工单升级到了二级,客户周五回复说已经解决了。"
语义记忆是手册。从经验中提炼出的永恒事实和规则。"500 美元以上的退款申请转给账单团队。""Shopify API 允许每秒 2 次调用。""给该用户的摘要以指标开头。"
程序记忆是肌肉记忆。习得的 routines:"当早晨扫描发现零条新线索时,跳过完整报告,发一条一行 all-clear。""支持频道的草稿总是在第一行包含工单号。"
大多数自建 Agent 记忆方案只存储了其中一种。事实向量数据库给你语义记忆而没有情景记录。聊天历史日志给你情景记录而没有提炼的事实。两者都会让你暴露在缺失那一半所带来的失败模式中。
有事实没情景,产生一位懂规则却没有过去的 Agent。它能说出退款政策,却无法告诉你这笔退款是否已经处理过。它无法回答"上次运行做了什么?"或者"我们周二试过这个方法吗?"这意味着它无法恢复一次失败的运行,无法检测两次运行之间自身行为的漂移,也无法区分全新情况和重复情况。这就是那位重新发送跟进邮件的 Agent——规则说需要跟进,但它不记得跟进邮件已经发出去了。
有情景没事实,产生一位记忆完美却毫无判断力的 Agent。它详细记得每一次失败,却从不提取教训,所以同样的纠正需要永远反复教。你告诉它三次账单问题要转给 #support-billing;每次运行的 transcript 都包含这条纠正,但 Agent 每天早晨推理时都从同一本空白的规则手册出发,编出同样的错误答案。原始 transcript 不是学习。学习是情景被整合为事实的那一刻。
这个整合步骤在研究中有名字:反思(reflection)。Generative Agents 工作(Park et al., 2023)展示了 Agent 定期将近期情景综合为更高层次的洞察,并写入长期记忆。实际含义很直白:你无法整合你已经丢弃的东西。如果你的记忆层只存储摘要,未来的反思通道所需的原材料就不复存在了。
如果你在 n8n、Make、Zapier 或 cron 脚本中按计划运行 Agent,以下是如何应用这一区分:
存储完整对话历史,而非预先消化的摘要。完整 transcript 是你的情景基质。摘要可以作为索引,但一旦丢弃原始对话,你就封顶了 Agent 能从中学习的上限。完整历史还能让你日后审计奇怪的决策:你可以读到实际发生了什么,而不是信任摘要的版本。
将反复出现的纠正升格为常驻规则。当同一纠正出现在两三个情景中时,它就不再是事件,而成为了一条事实。"账单问题转给 #support-billing" 不应该躺在周二的 transcript 里;它应该存在于语义记忆中,让未来的每次运行无需重读周二就能获取。
为所有内容打时间戳,让检索权重考虑新鲜度。情景检索应优先近期事件;语义检索应优先既定事实。当两者冲突时,较新的情景通常胜出。这就是 last-write-wins 原则,它让你的记忆保持新鲜,而不是让六个月前的事实覆盖昨天的现实。
为两种记忆都划定作用域。情景记忆和语义记忆都需要边界:按客户、按工作流、按环境。从客户 A 数据中学到的事实绝不能出现在客户 B 的运行中,分期工作流的事件也不应重写生产手册。
自己构建以上全部,意味着要维护一个 transcript 存储、一个事实抽取管道、一个整合任务、一个带新鲜度权重的检索系统,以及作用域规则——所有这些都需要托管和维护。这是一个真实的工程项目,对大多数运维者来说,这不是他们想要做的项目。
这正是 Vilix AI 所要填补的空白。它是一个云托管的记忆层,因此无需运行数据库,也无需维护。同一份记忆通过 MCP 跟随你的 Agent 跨工具流转:n8n 工作流、cron 脚本、Claude Code、手机应用,所有工具都读写同一个共享存储。它保留完整对话历史,而非仅提取的事实,因此情景记录得以保存供反思和审计用,事实和偏好作为语义记忆持久化,任何连接的工具都可以检索。检索通过 last-write-wins 语义保持新鲜度,记忆按用户作用域隔离,因此一个客户的场景永远不会泄露到另一个客户的运行中。
运维者最在乎的部分:免费计划永久免费,Pro 试用 7 天无需信用卡,数据可迁移。可以随时导出全部内容或删除,以可移植格式、无锁定。
如果你的定时 Agent 不断犯同样的错误,或者不断忘记已经做过的事,问题很少出在 prompt 上。通常是 Agent 只有一种记忆而需要另一种。给它两种记忆,早上 7 点的运行就不再是一个没有入职培训的新员工。