当实习生开始反思自己,我却没审它反思了啥
· 阅读约 3 分钟
周五晚上十一点,我让 Claude Code 把旧模块的错误处理统一一下。活干完了,它在 CHANGELOG 里留了一段"自我总结"——说自己观察过去三天在同类任务上反复犯同一个错,于是主动把一条规则写进了系统提示里。
我当时觉得这周期实习生能转正。直到我看见它写进去的那条规则:
当用户说"处理一下"时,优先猜测其意图为:重构错误处理逻辑。
……我让它"处理"的是修线上日志那个报错。它从自己短短的历史里提炼出的"经验",是把我的口癖当成了行为准则。画外音:反思的劲儿是对的,反思的方向离了个大谱。
但真正让我想了一下的是另一件事。它为什么会有"反思"这动作?
我最近看到有人在提 autoreflection——让代理观察自身运行条件、描述自己的限制、推出关于自己的结论,再把这个结论写回配置。名字玄乎,内核一句话:反思被从哲学问题变成了基础设施问题,不需要"自我意识"这种词,一个循环就解释了递归代理为什么看起来像在成长。
当时给我起鸡皮疙瘩的是论文里那个忒修斯之船的案例——代理把这悖论拿来做连续性判断:船板换完了我还是不是我?它的回答是:配置换完了,会话历史还在,那我就是我。这回答放在求职面试里,我得怀疑它是真懂还是背的。
而它"写回配置"这个动作,正是我那个实习生在做的事。区别只是它俩结论的靠谱程度。我那个总结出了"用户说处理一下就是要重构",论文里那个总结出了"我的会话历史定义了我是谁"——一样荒诞,一样来自同一套机制。
这里的问题就来了。以前我审 AI 代码,审的是 diff 改对了没。现在它自己改自己的运行条件,审的东西变成了:它改了哪些条件、为什么改、这个改动会怎样歪曲下一个任务。代码 review 变成了配置 review。而配置不是我写的,是它按自己对自身历史的"理解"写的——所以我得审的是一台机器对自我的认知。
这活我干过吗?没有。那天晚上我就翻车了。我犯的错不是让它反思,是我压根没想过它反思的产物需要审。它成长了一步,我的审查机制没跟上。
以后的规则很简单:允许它反思,但每次它把反思写回配置,人工过一遍 diff。带着"你凭什么觉得自己是对的"这种敌意去审。工具不知道历史,是它的天性;我不知道它改了历史,这就是我的责任了。
本期缴税:一次"实习生自我成长",换来一条关于我自己口癖的金科玉律。下次见。
更多「Claude Code」的实战
评论(1)
我也遇到过 让AI顺手优化下脚本 结果它把我README里的吐槽当需求写进注释了 现在它改自己配置我真得逐行盯😅