agent 开始自己改自己的代码了
代码的衔尾蛇——Agent 阅读并修改自己的源代码
Peter Steinberger 做出 OpenClaw 的第一版,大概只花了一个小时。结构很简单:把 WhatsApp 的消息转给 claude code 的 CLI,再把回复传回 WhatsApp,就这么一个桥接。两个月之后,它成了 GitHub 史上涨得最快的开源项目,25 万多颗星。这个项目没拿风投,背后也没有团队。
不过我觉得增长曲线还不是这个项目最值得看的地方。他后面做了一件事:让 agent 认识自己。不光是能读文件,是知道自己的架构长什么样、跑的是哪个模型、手里有哪些工具、文档放在哪。我只能说,agent 一旦对自己有了这层认知,出来的东西完全不一样,OpenClaw 是我见过最清楚的一个例子。
Peter 是拿这个框架来开发框架本身的。调试的时候他不自己去翻代码,直接问 agent:你现在看到哪些工具,这个工具你自己能调吗?去读一下你自己的源代码,搞清楚问题出在哪。agent 对自己 harness 的架构、跑的什么模型、文档放在什么位置都有相当深的认知,所以这些问题它是真答得上来的。
再往后就更有意思了。连没写过代码的用户都开始给项目提需求,Peter 管这种叫 prompt request(提示词请求):用自然语言把想要的修改描述一遍。agent 读完请求,再去读自己的源代码,把架构搞明白之后写出实现,自己提 PR。Peter 的原话是:「人们谈论自我修改的软件,我就做出来了。」
自我修改的闭环:自然语言需求进来,agent 读自己的源代码、写实现、自己提 PR,框架自己迭代自己
第六篇讲的转变是从写代码到管理 agent,第八篇讲的是缰绳把模型的潜力放了出来。agent 认识自己之后再往前一步,它自己就能当自己的管理者了,这个项目现在就是自己在迭代自己。
这种迹象其实我自己早就碰到过。我之前在 GCP 上搭过一套框架,接的是飞书,让不写代码的同事直接跟 agent 协作,第五篇写过这件事。当时有一点我没怎么展开:agent 干的活很快就超出了回答问题的范围。有同事需要一个不存在的小工具,它直接做了一个出来;某个工作流效率低,它自己把捷径找了出来。很多时候指令还没下,它已经拿着手头能用的东西把问题解决了。
Peter 在马拉喀什碰到的事更夸张。他随手给 agent 发了条语音消息,但框架当时只做了文字和图片的支持。agent 收到一个没有扩展名的文件,去检查文件头,认出这是 Opus 音频,用 ffmpeg 转码,又在环境变量里翻到 OpenAI 的 API key,调了转录 API,最后把他的问题答了。Peter 盯着手机就一句:这是怎么做到的?
马拉喀什那条语音消息:框架本没做语音支持,agent 靠自我认知一步步接力——认出格式、转码、翻出 key、调 API——把没人教过的事自己办成了
模型的智能一直都在。缰绳给了它动手的许可;等它对自己也有了认知,主动性就出来了——知道手里有什么工具、代码长什么样、能做到什么,很多事不用等人安排,它自己就办了。到这一步我觉得不太能再管它叫工具了,工具你不叫它不动,这个是自己会找事干的,更像个清楚自己能干什么的协作者。
Peter 有个判断:80% 的 app 会死。我觉得他说得对。每个独立 app 都是一组写死的假设,赌用户需要什么。MyFitnessPal 赌的是你愿意一顿一顿手动记饮食;Eight Sleep 那个 app,默认你会自己去调床温;日历更直接,事件全得你手动建。一个知道你日程、位置、习惯的 agent,根本不需要这些假设。「提醒我明天的晚餐,邀请两个朋友,给他们发消息」,一句话说完就办完了,一个 app 都不用打开。
这件事顺着第四篇讲的日抛型软件往下推就能推到。我当时的说法是,AI 把软件做得便宜到可以按需生成。现在看终局还要再往前一步:连生成软件这步都可以省了,agent 本身就是软件。每个 app 都退化成一个慢速 API,agent 绕着它们走:有权限就走 API,没权限就自己开浏览器。Peter 就看着自己的 agent 把「我不是机器人」的按钮点掉了,agent 可不管你 UX 做成什么样。
每个 app 都是一组写死的假设;懂你的 agent 不再打开它们,而是把每个 app 当成慢速 API 绕着走——有权限走接口,没权限就自己开浏览器
agent 还能量身定制软件,给你做一个刚好匹配需求的一次性工具,用完就扔。对比之下,按月收订阅费、只满足你 80% 需求的服务,存在的理由越来越站不住。第九篇讲过,数据锁定、工作流锁定、集成复杂度这些护城河在一层层塌。这不只是企业 SaaS 的事,手机里的每个 app 也一样。
「软件开发」这个词的含义会不会就此变掉,我说不好。OpenClaw 的 repo 里,现在的日常就是需求用自然语言进来,agent 自己读自己的源代码,读懂了动手改架构,PR 也自己提。往后走成什么样,接着看。