用 AI 开发时最容易踩的坑
总结程序员委托 AI agent 开发代码时的常见误区和高效模式,帮助规避低效做法。
总结程序员委托 AI agent 开发代码时的常见误区和高效模式,帮助规避低效做法。
你经历过这种情况吗?
你要求你的 AI agent 开发某个功能、修复一个 bug 或其他什么。它现在完全迷失了方向。你在烧掉大量 token,浪费你的时间。尽管你越来越精细地修改提示,但它就是拒绝正确完成你要求的任务。
这是怎么发生的,又该如何避免这个恼人的循环?
有经验的程序员知道这一点:AI 的真正优势不在于开发速度。一个资深工程师通常能比 AI 更快地修复一个 bug 或开发一个小功能。
AI 的真正优势在于认知负荷的减轻。
写代码很困难,至少因为你的语法必须完美无缺。即使是小的逻辑迭代,你也需要用脑子。而脑力劳动是一种有限的资源——你每天的思维是固定的,只有在休息或睡眠时才会恢复。
AI 的真正生产力收益来自认知负荷的减轻:因为你用脑子更少了,你在一天的工作中能做得更多。
但这是一种微妙的平衡。你真正应该投入多少思维呢?
思维太多,你就在浪费生产力收益。思维太少,你就陷入了沉没成本谬误的循环。
这可能发生在你身上
你在提示和再提示,通常它表现得很好,但今天不知何故,你的 agent 完全迷失了。
你意识到如果根本没用 AI,你早就完成了,但现在你已经投入太深,肯定下一个提示就能做到你要求的了……好吧,再来一次……好吧,这次肯定……
关键在于,因为你没有初期投入足够的认知负荷,你现在有点太迷茫了。但思维很困难,你不想现在花费这种认知负荷,特别是这基本上等于重新开始。毕竟已经花了这么多时间和 token。
所以你继续提示,寄希望于最好的结果,但情况只会越来越糟。
退一步,深呼吸。意识到问题在于你在这个任务上的脑力投入不足。
问自己这些问题:
我是否完全理解我要实现的规范,或者我要修复的 bug?
如果没有,那就花些时间定义规范或更好地理解这个问题。你可以请求 AI 的帮助,但禁止编码!
我是否有一个明确的实现计划?
如果没有,那就花些时间思考你的实现计划。如果需要,可以使用原子化 git 提交工作流。人类在开发时应该采取小步骤,AI 也应该这样做。
我现在应该在哪个抽象层级提示?
提示可以是高层级的("实现这个功能"),也可以是低层级的("重构这个方法,重命名这个变量")。从生产力收益的角度来看,高层级提示更可取,但如果 AI 能在高层级上持续高效,我们都会失业了。
进入沉没成本谬误循环通常意味着你高估了你的模型在这个特定任务上的提示水平。降低一到两个级别。现在,你需要牵着你的 AI 的手,温柔地引导它走向你的解决方案。
我还缺少哪些其他信息?
想想你进行改动所需的任何信息,这些信息目前对你来说不够清晰。如果需要,可以用 AI 来探索代码库或头脑风暴解决方案;但同样,现在禁止编码!
测试驱动开发是一种很棒的编程方法(虽然我知道这是个有争议的观点),但随着 AI agent 的普及,它在我看来已经成为必须拥有的。
你的测试是否成功失败了?bug 是否得到了很好的复现?规范是否定义清楚了?如果没有,就从这里开始你的 agent。多亏了 AI,编写测试从未如此快速和简单。
只需记住,这是开发中最重要的部分,也是最困难的部分。这是你的脑子需要全力以赴的部分,一切都应该水晶般清晰,定义得很好。
你还需要在提示中非常明确,不要求 AI 编写实际的解决方案,只是现在编写测试。AI Agent 已经被训练来编写解决方案,所以默认情况下它会试图这样做,即使你没有要求。
关闭你的 AI agent。回到白板。重置你和 agent 的上下文。
你会没事的!只是停止在沉没成本谬误循环中浪费时间。这很难接受,但不是你做不到的事。留在指挥位上,一切都会解决。
一句古老的谚语说:"酒精是伟大的仆人,但是可怕的主人"——这对 AI 也同样适用。做你 AI 的主人,而不是它的仆人。
一些评论可能只对已登录的访客可见。登录以查看所有评论。
如需了解更多操作,你可以考虑屏蔽此人和/或举报滥用行为。