一句话点明本质:
AI不是不理解需求,而是不理解“需求的上下文”;不是不理解边界,而是不理解“约束的严肃性”。

下面拆开说。
你给AI的需求描述,永远是冰山一角。
比如你说:“写一个用户登录功能。”AI会生成一套完整的用户名密码验证逻辑。但你没说出来的部分,才是真正的工程需求:
这些都是你没写进prompt的“已知共识”。在一个真实项目中,这些共识由技术规范、团队约定、安全评审共同构成,天然存在于人的认知中。
AI没有参与过你的评审会、没读过你的代码规范、不知道你们踩过的坑。它默认你所说的就是全部,剩下的全靠猜。
所以核心不是AI不理解你说的话,而是AI不知道你没说但必须遵守的那些事。

更致命的问题在这里。
对于人类工程师,“边界”是不可逾越的红线:
这些边界是写不进prompt的“架构契约”,违背任意一条都可能是生产事故。
但AI没有“后果意识”。它的大脑里没有“数据库挂了要赔钱”“用户数据泄露要坐牢”这些概念。它只是在概率上选择一个“看起来合适”的实现。
所以它生成的代码,可能:
AI不是在故意越界,而是它根本不知道“边界”的存在有什么意义。

程序员最怕的,是AI凭空捏造一个不存在的库或函数,比如from magical_cache import MagicLock,语法正确,运行报错。
这不是偶然失误,而是它的底层原理:大语言模型做的是“下一个token最可能的预测”,不是“基于事实的检索”。当它遇到自己不确定的实现细节时,它会“编造一个看起来合理”的token序列。
幻觉不是缺陷,是统计预测的必然产出。
而人类工程师的职责,就是分辨哪些是“正确的逻辑”,哪些是“统计意义上的胡话”。这就是为什么修复时间远超生成时间——你不是在改bug,你是在做事实核查。

不是AI不理解需求,而是:

这三点的叠加,让AI生成的代码变成了一种特殊的东西:
看起来完整,实则充满未知风险。
你花的那5小时,不是在修bug,而是在给一个没有工程常识的“超级实习生”擦屁股——它的代码写得飞快,但每一行你都得重新审查,因为你不知道哪一行是“编的”。
这才是程序员更忙的根源。