你直到看见结果,才知道 AI 误会了你

1 评论 464 浏览 0 收藏 12 分钟

大家好,我是正在被 AI 拷问的林月半子。

你有没有过这种时候。

甩给 AI 一句”帮我写个脚本,把这个文件夹里的图片批量压缩一下”,它一个问题都没问,二话不说就开干了。

十分钟后脚本跑完了。你一看:压到什么质量它定了,子文件夹要不要一起处理它定了,原图留不留,它也替你定了。

这些你一个字都没说过。

只能推翻重来。第二遍你多交代了几句,它又在另外三个地方自作主张。

这就是 vibe coding 最贵的地方。不是它写得慢,是你直到看见结果,才知道它误会了你。

后来我想明白一件事。

我们总说 vibe coding 是”把活外包给 AI”。这个说法不太准。真正被外包出去的不是活,是决策。而且外包得悄无声息,你以为你只是下了一句指令,实际上你签了一沓空白支票,金额它自己填。

写代码这件事往下拆到底,是连着做几百个微观决策。你少说一句,它就替你填一张。

而 AI 最讨好你的地方,从来不是夸你。是它从不说”我不懂你要什么”。

它宁可猜一个,也不肯停下来问。

那怎么把决策权抢回来?

这个问题,有人已经把答案开源了,而且吃到了 19 万颗星。

前两天刷到了 Matt Pocock 那套 skills。

我顺手去仓库看了一眼。

星数每天都在涨,这个不算什么。

让我愣了一下的是另一件事,网上都在传,这堆东西里下载量排第一的那个 grill-me,正文只有五行字。我点开想看看长什么样。

结果文件显示:7 行,147 字节。

正文只有一句话:

  
Run a `/grilling` session.

就这样。没了。

真正的内容,就这四条

那几行字被搬到了同目录下的 grilling 里,重新组织成了四段。grill-me 现在只是个入口,你敲它,它去跑 grilling

我把这四段翻译一下:

第一段:不停地拷问我这件事的每一个方面,直到我们达成共识。顺着决策树的每一个分支往下走,一个一个地解决决策之间的依赖关系。每个问题,都给出你推荐的答案。

第二段:一次只问一个问题,等我回答完再问下一个。一口气甩一堆问题只会让人懵。

第三段:如果一个事实可以通过翻文件系统、调工具查到,就自己去查,别问我。但决策是我的。每一个都摆到我面前,等我回答。

第四段:在我确认我们达成共识之前,不准动手。

完了。整个被下载了几百万次的东西,就这四段。

那为什么要拆成两个文件

grill-me 是 user-invoked。它的 frontmatter 里写着 disable-model-invocation: true,模型不能自己调它,只有你亲手敲 /grill-me 才触发。

grilling 是 model-invoked。模型自己能调,别的 skill 也能调它。

拆开之后,grill-with-docsimprove-codebase-architecture 这些都能直接复用同一个拷问引擎,不用各自复制一份。

一个引擎,多个入口。变短的不是内容,是入口的重量。

第三条才是它不烦人的关键

我看很多人转这个 skill,都在夸前两条。

 

一次一问、附带推荐答案。

我个人觉得,最容易被跳过、但最要命的是第三条

💬
能自己查到的事实,自己去查。只有需要你拍板的决策,才停下来问。

你想想看,如果没有这一条会发生什么。

还是刚才那个压缩脚本,那些它自己翻两下代码就知道的事,要是全问你一遍,你被问到第五个就想关掉窗口了。

 

有了这一条,它就会先自己去翻,翻完再来找你。找你的时候问的,全是它翻不出来的东西。

这一条把”拷问”从”审讯”变成了”跟一个已经做完功课的人开会”。差别巨大。

那我岂不是得先自己想全?

不用。这里有个反转,是我读完第三条才拐过弯来的。

我们一直有个误解,想把 AI 用好,得先自己把需求想清楚,最好一次性写出一份滴水不漏的方案。

可对着一块空白的屏幕,从零写出一份考虑了所有极端情况的企划书,这件事本身就是最痛苦的那一步。大部分人就是卡在这儿,卡着卡着放弃了,回去继续 vibe coding。

