AI 产出烂代码的最根本原因

AI 产出烂代码的最根本原因

胖张Dev ·
意图对齐:AI 编程时代被忽视的核心工程能力

前言:当"代码"不再等于"意图"

过去几十年的软件工程里,代码就是意图的直接体现。架构自己设计,接口自己定义,逻辑自己写,边界自己调。每一行代码都是思维的具象化。沟通偏差当然有,但主要发生在人与人之间——一旦进入编码阶段,意图就锚定在代码里了。

所以传统意义上的"意图对齐",止步于需求理解的一致性就够了。但在 Vibe Coding 和 Harness Engineering 进入日常开发流程之后,这个等式不成立了。

代码不再是意图的载体,而是 AI 对你意图的翻译结果。

矛盾点从"人与人"转移到了"人与 AI"。要求更高,容错更低。你没法再依赖"边写边想"或"代码即文档"的默契,必须近乎 100% 精确地告诉 AI 这些事:

  • 执行顺序:先做什么?后做什么?哪些步骤不可并行?
  • 技术选型:用什么框架?依赖哪个版本?是否允许引入新库?
  • 架构规约:模块边界在哪?哪些是禁区?数据流如何约束?
  • 开发方式:普通开发,还是测试驱动开发(TDD)?
  • 上下文资产:知识库存放在哪?已有接口契约是什么?
  • 环境限制:运行时资源上限?网络策略?安全合规红线?
  • 验证标准:怎样才算"完成"?测试覆盖哪些路径?失败语义如何定义?要不要 E2E?

缺任何一环,AI 都会基于训练数据里的"常见模式"做合理但错误的推断。早期 Vibe Coding 最被诟病的就是这个:自作主张——《AI 替你做的每个模糊决定,都可能是需求里埋的雷》。这些缺失的信息,就是意图和结果之间差距的根源。

你没说的部分,AI 会拿训练数据里的"常见模式"来填——形状接近,但并不匹配

最常犯的 4 个错误

用 Vibe Coding 的时候很容易有一种错觉:把想法"说"出来,AI 就能"懂"并"做对"。实际上,意图不等于指令,指令不等于实现,实现更不等于正确。

01 自然语言太模糊

自然语言擅长传递情绪和方向,给不了工程需要的精确性。这不能怪语言本身——它生来就是用于人与人高效沟通的,没人喜欢事无巨细地描述早餐的配料、火候和口感。

"优化一下性能""让代码更清晰""处理得健壮些",这些话在人类协作里没问题,交给 AI 就是灾难的起点。它感知不到你的潜台词,只能按概率选"最可能"的解释。而这个解释,经常跟你的真实意图南辕北辙。

02 上下文知识匮乏

AI 对你的系统一无所知,除非你告诉它:

  • 哪些服务是核心链路,哪些是边缘功能?
  • 字段的意义是什么?哪些不能改?禁区在哪里?
  • 这个接口的 RPC 调用路径是什么?
  • 缓存失效后,降级还是返回错误?
  • 缓存过期时间要不要加 20% 随机浮动,避免击穿?

这些"组织内部常识"不显式注入,AI 就用训练时的通用模式来填。结果是错误的降级策略、越权的数据访问、跟现有契约冲突的接口变更——污染架构,埋下隐患。

03 没有验证闭环

模糊的语言和匮乏的上下文都还不是最要命的。真正危险的是缺人机协同的验证闭环。现在的 AI 不会主动反馈不确定性,也不会自己去查知识库(这正是《Karpathy 的 LLM 知识库想法,我自己搭了一遍》要解决的问题),得靠开发者设计交互流程:

  • 强制澄清:遇到模糊或拿不准的地方,选 A 还是选 B,必须问,不能擅自作主。
  • 上下文补全:我们给的信息一定不全,AI 必须能自己去指定位置调查。
  • 自我验证:信息够了之后,能不能串起来形成合理方案?这需要 AI 有自我验证的能力。

验证闭环:拿不准就先问,信息不够就自己查,方案成型先自证

04 上下文过长,"腐化"出幻觉

上下文太少会偏,太多也会错。大模型的上下文容量和信息处理能力都有限,信息量一上来,注意力机制就开始"失焦":早期的关键约束被稀释,后期的临时补充被过度强调。最早定的规则,到后面被"遗忘"了——这个现象很明显。而且上下文过多会迫使模型压缩信息,进一步失真。

要控制信噪比:

  • 上下文精准,胜过堆砌
  • 描述要结构化
  • 明确当前的重点是什么

上下文越长,最早定下的规则越容易被稀释、"遗忘"——这就是腐化

最后

先在上下文里定义一套基础规范,你甚至可以把它加进自己的 skill:

  • 需求有歧义就先问,不要根据"常见做法"擅自添加用户没要求的任务。
  • 用户描述存在多种理解时,先澄清,别替用户猜。
  • 50 行能解决的问题,别写成 200 行。不过度封装,不过度抽象。
  • 尽量只做局部修改,不要把小任务做成大手术。
  • 任务复杂就分步实施,控制上下文总量,避免"腐化"。
CC BY-NC-SA

知识共享协议

本文采用 CC BY-NC-SA 4.0 许可协议

转载请注明出处,不得用于商业用途,演绎作品需采用相同协议

微信搜一搜 胖张Dev

微信搜一搜「胖张Dev」

暂无评论

添加新评论