Think Deep,Work Lean

改AI需求别只说改成什么,带上原因一轮过

Posted on By zack

大家好,我是Zack。

先说个场景:AI 把东西做出来了,你看完说「不对,改一下」。它问你改哪,你说「就按我说的改」。十分钟后它交回来,你看了一眼更火了——改是改了,另外三处没跟着动,返工。

我吃过这个亏。让 AI 改一个结算字段,我就甩了一句「把金额改成人民币」。它把显示那一处改了,存储格式、导出模板、还有两处计算引用,全留在美元。一轮返工,半小时没了。

问题不在 AI,在我那句话。今天把我的改法拆给你,一句话模板 + 一个真实案例,直接抄。

为什么「改成什么」不够,还得说「为什么改」

AI 改需求时的默认逻辑是:找到你指的那个点,改掉,收工。它不会主动想「这个点改了,别的地方要不要跟着变」——因为你的话里没有信息让它判断。

「把金额改成人民币」,它听到的是:显示层,美元换人民币。完事。

但它不知道你为什么要改。你如果说「结算要按人民币走,别用美元」,它就知道这不是改一个显示,是整个结算逻辑换币种——存储、计算、导出都得跟着对齐。

差异就在这几个字上。你不说为什么,它只动你手指的那一点;你说了为什么,它把旧的部分一起对齐。

一句话模板

改需求的时候,把这两截拼上:

不改的部分:只改 XX 的 XX,别的地方别动
要动的部分:因为 XX,把 XX 改成 XX,所有相关的地方一起对齐

举两个对照:

错误:「把按钮改成蓝色」 正确:「按钮颜色统一换成蓝色,因为设计规范改了,全站所有主色一起对齐」

错误:「这个字段名改一下」 正确:「字段名从 user_id 改成 uid,因为数据库迁移要短命名,代码里所有引用一起改」

前一种它只改一处,后一种它全局搜替。你多打十几个字,省掉一轮来回。

我的真实案例:一次改名,旧名字四天阴魂不散

上周末我把 X 账号的 handle 从 kaiz_amm 改成了 zack6116。改完第一件事是更新脚本——十几条自动化脚本里,搜索串、过滤正则、profile 链接全是旧名字。我一处处 grep 替换掉,47 个文件、71 处,改完自测通过,收工。

四天后翻采集日志,傻了:当天的 mention 快照里,旧名字 kaiz_amm 出现了 133 次,新名字只有 60 次。第一反应是脚本改漏了。去查,脚本里一个旧名字都没有。

那 133 次是从哪来的?是别人。他们四天前在我旧帖子下的回复里 @ 的是旧 handle,X 的历史内容不会跟着你改名,那些引用文本永远停留在 kaiz_amm。

这事没坏——我的过滤正则是 /@(kaiz_amm|zack6116)\b/,两个名字都认,所以 183 条 mention 一条没漏,该拦的 8 条 spam 也拦住了。但我要是当时只改一半、或者只留新名字,这 133 条历史引用就全部静默丢失,还不知道哪出了问题。

这个案例跟改需求是一个道理:你手上「知道为什么」的信息,比你想的多得多——名字为什么改、旧名字还会在哪出现、什么算改干净,这些你脑子里都有,但你不写进指令里,AI 就只能按字面执行。

前后对比

  只说改成什么 加上为什么
你要说的话 「把金额改成人民币」 「结算按人民币,相关的地方一起对齐」
它改的范围 你指的那一处 它自己找到的关联处 + 你指的
返工概率 高,关联处全靠你肉眼查 低,一轮过
我那次的实际损耗 半小时 一次过

省的不是这几秒钟打字,是后面的排查轮。AI 一轮返工,你至少要重新读一遍它的改动、再描述一遍哪里不对,一来一回十分钟起步。改十次需求就是俩小时。

两条通用原则

一,指令里带上原因,AI 才有判断依据。「为什么」三个字是给它划的自由裁量边界——边界内它自己决定动哪些关联处,边界外它不碰。你不说,它就只按字面干,所有关联判断都退回给你。

二,改名、改格式、改路径这类全局变更,指令里明确说「旧的怎么办」。旧值不会消失,它藏在历史数据、别人手里的旧链接、缓存文件里。我的写法是在指令里直接写兼容规则:「正则两个都认」比「删掉旧的换新的」安全得多。

说点局限

这不是让你每句话都写小作文。三种情况不用带原因:纯文字润色(改哪个字它不会理解错)、你要的就是局部改动(其他地方动了反而添乱)、你俩已经聊了很多轮上下文足够(再解释是浪费 token)。

判断标准就一条:这个改动有没有「关联的地方」。有,就说为什么;没有,直接说改什么。

轮到你了

你有没有被 AI 的「字面执行」坑过?改了 A 它没动 B,或者删了旧的新代码里还在引用?评论区说说你的翻车现场,我会挑典型的回复。

我在写一个 AI 提效系列,今天这篇是第 9 篇,前面的都在公众号里。觉得有用的话,关注一下,下一篇讲怎么让 AI 主动汇报进度,别等你问。

公众号:Zack说AI