你说错,它就漂亮地做错

说个反直觉的,模型越强,你说不清楚想要什么的代价越大。

以前模型笨,你说不清它也做不好,锅可以甩给模型。现在不一样了。你说错,它会非常高效、非常漂亮地做错,一路做到底。强模型不会帮你把话补严实,你含糊一分,它替你放大十分。

所以这一代模型出来之后,我发现真正要升级的不是模型,是我这个人。说得再直白点,是我跟它交代事情的方式。这套方法不复杂,也谈不上多原创,一半来自 Anthropic 一个工程师最近写的文章,一半是我自己撞出来的。但它确实把我从反复返工里捞了出来,值得完整写一遍。

先讲我自己的翻车。上个月我废了两篇写完的稿子。两篇播客反应文,AI 写的,结构工整,论据齐全,中文也顺,单看手艺挑不出毛病。但我越读越不对劲,这两篇的味道太像产品软文,跟我博客想要的东西完全是两个方向。最后整篇报废,一个字没用上。

注意关键在哪。AI 一步都没做错,素材和要求它都老老实实照办了。坏就坏在我给的要求里,压根没有「别写成软文」这一条。我自己也是读到成稿那一刻,才知道原来心里一直有这条要求。

这事我后来琢磨了很久,发现它不是个案,是一类通病。

跟 AI 干活,你给它的所有东西,prompt、上下文、规则文件、参考资料,凑起来是一张地图。活儿真正发生的地方,你的代码库、你的业务、你脑子里那些自己都没察觉的偏好,是疆域。军事学里那句老话,放在这儿严丝合缝,地图不是疆域。

拿写代码的场景再举一个。你说「给系统加一个第三方登录」,这句话画在地图上只有一行。疆域里躺着的却是一整串,老的认证模块当年怎么设计的,已有用户的登录状态怎么迁移,企业客户是不是还依赖某个旧行为,登录页要不要跟着改。这些你一个字没提,但每一条都决定成品对不对。

地图和疆域之间差的那一块,Anthropic 那篇文章管它叫 unknowns。我更愿意用地图的话说,就是空白,你没画、它路过时只能靠猜的地方。

地图与疆域地图与疆域

为什么它撞上空白不会停下来问你,这得从它干活的方式说起。它每次开工都是失忆重启,你给它的地图就是它眼里的全部世界。而它受的训练是把活干完,不是把你问烦。走到没画的地方,它的本能是按见得最多的走法接着走。这么补,十次里八次说得过去,落到你的具体场景里对不对,全看运气。活儿越大,路过的空白越多,猜错就越攒越多。

想通这一层,很多老争论一下就说通了。比如 prompt 到底该写多细。写太死,它明明看见了更好的路,也只会闷头执行你的错误指令。写太松,它就拿行业里的通行做法给你填空,通行做法到你这儿往往不合身。两种失败看着相反,病根是同一个,你不知道自己的地图哪里没画。

那空白怎么找。Anthropic 那篇文章给了个好用的拆法,分四格。这个四格最早是拉姆斯菲尔德在记者会上说出来的,被群嘲了很多年,如今放到 AI 协作上,正好对上号。

四种空白四种空白

第一格,你知道自己知道的。就是已经写进 prompt 的那些,不用管。

第二格,你知道自己不知道的。比如要做个功能,数据结构还没想好,你心里清楚这儿有个坑。

第三格,你不知道自己知道的。这格最阴。有些要求你从来不会写出来,因为太理所当然了,理所当然到你不觉得那是个要求。可成品一旦犯了,你一眼就能认出来。我那两篇报废稿就死在这格,「别写成软文」在我心里理所当然到从没说出口。品味这类东西基本全住在这格,说不出,看到就认得。

第四格,你不知道自己不知道的。刚进一个新领域,该问什么不知道,「好」长什么样也没概念。

四格对应四种打法,不能拿错药。这是我交完学费之后最大的体会。

1,让它反过来采访你。

治第二格。你知道有些事没想好,又懒得一条条自己捋。那就别捋,直接跟它说,动工之前你先采访我,一次问一个,把没说清的地方都问出来。

关键是加一条过滤,只许问那些答案会牵动架构的问题。不加这条,它能问出二十个客气但不痛不痒的问题,把你烦死。加了这条,问出来的个个扎在要害上。哪些数据要存下来,用户销号了记录怎么办,这种答错方向就得推倒重来的问题,才配在动工前占用你。

我常用的原话,可以直接抄。

动工前先别动手。你来采访我,一次问一个问题,把需求里含糊的地方问清楚。只问那些答案会牵动数据模型、接口约定、权限边界、迁移方案或用户可见行为的问题,命名和实现细节你自己定,别来问我。每答完一个,先更新你对整个方案的理解,再问下一个。

2,先打样,再开工。

治第三格,品味格。既然说不出、只认得出,那就别为难自己的嘴,给眼睛创造机会。

做法简单,让它先出两三个方向完全不同的小样,你挑。写文章,先出三个不同角度的开头,各两百字。做界面,先出四版路子完全不同的静态稿。挑中了,再往下做全套。跟印刷厂一个道理,先打样给客户过目,客户点头才开印,没人直接开印一万册赌客户满意。

两百字的开头废三个,成本约等于零。四千字的成稿废两篇,就是我上个月交的学费。同一个坑,在小样里露出来和在成稿里露出来,差着二十倍的价钱。