grilling 给的是另一条路:挖漏洞这个苦差事,恰恰是该外包给 AI 的那部分。

它顺着决策树往下走,一个一个把你的盲点掏出来。你不用提前想全,你只需要在它把选项摆到你面前的时候,说一句”用这个”。

前面说 vibe coding 外包错了东西。到这儿能说得更准一点。

该外包的是”找出有哪些决策”,不该外包的是”这些决策怎么定”。

分清这两件事,你才坐得稳架构师那个位置。

 

分不清,你就是个打字员,还是个连自己签了什么都不知道的打字员。

怎么上手

一条命令,直接点名装这一个

  
npx skills add mattpocock/skills --skill grill-me

不依赖任何别的东西,不用配置,装完就能用。试水,一个就够。

调用

打 /grill-me,后面跟一句话,说你要干什么。

它不会自己触发,必须你手动叫。这是刻意设计的。

关键是这句话别写太满。 你写得越详细,它问得越浅。你现在有多模糊就说多模糊,”我想改造 X,但还没想清楚做成什么样”,这种话才是最好的燃料。

还有一个:纯聊天窗口里别用。 第三条要靠文件读取权限才生效,没权限它查不了任何东西,就退化成什么都不问、全靠猜,比不用还糟。

我拿它重构了一个自己的项目

说完了,实际跑一次给你看。

我手上有个自己写的工具叫「半自动」,是给公众号和视频做素材用的。用了一阵子之后越看越别扭,想改,但说不清楚要改成什么样。

我丢给它的原话就一句:

/grill-me 改造这个项目,从审美和功能两个层面。

够模糊吧。

这也是我故意的,前面说过,你写得越满,它问得越浅。

它第一句话就把我怼回来了:

好,进入拷问环节。你说要改造这个项目(视频封面生成 Web 应用),从审美和功能两个层面。这话太模糊了,我先把最尖锐的问题抛出来。

先注意一个细节:我从头到尾没告诉过它这项目是干什么的。“视频封面生成 Web 应用”这句是它自己翻代码翻出来的。

这就是第三条在干活,能查的它自己查了,剩下的才来问我。

它问了什么。

四个问题,一次一个。

审美判断、优先级、长期规划、授权范围。

 

这四样东西,翻遍我的代码库也翻不出来。

它能查的它都查了,剩下的这些,只能等我开口。

第三个问题是那次拷问里最狠的一刀。我一开始压根没想过”给不给别人用”这件事。我只是觉得界面丑。但这个问题一出来,整个改造的性质就变了:给自己用,好看就行;要产品化,那得考虑第一次打开的人看不看得懂。
后面所有的设计取舍,都是被这个问题拽出来的。

改完之后

跑完之后,你会撞上第二个问题

一场跑完,AI 给你一份共识小结,问你”这样对吗”。

你说对。

然后呢?

然后你关掉窗口。第二天再开一个会话,它对这一切一无所知。

刚聊出来的所有决策,跟着上下文一起蒸发了。

这个问题 Matt 也有解,仓库里另有一个 to-spec,专门把决策从对话里捞出来落到盘上。它跟 grill-me 正好相反:grill-me 只问不写,to-spec 一句不问,只写。

那条工程链我下一篇单写。

写在最后

它没做什么新东西。

拷问、决策树、一次问一个、给推荐答案。

 

每一条单独拎出来都不新鲜,加起来也就四段话。

但它把一件我们一直知道该做、却一直没做的事,变成了一个可执行的动作:在动手之前,把该你拍板的东西一个一个摆出来。

vibe coding 爽在你只说一句。代价是剩下那几百个决策,它替你签了,而且你看不见。

grill-me 干的事就是把那沓空白支票摊开在你面前,让你自己填金额。

事实归它,决策归你。

这两件事分清楚了,你才是那个架构师。

本文由作者【林月半子聊AI】,微信公众号:【林月半子的AI笔记】,原创/授权 发布于平台,未经许可,禁止转载。
更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. vibe coding的问题是把决策外包给了AI,它帮你签了空白支票。grill-me的解法是通过拷问把决策权拉回来:事实归AI查,决策归你定。不用先想全,AI帮你挖盲点。最后共识还得落在文档上才不白聊。

    来自广东 回复