Vibe Coding 的提问艺术:怎么把模糊的想法说成 AI 能懂的需求

2026-10-24 14 min 4897 字 -- 次阅读
摘要

模糊、矛盾、缺边界、贪心是四种典型的坏提示词,五步提问法定方向、圈用户、定 P0、给约束、砍功能,把想法翻译成 AI 能执行的具体描述。

本文是《Vibe Coding 实战系列》第 4 篇。

很多人可能还没意识到的,或者意识到,但是没有仔细的思考过,就是为什么用同一个 AI 编程工具,相同的需求,但是不同人拿到的结果却天差地别?这其中的差距其实并不是工具,而是我们的输入信息不同,AI 对我们的问题理解就不同,就像搜索引擎时代,明明大家都用的同一个搜索引擎去找目标信息,但是有些人就是找的又快又好。

同样是用 Trae Work,有人可能输入一句话就得到基本能用的应用,但是有人来回折腾两小时,AI 还是一直做不对,AI 有时候确实笨,但同样的我们也需要反思自己怎么能让 AI 变的“聪明”一些,理解我们的问题。

这一篇我们就展开来讲下,对 AI 来说,什么样的描述是好的、什么样的问题是不好的。

四种典型的提示词问题

先来看四种最常见的 Prompt。

模糊型

我们告诉 AI :做一个好看的网站。

这句话的含义非常模糊,或者说特别的广,导致 AI 不能理解,无法执行,比如:

  • 网站:什么网站?展示什么?几个页面?

  • 好看:什么风格?给谁看?参考什么?

所以 AI 收到这句话只能靠瞎猜,可能会给你生成一个通用的作品集首页模板,蓝紫渐变、三栏卡片、大标题居中,因为这是符合大众的平均审美的,也可能会经过长时间的思考(把 AI 的思考能力拉到最大)后得出一个结论:我要问用户一些问题。这样的过程中,你的 token 是白白被消耗掉的,因为输入输出都是消耗 token 的,然后 AI 也没理解你的问题,你还得再描述清楚一些。

可能你心里想的可能是极简黑白风,但是不给 AI 明确的指令,来回改多少次都有问题。

所以我们得到第一点结论,模糊的输入只能得到平庸的输出。

矛盾型

方向定了,现在告诉 AI:功能要全,但界面要极简。

这句话挺矛盾的,又要极简,又要兼顾功能,就比如我们的甲方问我们要五彩斑斓的黑,想破头皮实现了一版,结果甲方说不要这种,继续告诉你我要的是哪种五彩斑斓,但是要黑。

但不一样的是,人是知道这个是矛盾的,可能做不到,会想办法说做不到,但是 AI 会忠实地执行下去,去思考怎么做,也就是说它可能真的给你做出一个塞满功能但排版极简的界面,密密麻麻塞在一屏里,符合了功能全面,同时又页面极简,我们自己连看第二眼的欲望都不会有。当然也可能 AI 经历了多轮的训练,已经的很聪明了,我们的问题发出后,经过多轮的思考,得到了结论(也可能一直卡在思考循环中),要问用户什么样的问题来确定方向,但是 token 还是烧掉了,产生了没有价值的东西。

其实你心里想要的就是,我的这个网站,先要保证核心功能的全面覆盖,同时要视觉效果上克制一些,不要花里胡哨的,但我们告诉 AI 的内容,AI 只能先按照字面意思理解,然后多轮思考给你一个结果。

于是乎,你提的需求里面的矛盾,就变成了产品里的矛盾。

缺边界型

新开了个项目,我打算做记账工具,于是告诉 AI :帮我做个记账工具。

这听起来清晰又听起来不算模糊了,也没有矛盾的信息,方向也是对的,但还是缺了关键信息:

  • 记什么账?个人流水还是项目报销?

  • 数据存哪?要不要保存,还是刷新就没?

  • 什么平台?网页、手机、还是命令行?

缺了这样的边界,AI 就要开始他的自由发挥了:它可能给你做个带数据库依赖的 Node 项目,而你只想要一个能双击打开的 HTML 文件。或者你想要一个简单的 HTML 文件,结果他给你按照专业记账工具做了一套。

边界不说清楚,AI 就替你做主。只要你的 token 够烧,那也没所谓,慢慢调呗。

贪心型

这个是真的很常见了,因为现在的工具能够做到先分析,出任务清单,然后自己完成,但是要小心这种 Prompt:做一个待办清单,要有优先级、标签、日历视图、统计图表、番茄钟集成、团队协作、提醒通知、数据导出、深色模式、多端同步。