这篇文章自己就是这么写的。动笔前,我让 Claude 出了三个开头,翻车实录、概念科普、反直觉判断,各两百字。我挑了第三个,就是你正读着的这个。

prompt 骨架长这样,照着改。

先别写全文。给我出 3 个方向差别很大的开头,每个两百字上下,各配一句话说明这个方向图什么。我挑一个,你再展开。

3,盲区扫描。

治第四格。刚进新领域,问题都提不出来,那就先别干活,让它先给你画一张这个领域的地图。

我要做 X,这个领域我是外行。先别动手。帮我做一次盲区扫描,列出我多半没意识到的坑、我该问但不知道要问的问题,还有「好」在这行长什么样。按风险和回头成本排序,每条给出具体出处或代码位置,别给我一篮子空话。最后教我怎么给你提需求。

Anthropic 那篇文章里有个很妙的例子。作者剪视频,觉得画面发灰,知道该调色,但不懂调色。他头一个反应是让 Claude 调几版让他挑,结果挑不动,他根本不知道好的调色长什么样,打样这招失灵了。后来换了个问法,让 Claude 先给他讲调色的基本门道,学明白再挑,一下就顺了。

这例子我记到现在,它点破了一个容易含混的地方,第三格和第四格不通用一副药。挑小样的前提是你认得出好坏。认不出,先补课,把第四格的问题变成第三格的,再按第三格来。补课花你半小时,听着亏,比闷头重做三遍便宜多了。

4,拿参考物说话。

这条算前面几招的补充,但值得单独拎出来。有些东西你形容半天,不如直接指给它看。

想要某个库的重试逻辑,别形容,把那个库的源码指给它,读完照着做。想抄某个网站的设计感觉,别说「高级一点」「干净一点」,把网站丢给它,让它去读底下的代码。一件参考物顶一百个形容词。而且源码比截图还顶用,源码里带着骨架,截图只有皮相。

vendor/rate-limiter 这个库的退避重试就是我要的行为。读它的源码,把同样的逻辑在我们的 TypeScript 客户端里照着实现一遍。

四格对症下药四格对症下药

讲到这儿你可能会想,那我把前期功课做到极致不就完了。

不行。问也是有成本的,而且越问越薄。问到第五轮,它问出来的问题你自己都答不上来,再问下去就是互相折磨。

我自己的收手标准是,「做没做对」一旦能交给一条测试、一个脚本、一次 lint 说了算,就立刻收住嘴,开工。到了这一步,让它干完直接跑检查,比你继续用嘴形容快得多。这块我在让 Agent 自己证明它做完了里写透了,验收这套搭得越硬,前期要说清的就越少。

另一个变化也在把天平往同一头压。生成越来越便宜,「做三个再挑」会越来越多地赢过「问清楚再做一个」。品味类的活儿尤其如此,小样反正不值钱,多打几个样,比多聊三轮天划算。

干长活还得添一个动作。前面的招全用在动工之前,可有些空白,干到一半才冒头,写到一半发现现成的架子装不下,测试跑起来才发现老逻辑里埋着暗桩。这种时候别指望它停下来等你,给它立个规矩,一边干一边记偏航日志。

干活过程中记一本偏航日志。凡是实际代码跟计划对不上、你替我做了取舍、或者跳过了哪个边角情况,都记下来,写清发现了什么、牵扯到什么、你选了哪条路、哪里等我拍板。命名格式这类小事不用记。记完拣稳妥的路接着走,别停下来等我。

干完我翻一遍日志,五分钟就知道它在哪些地方替我拿过主意,比从头读改动快得多。等于给长活装了个飞行记录仪,摔了能查出从哪儿开始偏的。

最后说最要紧的一条,也是 Anthropic 那篇没讲的。

每个坑,只交一次学费。

你用两篇报废稿换来了「别写成软文」这条暗要求,学费已经交了。往下的分岔在于,这个教训是搁在你脑子里,还是写进系统里。搁脑子里,换个话题、换个新对话,同一个坑多半还得再踩一遍。前面说过,它每次开工都从你给的地图重新认世界,你不写,它永远不知道。

我的做法是当场落笔。那回报废之后,「别写成软文」进了我博客的配置,成了一条硬规矩,每篇新稿自动管着。这回的「先打样」也一样,我把它写成了写作流程里的死规定,新文章不出三个开头不许写全文。地图每补一块,往后每一次开工都跟着沾光。

顺着再往前想一步,还有一笔更大的账。差距既然是疆域比地图多出来的那部分,缩小差距就有两条路。一条是每次干活把地图画细一点,这篇讲的全是这个。另一条是把疆域本身修得规整些,让它天生好画,代码库的目录一看就懂,约定一搜就到,规矩写在它每次必读的地方。这些活儿干一次,管住以后每一次。这条路我单独写过一篇代码仓库是给 Agent 的 API,跟这篇正好一体两面。

把整套东西拧干了给你带走。没想好的,让它采访你。说不出但认得出的,先打样。问题都提不出的,先扫盲区。形容不清的,给参考物。验收能交给机器了,闭嘴开工。踩了坑,当场写进规矩。

回到开头那句。强模型放大你的含糊,可它同样放大你的清楚。这一代模型没淘汰会干活的人,它把「知道自己要什么」变成了一门新手艺。

这门手艺最妙的地方在于,连你不知道自己要什么的部分,都可以让它帮你找出来。

AI 随想Part 11 of 28
← PrevNext →

© Xingfan Xia 2024 - 2026 · CC BY-NC 4.0