现在应该不会有人不用AI的吧。我发现用 AI 处理单文件还有简单函数时效率很高,一旦涉及复杂架构或跨文件修改,AI 就开始拉了。

明明刚开始聊得好好的,怎么几个回合下来,就开始疯了呢。

起初我以为是模型不够聪明,换了几个最贵的模型,结果还是一样拉。后来我才回过味来,这还真的不能怪人 AI。我们太习惯把它当成聊天机器人了,稍微多聊几轮,它就被上下文里的噪音带偏了。

让AI 干活,就得限制它,把它当成没经验但手速极快的实习生,得给它文档,不能给它自由过了火。

PRD 先行,给 AI 设定目标

有谁让 AI 干活的时候是直接下命令的,比如说:“帮我写个用户中心。”结果出来的东西都没眼看,它做出来跟我想的,不能说一模一样吧,至少可以说是毫不相干。

AI 的记性其实很差,对话超过几页,它就会忘了一开始是要干嘛的了,你跟它说前门楼子,它给你整出一个胯骨轴子。这时候再怎么在对话框里补救都没用,只会越描越黑。

现在我学会了,无论是什么任务,我都会强制自己先写个产品需求文档(即PRD),不需要文笔多优美,几行字就够,但界限必须限制得死死的。

我会明确写上:“本次只改后端逻辑”、“严禁动现在的 UI 组件”、“不准引入新的 npm 包”。文档就是让AI别乱来,每次对话先把这个文件甩给它,无论聊飞到哪去,都能把它拽回来。自从有了这个习惯,跟 AI 聊着聊着的情况基本就消失了。

任务要分解

俗话说,人不能一口气吃成一个大胖子。AI 也是,不建议让他直接做一个大项目。

以前我喜欢发这种指令:“实现整个用户认证模块,包括前后端和数据库”。结果它生成的代码,逻辑是通的,但细节全是错的,甚至把数据库连接方式都改了。任务越大,模糊空间就越大,它又开始自由发挥了。

我现在的策略是把任务切成渣。不要上来就喊“做个登录功能”,而是拆成四个独立的指令:

  1. 先写个数据库迁移脚本;

  2. 再写后端 API 和对应的 DTO;

  3. 给这个 API 补全单元测试;

  4. 最后再去动前端页面调用。

别让它猜,直接把说明书喂嘴边

很多时候 AI 犯傻,是因为它不知道项目里的潜规则。比如在 Vue 3 的项目里写 Vue 2 的语法,或者把工具函数乱放。要记住,它不是霸总,它猜不到你心里所想,有什么需要,最好是明明白白跟它说。

我现在会在项目根目录放个规则文件(比如 .cursorrules )。把技术栈版本、目录规范、命名风格都写死。

但是要注意,不要把几千行的文档一次性全扔进去。AI 的注意力有限,信息给杂了它容易晕。

我现在都是一步步来,写后端逻辑时,只喂给它后端文档;写页面时,只给 UI 库的文档。只给当前最需要的上下文,它的智商才会在状态。

聊完方案,必须清空大脑

跟AI聊完后,你的对话框里是不是混杂了废弃的方案、报错的日志、随口的吐槽。我以前也是这样干的。后来发现,AI又不是大同的环卫工人,没办法在8吨垃圾堆找到一个儿童手表,它不出错才怪咧。

所以我现在有个雷打不动的习惯,就是上下文重置。

在讨论方案阶段,随便怎么聊都行。但方案一旦定下来,我会让它生成一份详细的执行清单(Checklist)。拿到清单后,就新开一个干净的窗口,只把那份清单和必要的规则文档喂进去。

这时候 AI 的脑子是最清醒的,就是一个无情的执行机器,把清单上的代码敲出来。多了一个动作,但是后面无数次改错重来的的时间。

报错了别只顾着修代码,要修系统

代码生成完了,千万别急着合入。不跑测试的代码就是废代码。

当 AI 犯错时,比如引入了一个我没见过的库,我现在的反应不是去删代码,而是去改规则。

它引入了奇怪的库,说明我的规则体系有漏洞。我会马上去修改规则文档,加入一句“禁止引入新依赖,除非经过确认”。

其实报错都是因为规则的漏洞,把漏洞补上,下次它就不敢了。这才是正经的系统化工程。随着规则越来越细,这个 AI 助手就会越来越顺手,因为它终于懂了在这个项目里到底该怎么干活。

以前我们是亲手搬砖的工头,现在我们得学会安排 AI 干活。AI 又不是人,不会因为你多骂它两句就变聪明,但它会因为你多写一行规则、多切分一次任务就变得格外顺手。

这套流程刚开始用,肯定会觉得麻烦,又要写文档,又要切任务,还得不停关窗口。但只要你试着坚持一个迭代,你会发现,一切尽在掌握。

另外,很多 AI agent都依赖于 Python 环境,也有小部分依赖 Node.js 环境,通过 ServBay 来管理 Python 和 Node.js 环境,省事省力,所以 AI 大模型换着玩。

搞定了环境,就有时间跟 AI 斗智斗勇了。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