揭示 AI Agent 不会跨运行积累经验这一本质问题:LLM 权重固定,cron/n8n/Zapier 触发每次都是空白启动,必须自己构建记忆系统才能「学到位」。
把定时 AI Agent 跑得足够久,你心里就会开始萌生一个期望:它肯定会在这个过程中变得更好。Run 1 把发票格式搞得一塌糊涂;Run 20 已经能干净利落地处理;到了 Run 100,它应该成为专家了。
不会的。Run 100 和 Run 1 拥有完全相同的大脑,如果没有人替它记住什么,它会犯下同样的新手错误。
语言模型不会从经验中学习。它的权重在训练时就固定了。Run 47 发生的任何事情都不会改变 Run 48 中模型知道的内容。每次定时执行,无论是来自 cron、n8n Schedule trigger、Make scenario 还是 Zapier schedule,都会启动完全相同的模型,对上一次运行没有任何记忆。
这不是你可以通过 prompt 绕过的缺陷。你可以写出世界上最巧妙的 system prompt,但 Run 48 仍然从空白开始。模型是无状态的;以人类意义上的"通过练习变得更好"来理解,学习根本不是它所做的事情。
所以当有人说他们的 Agent 在多次运行中"学到"了东西时,实际上发生了什么?Agent 把东西写下来,之后再读回来。这就是整个诀窍,而诀窍的质量决定了你的 Agent 是复合进步还是只是重复自己。
Google 研究人员最近以异常清晰的方式演示了这种模式。他们的 WikiSkill 工作让 Agent 拥有了对过去错误的持久记忆,而机制几乎令人失望地简单:每次运行后,Agent 为自己写更好的指令,存储它们,并在下一次运行中调取出来。模型本身永远不会改变。它在每次运行开始时读取的指令变得更智能。从外部看,Run 30 确实比 Run 1 表现更好,不是因为大脑改进了,而是因为简报改进了。
对于自动化运营者来说,这重新構了整个人工智能的记忆问题。你不是在试图让你的 Agent"更聪明"。你是在一次又一次地建立它的简报文件。
如果你运行定时 Agent,学习循环只有两个步骤,而且大多数设置至少缺少一个。
步骤 1:在每次运行结束时写回。 你的 Agent 做的最后一件事应该是记录这次运行教给它什么:什么成功了,什么失败了,什么出乎意料,它下次会做什么不同的事。不是原始的日志转储,而是一条精炼的笔记。"Acme 发票 PDF 的总数在第 2 页,不在第 1 页;先检查那里"是一条 lesson。Three pages of tool-call transcripts is a log. Logs are for debugging. Lessons are for getting better.
步骤 2:在每次运行开始时回忆。 在 Agent 接触任务之前,它检索与这次运行相关的 lessons。每天早上运行的潜在客户评分 Agent 应该在评分之前阅读其积累的关于评分边缘情况的笔记。检索必须是有选择性的:注入五个相关的 lessons,而不是整个 400-lesson 的档案。一个被自己的笔记淹没的 Agent 表现比空白状态的更差。
错过步骤 1,Agent 就永远不会积累任何东西;Run 200 和 Run 1 一样天真。错过步骤 2,lessons 存在但从不影响行为,这就和没有它们一样。两个步骤都需要是工作流程中有意识的部分,而不是你希望模型自己做的事情,因为它不会。
大多数 Agent 记忆系统在这里失败,也就是存储内容的质量上。一条有用的 lesson 有三个属性。它是具体的:"check page 2 for the total" 胜于 "be careful with invoices." 它命名了它的触发条件:Agent 需要知道这条 lesson 何时适用,这样检索才能找到它。而且它是可操作的:它告诉未来的运行应该做什么不同的事,而不只是什么地方出了问题。
一条糟糕的 lesson 看起来像 "the run failed at 3am." 那是一条穿着 lesson 外衣的日志条目。一条好的 lesson 看起来像 "the vendor API returns 429s between 2am and 4am during their maintenance window; add a retry with backoff instead of failing the run." One of these changes future behavior. The other just takes up retrieval space.
这也是为什么仅原始对话历史不会产生学习。完整的历史是有价值的,它是 lessons 提炼的证据,你想保留它。但是一个 Agent 在每次运行开始时阅读 50 份完整 transcripts 是缓慢的、昂贵的,而且会感到困惑。Transcripts 是原材料。Lessons 才是产品。
正确设定期望,这个模式确实很强大。你的 Agent 永远不会像人类员工那样成为专家。它永远不会有直觉。但是一个有纪律的写回和回忆循环的定时 Agent 做了几乎同样有用的事情:它停止在每次运行中支付 rookie tax。同样的错误不会再发生第二次。边缘情况能被立即处理,而不是每天早上重新发现。这就是复合,它是真实的,只要你记住复合存在于记忆层,而不是模型中。
这也是工具比大多数运营者预期的更重要的地方。Lesson store 必须跨运行存活,可以从堆栈中的每个工具访问,并且随着增长保持可查询。n8n 主机上的 JSON 文件可以工作,直到 Agent 还需要从 Make scenario、cron job 和笔记本电脑上的编码助手运行,那时"一份简报文件"突然变成了四份不同的文档。
Vilix AI 正是为这种问题而构建的。它是云托管的,所以没有基础设施要管理,当主机被清除时也不会丢失任何文件。相同的记忆通过 MCP 在任何地方都可以访问,所以定时 Agent、聊天助手和每个其他工具都读写相同的 lessons,而不是分叉它们。它保留完整的对话历史,而不仅仅是精炼的事实,所以 lessons 总是离检索只有一步之遥。有永久免费计划,7 天 Pro 试用无需信用卡,你可以随时以可移植格式导出或删除所有内容。在 vilix.ai 了解更多信息。
你的 Agent 永远不会从其错误中学习。这不是悲观,这是架构。权重是冻结的,无论多少次运行都不会改变它们。但是,一个具有记忆层的 Agent,在每次运行结束时捕获 lessons,在下一次运行开始时回忆它们,从外部看,表现得就像能学习的东西一样。有意识地构建这个循环,保持 lessons 清晰,Run 200 将真正优于 Run 1。只是要确保功劳归到该归的地方:不是模型,而是你给它的记忆。