识别与应对 AI 的「幻觉」
本节目标
- 认识 AI 幻觉在代码场景的 4 种表现
- 掌握"三招拦截幻觉"的实操
- 建立"凡 AI 说的 API,先查官方文档"的反射
4 种幻觉表现:
① 编造不存在的 API / 函数名(如 fs.readAllSync)
② 给过时的用法(旧版本签名、已废弃方法)
③ 逻辑看似合理但边界错(off-by-one、漏处理 null)
④ 引用不存在的库或版本三招拦截:
招1 类型守卫:用 TypeScript,编译期就能抓出"不存在的函数"
招2 官方文档:凡 AI 提到的 API,先去官方文档/类型定义核对
招3 自证运行:让 AI 给"能跑的最小验证",你自己跑一遍示例:AI 写了 fs.readAllSync('a.txt'),你一查 Node 文档发现没有这个函数(应为 fs.readFileSync)——这就是典型幻觉,TS 也会立刻标红。
名词解释
- 幻觉(Hallucination):AI 生成看似合理但实际不存在/错误的内容。代码幻觉尤危险,因为它"像真的"却跑不通或行为错。
- 类型守卫(TS):用 TypeScript 的类型系统在编译期校验函数/字段是否存在,能在运行前抓出大量"编造 API"类幻觉。
- 官方文档核对:把 AI 提及的 API 名去官方文档/
.d.ts类型定义里验证存在性与签名,是拦截幻觉的黄金动作。
课后练习
- 为什么 TypeScript 能拦住很多"编造 API"的幻觉?
- 答案:TS 编译时查类型定义,调用不存在的函数/字段会直接报错,把"运行时才炸"提前到"写代码时就红"。
- 招3"自证运行"具体怎么做?
- 答案:让 AI 给一段能直接
node/浏览器跑的最小验证(含输入与期望输出),你亲自跑,跑不通即证明有诈。
- 答案:让 AI 给一段能直接
总结
幻觉是 Vibe Coding 必须直面的"原罪"。AI 生成代码时,会自信地写出根本不存在的函数名、过时的 API、看似对实则错的边界处理——而且它"说"得理直气壮,让你容易轻信。我的三条拦截招里,最该养成的是"反射性查官方文档":凡 AI 抛出一个 API,先去文档或 .d.ts 里确认它真的存在、签名正确。TypeScript 是免费的第一道防线,它把一堆幻觉在编译期就红给你看。招3"自证运行"则把信任建立在"我亲眼跑过"而非"AI 说能跑"。请记住:AI 不会因为你信任它就变准确。对它的每个具体断言保持轻微怀疑、用验证收口,是你与幻觉之间最稳的防火墙。