这句话每个功能看着都很清楚的,但合在一起的结果就会让人很无语,一是 AI 会试图一次性给你做完,列任务清单,执行,写代码,然后在执行的过程中啪的一下,说什么,思考超出限制、400 Bad Request、5 hours limit、monthly limit ,就问你最后这个提示你怕不怕,二是 AI 给你做的很简单,功能全部都是示例页,做了跟没做一样。

而且最让人难受的是,AI 工具都使用沙箱运行命令,AI 在沙箱中跑命令受挫了,不会直接告知我们,而是自己尝试多种方案解决,如果不看思考过程、不看执行状态,他就会一直尝试,直到解决不了或者解决了问题,继续下一步。

我们常常会想要在一个 Prompt 里面一次说十个需求,但是这样等于没有需求。因为 AI 做不完或者只做很浅的功能。

什么是好问题?

回看前文的四个问题:

  • 模糊型,缺的是方向和约束。

  • 矛盾型,缺的是 P0 取舍。

  • 缺边界型,缺的是用户和边界。

  • 贪心型,缺的是砍功能和分步。

上文所说的四种提问的共同病根是:我们说的是想法,但是 AI 需要的是明确的需求。

想法是一个脑海中的画面,一种感觉,我们和朋友之间一起交流想法,但是 AI 想听我们说的是可以执行的具体描述,这是需求。

Vibe Coding 的提问的艺术,本质上就是把脑子里的画面和感觉,翻译成 AI 能执行的具体描述。

上一篇我讲过七要素(类型、约束、功能、交互、视觉、配色、数据),那是用来拆解需求的。这一篇来分享五步提问法,来帮你捋思路。

五步提问法

我们可以将我们模糊的想法通过这五步变成一个可执行的提问。

定方向

敲定骨架,我们要做的这是什么类型的东西,是网页?工具?脚本?游戏?,同时这个东西要解决什么问题?

圈用户

问问自己,这个东西是给自己用还是给别人用?手机用还是电脑用?

这一步决定了后面所有交互的复杂度,如果是给自己用,那么很多功能都可以被砍掉。

定 P0

我们从所有想要的功能里,挑出核心功能。

什么是核心功能?意思就是没有它,我们的东西就搞不了的那几个。建议第一版选 1 ~ 3 个,实现快,调整方便。

那剩下的非核心功能去哪了?留给后续的迭代。P0 的功能做好了,比做什么都有价值。

给约束

约束分为多方面的,有技术方向的、视觉方向的、规模体系的,比如:

  • 技术约束:单文件 HTML?要不要数据保存?

  • 风格约束:配色、气质、参考对象

  • 规模约束:多大规模、多少数据量

砍具体功能

前面定 P0 是让我们决定先做什么,现在的砍功能是明确告诉 AI 不做什么,包括暂时不做的非 P0 功能,也包括 AI 容易自作主张加上的东西(如登录、数据库、深色模式)。

实战

还记得前面那个“帮我做个记账工具”吗?我们用五步法把它重走一遍。

一开始有一个模糊的想法:我想弄个记账的东西。

定下来方向:是一个个人记账网页,用来记录日常开销的工具。

圈用户范围:是给自己用的,通过电脑浏览器打开,单人不需登录

功能很多:记账、分类、统计、预算、提醒、导出、图表……

定 P0 的功能:添加一笔、按分类查看、看到本月总支出。

提供约束信息:要一个单文件 HTML,数据用 localStorage 保存,浅色简洁风格,像 iOS 备忘录那种感觉。

砍掉具体的功能:不要登录注册,不要数据库,不要引入框架,不要深色模式。

最终你根据这五步生成的Prompt是:

做一个个人记账网页,单文件 HTML,电脑浏览器打开,自己用,不需要登录。核心功能三个:

  1. 添加一笔支出(金额 + 分类 + 备注,回车即存)
  2. 按分类查看支出列表
  3. 顶部显示本月总支出
    数据用 localStorage 保存,刷新不丢。风格浅色简洁,像 iOS 备忘录的感觉:白底、圆角卡片、克制留白。不要登录注册,不要数据库,不要引入任何框架,不要深色模式。如果你觉得需求里有不清楚的地方,先列出来问我,不要直接开始写。

我这里的 Prompt 多了一句:如果你觉得需求里有不清楚的地方,先列出来问我,不要直接开始写。

