Why we prompt?
2023 年 2 月 24 日是我第一次使用大模型。那时我刚开始学 C++,GPT-3.5 给了我不小的震撼。“What is xxx?” 大概是那一年我最常用的开场白。

现在,我们早已不满足于问“What is xxx?”。nanobot、openclaw、Claude Code、Codex,各种 agent 像雨后的蘑菇一样长出来。一个人坐在电脑前,说一句“Hi agent, help me do something”,屏幕那边就开始写代码、改页面、查日志、补测试。偶尔犯蠢,但也蠢得很勤快。
这件事有一种很新鲜的荒诞感。过去资本家压榨人,还要给人配电脑、工位和咖啡。现在好了,一个人能指挥好几个 agent,像小包工头一样在屏幕前发号施令。老板也学会了新的语言:「我一下午做了个 demo,80% 的情况下可用,你把它完善一下,明天上线。」听起来像进步,仔细想想,也像把绳子换成了无线的。
以前写普通的业务代码,接口怎么接,字段怎么传,页面怎么拼,手会顺着一条线往下敲。现在我可以同时开几个 agent:这个改前端,那个补测试,另一个查线上问题。它们都在干活,我也没有闲着。我在拆任务、补上下文、读 diff、纠偏、验收,再把一个 agent 的输出喂给另一个 agent。写代码的人变成了调度员,脑子被迫开了多线程。
这和我想象中的解放不太一样。
我原本期待 agent 把我从低价值的重复劳动里拉出来,让我去想更有意思的事。它确实接走了不少执行工作,却也带来了另一种焦虑:最新模型、最新框架、最新工作流,好像每天都有一班车要赶。真正的问题还不是 agent 偶尔犯蠢,而是我们太容易把没想清楚的东西交给它,再让自动化批量放大。
以前我们问“What is xxx?”,现在开始谈 loop engineering,谈从写 prompt 转向写 loop,用 loop 自动调度 agent,让一切自己运转。这个想法有它合理的地方。CI 不需要人盯着跑,格式化不需要人手敲,固定模式的迁移和检查也不该靠肉眼一遍遍看。能交给机器的苦活,确实应该交出去。
问题在于,loop 这个词越来越像万能胶水:仿佛把几个 agent 串起来,人就可以从项目里消失。可写代码有太多执行之外的事。什么该做,什么该放弃,边界在哪里,风险能不能接受,用户真正需要什么,今天这坨东西有没有资格交付——这些判断没有那么自动。
agent 可以很聪明,可以生成代码、解释错误、补测试、开 PR。可它并不知道这个产品为什么存在,也不会在事故复盘会上脸红。方向和责任外包不出去,最后坐在那里看结果的人还是你。
所以我越来越觉得,prompt 并不落后。写 prompt,其实是在做一件很古老的事:把脑子里那团含混的东西说清楚。目标是什么,背景是什么,哪里不能碰,什么结果可以接受,什么时候应该停下来问人。一个需求从脑子里走到机器手里,中间有一段泥地。prompt 是人蹚过去时留下的脚印。
prompt 和 loop 也不是非此即彼。loop 负责让工作持续运转,prompt 则是人的判断进入这套循环的重要接口。机器可以执行,也可以推理,但它不会天然知道什么值得做。少了人的校准,自动化会变成一条顺滑的传送带,把错误、幻觉和没想清楚的需求一路送到用户面前。
构建产品的门槛已经很低了,低到我们很容易误以为“做出来”就是“做好了”。如果 agent 最后只让我们生产更多代码、接更多需求、开更多并行任务,那就太可惜了。它本该把人从重复执行里释放出来,让人有时间想清楚什么才值得做。
如果用了 agent,我只是从一个写代码的人变成同时监工十个 agent 的人,那不过是工作方式变了,疲惫并没有减少。我不反对 loop,也不怀念手写代码。我关心 prompt,是因为我希望在越来越自动化的工具链里,人仍然留在真正重要的位置上:提出问题,判断方向,并为结果负责。