告别玄学 Prompt,用工程化思维驯服 AI 幻觉
0. 写在前面
你是否经历过这样的崩溃时刻?
你洋洋洒洒给 AI 写了一千字的 Prompt,把自己构思了三天的复杂业务逻辑全喂给了它。你期待它给你一个完美的 Java 类,结果它给你拉了一坨大的:
- 不仅忘了引入包,还把你的核心断言删了。
- 不仅逻辑跑不通,还臆造了一个不存在的
UserUtil.getCurrentUserId()方法。 - 你让它改,它越改越错,最后你不得不回滚代码,自己动手重写。
这时候你会骂:“这 AI 还是太蠢了,根本没法用。”
停! ✋
这可能不是 AI 的问题,而是你的**“喂法”**有问题。
在 Sentinel-K 内核 (我们的 AI Native 开发方法论) 中,我们把这个问题称为 Context Overflow Syndrome (上下文溢出综合症) ,并提出了一条极其硬核的法则来解决它——切披萨法则 (Pizza Logic) 。
今天,我们就来聊聊这个让无数 AI 开发者恍然大悟的核心心法。
1. 原理篇:为什么 AI 会“消化不良”?
要理解为什么 AI 会写 Bug,首先要理解 AI 是怎么“思考”的。
1.1 注意力衰减 (Attention Decay)
GPT-4 虽然号称有 128k 上下文,但它的有效注意力并不是均匀分布的。
想象你在参加一场马拉松式的会议。
- 开头 10 分钟:你精神抖擞,记住了老板说的每一个字(项目目标)。
- 中间 2 小时:你开始走神,玩手机,只听进去了一些零碎的词(具体逻辑)。
- 最后 5 分钟:你突然醒了,记住了老板说的“散会”(结尾)。
AI 也是如此。当你给它一个 500 行的复杂任务时,中间的细节逻辑(比如边界条件、异常处理、事务回滚)最容易被它“遗忘”或“幻觉”。
1.2 胃口隐喻 (The Stomach Metaphor)
我们把 AI 想象成一个胃口很好但食道很窄的孩子。
如果你把一整张披萨(一个完整的复杂功能)直接塞进他嘴里,结果只有一个:噎住,然后吐出来。
这就是为什么你得到的代码总是缺胳膊少腿。你试图让它一次性完成:
- 定义接口
- 写数据转换 (DTO)
- 实现业务逻辑 (Service)
- 写单元测试
- 优化性能
这对 AI 来说,就是那张填鸭式的“整张披萨”。它处理不过来,只能瞎编。
2. 实战篇:什么是“切披萨法则” (Pizza Logic)?
切披萨法则的核心定义非常简单粗暴:
当意图涉及变更内容 > 3 个文件 或 > 100 行代码时,必须强制执行原子化拆解。 —— Sentinel-K 内核 [K-PIZZA]
我们把一个复杂的任务(整张披萨),切成三个原子化的切片 (Slices) ,一口一口喂给 AI。
2.1 阶段 A:骨架 (Bone) —— 定义契约
指令 (Prompt) :
"现在执行
Pizza Slice 1/3。 请阅读项目全景图。 任务:只定义UserService的接口签名、UserDTO的结构和UserException异常类。 约束:严禁实现具体业务逻辑,方法体留空或抛出NotImplemented。"
AI 的反应: 这时候 AI 的注意力完全集中在**“接口设计”**上。它会写出非常完美的 Javadoc,非常规范的 DTO 命名,考虑到所有的字段类型。因为它不需要操心业务逻辑。
2.2 阶段 B:桩 (Stub) —— 跑通链路
指令 (Prompt) :
"现在执行
Pizza Slice 2/3。 任务:为UserService的方法提供 Mock 返回值(假数据),并编写一个 Controller 侧的单元测试来调用它。 目标:证明 HTTP -> Controller -> Service 的链路是通的。"
AI 的反应: AI 会生成一个能跑通的测试。这时候你没有任何业务风险,你验证的是**“架构的连通性”**。如果 Controller 注入失败,或者 JSON 序列化报错,在这里就会暴露,修起来只需 10 秒。
2.3 阶段 C:肉 (Muscle) —— 填充逻辑
指令 (Prompt) :
"现在执行
Pizza Slice 3/3。 任务:请填充UserService#register方法的具体逻辑。 逻辑:校验手机号 -> 密码加盐 -> 插入 DB -> 发送事件。 验证:更新测试用例,确保通过。"
AI 的反应: 这时候,接口是稳的(Stage A),链路是通的(Stage B),AI 只需要把那 100 行核心逻辑填进去。它的注意力密度达到最高,写出来的代码逻辑严密,很难出现幻觉。
3. 效果对比:玄学 vs 工程
❌ 错误示范 (The "All-in-One" Prompt)
"帮我写一个用户注册功能,要用 Spring Boot,包含 Controller、Service、Mapper,数据库用 MySQL,密码要加密,手机号要校验,注册成功发个 MQ 消息,顺便把单元测试也写了。"
- 结果: AI 生成了 5 个文件。运行报错:Bean 注入失败。修好后发现 MQ 配置错了。再修好发现手机号校验正则写反了。耗时:2 小时(含修 Bug)。
✅ 正确示范 (Pizza Logic)
Slice 1: "定义用户注册的接口和 DTO。" (耗时 30s,完美) Slice 2: "Mock 一个返回,跑通 Controller 测试。" (耗时 1min,发现依赖缺失,秒修) Slice 3: "实现注册逻辑。" (耗时 2min,逻辑一次过)
- 结果: 代码稳健,测试通过,无回滚。总耗时:10 分钟。
4. 总结:把 AI 当兵器,而不是神
AI 不是神,它不会读心术,也没有无限的注意力。
Sentinel-K 开发手册 的核心理念就是:用确定性的流程(Protocol),去对抗 AI 的随机性(Probability)。
切披萨法则 只是我们工具箱里的第一件武器。在后续的文章中,我还会介绍:
- 反向测试 (Reverse Testing) : 为什么绿灯不可信?如何逼 AI 自证清白?
- 资产分级 (Asset Grading) : 如何防止 AI 改坏你的核心配置?
- 决策日志 (ADR) : 如何让 AI 拥有“长期记忆”?
如果你对 AI Native 工程化 感兴趣,欢迎关注我的掘金专栏。让我们一起,从“Prompt 调参师”进化为“代码指挥官”。
本文标签: #AI编程 #架构思维 #Sentinel-K #软件工程