An open notebook with handwritten notes beside a dim laptop at night
Back to blog
EngineeringAI Automation

290 次会话、13 条教训:AI 智能体自己教会了自己什么

我们的 AI 智能体每晚回顾自己的工作,记下学到的东西。复盘 290 次会话后,有 13 条教训通过检验,我们保留了其中 6 条。这里讲讲它们发现了什么,以及这些发现到底值多少。

S
Sno AI Team
October 5, 2026
|
6 min read
|
118 views
Share:

多数早晨,我打开终端,最上方都会出现一条教训:运行你写的测试,并在说自己完成之前报告通过还是失败。

我们团队没人写过这句话。它是一个 AI 智能体在夜里写的。当时,它读了一天自己的工作,发现自己总是写完测试却不运行。

人们把这叫作递归自我改进(RSI)。听起来像是一篇讨论世界末日的论文。实际做起来,更像音乐家在演出后听录音:你听出某一段演奏得太快,记下来,第二天就会稍微慢一点。

从九月中旬起,我们就在自己的机器上运行这个循环。我读到的多数关于 AI 智能体递归自我改进的文章,都在讲它将来可能做到什么。这篇讲的是我们的智能体到目前为止实际做了什么。

这个循环如何运作

Sno Station 每天运行一次。步骤很简单。

它收集 Claude Code 和 Codex 当天的会话。每次会话都会得到两个简短标记:值不值得保留,以及成功还是失败。保留下来的会话交给一个负责判断的模型,它寻找学到东西的时刻。通常是人纠正了智能体;有时是智能体自己发现了问题;有时则是环境给了它一个教训。

对于每个这样的时刻,判断模型会写出一条包含四部分的教训:触发它的情境、建议、原因,以及从会话里逐字引用并标明出处行的证据。

接着,教训必须通过两道关。

第一道是机械检查。教训引用的每一句话,每个字符都必须与其声称来源的会话一致。如果引用根本不存在,这条教训就会被丢弃。第二道由另一个模型负责,它唯一的任务就是提出质疑。它根据证据给教训的每句话打分。说得比证据能支持的更多,就过不了关。

最后轮到人。我读完剩下的教训,决定保留还是不保留。

通过检验的教训,会在之后的会话开始时展示给智能体,每条一行,帮助最大的排在最上面。如果某条看起来相关,智能体可以打开全文。

最后得到了什么

下面这些数字来自我们构建机器上的循环记录。

它收集了 1,879 次会话,其中 290 次送去判断。13 条教训通过了两道关。我保留了 6 条。另外 7 条还在那里,等我决定。

290 次会话,13 条教训。这个比例起初让我吃惊。后来想了想:你自己有多少天的工作,值得写下来贴在墙上?大多数日子就只是普通日子。

教训本身也很小。说实话,我原本期待的是更宏大的东西。下面三条按智能体写出的内容引用。

在 npm 工作区中用 git mv 重命名包或目录后、运行验证之前,明确检查每个包中被 git 忽略的构建输出目录(dist/、build/、out/)是否留有旧文件。移动或删除这些文件。
在编写补丁的每个修改块之前,读取目标位置的确切行范围,取得原样的上下文。绝不要复用此前读取同一文件时被截断的内容中的标识符或语法。
在明确的契约或限定范围的测试证实某项功能不存在之前,把它标为“查阅的资料中未记载”。

第一条在发生的那天让我们损失了一整个下午。一个包改了名,源代码全都正确,但安装一直失败,因为旧的编译文件还躺在一个 git 不会查看的文件夹里。第二条则是智能体每周能干上四十次的事:它大致记得文件写了什么,就凭记忆写补丁,而不去对照文件。

第三条是我最喜欢的。一个智能体在比较产品时,没有在竞争对手的文档中找到某项功能,于是报告说对方没有这项功能。没有提到,不等于不存在。这条道理我也得教给人。

这些是资深工程师不知不觉随身带着的经验。吃过亏留下的印记。区别在于,智能体每次开始会话时,身上一点这样的印记都没有。

它到底值多少

我还说不准这些教训到底有多大帮助。

这些教训在 5,595 次会话开始时展示过。智能体完整打开一条教训的次数是 135,大约占 2%。因此,要么一行版本已经做了大部分工作,要么这些教训根本没起作用。我不总能分清是哪一种。

这个循环也会检查自己的结果。展示教训之后,它会问智能体是否照做,以及照做是否有帮助。到目前为止,明确回答“照做了,而且有帮助”的有两次,都是同一条教训。另外七次的结果不明确。

至于我终端最上方那条关于运行测试的教训呢?它生效后,智能体有时还是会跳过测试:12 次会话中有 4 次没运行。生效前是 119 次中有 22 次。样本太小,不能说情况变差了。当然,也远不足以说情况变好了。

所以我现在不知道。这是实话。如果今天非要我给它估个价,我会说,保留下来的每条教训能避免一次错误,而这种错误会耗掉十分钟到一个下午;同样的六种错误又足够常见,所以这些教训有意义。有一晚判断 193 次会话,花了大约五十美分。即使我高估了价值,代价也不大。

我更相信的东西,比测量结果要朴素。我认得这些教训。读到它们时,我会想:对,这事确实发生了;对,这也是我会告诉智能体的话。

哪里出了问题

这个循环本身也需要接受它给智能体的那种检查。

早期的一个缺陷让教训草稿绕过第二道关,完全没有经过检查。我们把这些草稿全都扔掉了。上面的数字只包括走完全部流程的教训。

我们还把这个循环做得太谨慎了。金丝雀测试、哈希检查、崩溃恢复。有一晚,我们从中删掉了 724 行这样的代码,它反而运行得更好。一个为了从错误中学习而建的系统,被一层防护包住,防的却是它从没犯过的错误。

随后在九月底,这个循环没了动静。一个设置文件不见了;它每晚醒来,发现没有任何允许发送的内容,就又睡了回去。它这样持续了一周,才有人发现。一个凌晨三点悄无声息地失败的东西,很难让人喜欢。

这件事现在也列在清单上了。也许它该变成一条教训。

接下来呢

十三条教训不等于智能体重写了自己。它只是一本笔记。一个月前,我们的智能体周二会犯和周一一样的错误,而且完全不记得这两次。

有些早晨,提醒明明摆在那里,测试还是没跑。

Sno Station 是开源的,每晚回顾也是其中的一部分。项目在 sno.ai。

S

Written by Sno AI Team

Contributing writer at Sno.ai, sharing insights about AI, productivity, and knowledge management.

Related Articles

Comments

Comments coming soon. Configure Giscus at giscus.app

290 次会话、13 条教训:AI 智能体自己教会了自己什么,最后又有多少值得留下来,我们逐条复盘了