这一句的好处是,可以让 AI 的不会出现非常长的思考,会先给我们提供一个简单的思路,等于说是和我们先对齐需求是否理解有误,我们审核完判断没问题就可以继续了。

同时还需要注意一个细节,我们的最终成稿不是五步的机械拼接,而是把五步的信息揉成一段自然的话。这五步骤是思考清单,而不是输出模板。

下面是这个 Prompt 生成的对齐思路:

需求本身很清楚,动手前有 4 个小点想确认(每条都给了默认方案,不想纠结就直接回“按默认”):

  1. 日期归属 :每笔支出默认记“今天”就够,还是需要能补记别的日期(比如昨晚忘了记)?
    • 默认:只能记今天,月份按自然月(1 号到月底)算。
  2. 分类 :固定一套分类,还是要能自己新增分类?
    • 默认:写死几个常用的(餐饮、交通、购物、娱乐、日用、其他)。
  3. “按分类查看”的形态 :
    • a. 所有记录按分类分组展示,每组带小计
    • b. 一排分类标签,点哪个只看哪个分类
    • 默认:a,组内按时间倒序;列表可切月份,默认显示本月。
  4. 记错了怎么办 :需要删除功能吗?
    • 默认:每条记录可删除,不做编辑(删了重记更简单)。
      确认后我就直接写,单文件 HTML,白底圆角卡片风格。

以及这是结果截图:

结果截图

基本这个 Prompt 就可以实现一个我们想要的东西了。

进阶技巧

五步法能够解决我们从 0 到 1的问题。我总结了三个技巧,用于解决更复杂的情况。

给定参照物

“像 XX 那样”是一种最高效的需求压缩方式。

界面感觉像 iOS 备忘录:白底、大标题、圆角卡片
交互像微信的聊天页:底部输入框、气泡左右分开

人类靠参照物沟通效率极高,AI 也一样。我们可以找一个最接近你心里预期的现有产品,让它参考。

分步

需求很大的时候,不要一次说完。先形成整体的骨架,再逐步往上面加功能:

  1. 先做页面骨架:顶部总支出、中间列表、底部添加按钮。不用实现功能,把布局和样式做出来。
  2. 看过没问题,再实现“添加一笔支出”的交互。
  3. 再加 localStorage 保存,刷新不丢数据。

每一步都进行验收,这样 AI 的每一步就可以在正确的地基上盖楼。这比一次扔一个完整需求、然后在一堆错误里来回修复要快得多。

让 AI 反问

这是在前文的实战中提供的一个非常好用的妙招,就是在提问末尾加一句:

如果你觉得需求里有不清楚的地方,先列出来问我,不要直接开始写。

这一句话就能把 AI 从自由发挥变成主动对齐。虽然它依旧会有一些地方想不到,但是在干活的过程中会主动问你一些他思考一轮没有得到的结论,比如:每笔支出默认记“今天”就够,还是需要能补记别的日期(比如昨晚忘了记)?固定一套分类,还是要能自己新增分类?这些问题可能我们在一开始没有想到,或者不存在于我们现在想做的内容里面,AI 就不会随意的删除或者自己加上这些功能。

其他问题

Q:什么都按这五步走会不会太啰嗦?小工具不用这么麻烦吧?

要注意,这五步提问是我们的思考清单,并不是强制的流程作业。一个小需求可以在心里三秒钟就过完,遇到复杂需求才写下来逐步过。

我们在这个过程中,最重要的是养成先想清楚再开口的习惯。

Q:我不是产品经理,说不出这么细的需求怎么办?

用技巧三,先说个大概,然后让 AI 反问你,在反复的沟通中把需求聊清楚。其实这个也就是产品经理干的活,只是本来你要做,现在你变成了业务方,在和 AI 扮演的产品经理进行沟通交流。

当你沟通清楚了之后,身份就再次变化,变成你是产品经理,AI 是开发人员了。个人以为这样的角色扮演,对于我们在产品上的理解,对于我们的成长,是非常有价值的。

Q:需求中途变了怎么办?

正常,我们在没有 AI 的时候,产品的需求有变化都是正常的。Vibe Coding 的迭代成本很低,不要怕变化。

下一篇预告

随着项目规模逐步增长,对话变长,AI 就会开始失忆,忘了之前定好的规范,改坏已经做好的功能。

这就是上下文问题,Vibe Coding 的命脉。

下一篇:《上下文是 Vibe Coding 的命脉:长项目怎么不让 AI 失忆》

评论