
本文通过一个两万行代码项目、耗时两周四遍重构失败的真实案例,深度剖析了AI面对冗长Prompt时“越强调越读不动”的4个底层原因(注意力U形曲线、静默择一、粉红大象效应、上下文淘汰赛),建议开发者放弃堆砌约束,给Prompt“瘦身”。
| 工具 | 测试模型 | 项目规模 | 机械拆分表现 | 复杂逻辑(SSE) | 最终结果 |
|---|---|---|---|---|---|
| Claude Sonnet 4.5 | 两万行左右 | 表现相似 | 表现相似 | 不尽人意 | |
| ChatGPT 5.0 Codex | 两万行 Flask 项目 | 99% 乖乖执行 | 时序崩溃 | 失败告终 |
导读|AI 不听话,你就加“严禁”、加“铁律”,加粗标红再来一遍,结果越加越崩?说实话,我也是这么踩过来的。这篇我用两万行代码、四遍重构的翻车史,拆开“越强调越读不动”背后的 4 个底层原因。不是 AI 笨,是你把“强调”当成了万能解药。建议先收藏,下次加规则前翻出来看一眼。
说句实话,很长一段时间里,我都陷在一个死循环里:AI 不听话,我就再加一条"严禁";还不行,就再加一条"铁律";同一条规则写三遍、五遍、八遍……结果不是越来越听话,而是越来越乱、越来越崩。
直到我用 ChatGPT 5.0 Codex 重构一个两万行的 Flask 项目,整整两周、重构四遍,最后还是失败告终,我才回头想明白一件事--
AI 不是越强调越听话。你越强调,它反而越"读不动"。
问题从来不在"强调得不够",而在"强调的方式错了"。今天这篇文章不讲怎么写 Prompt 的技巧,而是想跟你聊一个更扎心的认知:为什么你越使劲,AI 越拉胯?真正的坑,不是 AI 能力不行,是你把"强调"当成了万能解药。
故事得从一个客户项目说起。那时候我前后端一起协同开发,为了让功能对接不出岔子,我先让 AI 分析整个项目,再写出一份详细的对接 Prompt,里面白纸黑字写着一条核心要求--不能有遗漏的点。
因为一旦这份 Prompt 出不来或者不准,一个需求就得前后端来回返工,工作量直接翻倍。
第一次跑下来挺顺,我以为搞定了。结果前端联调到一半,报错了,某个鉴权字段的对接点,被跳过了。
最坑的不是 AI 没写这条规则,而是它把规则放在了 Prompt 中间偏后的位置,前面铺垫了一大段业务说明。它"觉得"这个字段"看起来不太重要",就静默跳过了,全程没报错、没提示。你要不是联调报错,根本发现不了--那一刻盯着报错信息,真有点想摔键盘。
那一刻我是什么反应?说实话,第一反应不是怪 AI,而是回头检查我自己的 Prompt,是不是我强调得不够?于是我把"严禁遗漏"又加了一遍,还加粗标红。
结果呢?下一次,它换了个字段漏。
那种感觉怎么说呢?
就像你雇了个助理,能力还行,但每次都得盯着他,生怕出岔子。你以为把要求贴满墙他就不会忘,结果他顾得上这张,就顾不上那张。
后来我对一个项目做重构时,把这套"越强调越长"的毛病,彻底踩实了。那是 2025 年 9 月的事。
那会儿我用 ChatGPT 5.0 Codex 开发,循环往复。重构的过程是这样的--看着 AI 自己规划得比较详尽,但执行起来,一坨一坨的。改好这块,顺手动坏那块;修好那块,又碰坏另一块,按下葫芦浮起瓢。试了两周,重构四遍,最后还是失败告终。
我当时归因很简单:AI 能力还比较欠缺。两万行左右的项目,又试了 Claude Sonnet 4.5,结果也差不多。我让它拆分任务、优化 Prompt,最后都不尽人意。
但这只是引子,真正让我后背发凉的,是我后来翻自己那份重构 Prompt 时发现的。
那份 Prompt 分了好几个阶段。第一阶段,让 AI "从代码架构师专业角度分析,是否有可行的重构方案";第二阶段,是一堆"硬约束"--接口/入参/响应/错误码不改变、日志不增不删不前移、每批变更≤300行、只做机械性等价拆分……铁律一层叠一层。
关键来了:第四阶段的 Prompt,和第一阶段几乎一模一样。
也就是说,我绕了一大圈,又回到了"从代码架构师专业角度分析"的原点。这就是"循环往复"最直接的物证--我没意识到自己一直在重复同一件事:越强调越长,越长越分散,越分散越违反,违反了再追加一遍。
一个完美的恶性循环,闭环了。

如果说前面是"听话"出了问题,那这次重构里最让我破防的,是下面这个对照。
那两份 Python 文件,每份都有几千行,非常臃肿。我的期望是把架构层次拆出来,比如 P2-01 模板外置、P2-02 通用工具下沉、P2-03 路由蓝图化……一直排到 P2-07。我还配了回归清单、提交回滚规范、度量指标,专业得不行。
实际跑下来怎样?大部分乖乖执行实现了,但最后功能没跑通。
那一刻真的有点破防。你以为拆得越细、约束写得越死就越稳,结果它把 99% 的脏活累活都干了,偏偏在最吃时序的 SSE 上栽了。那种感觉怎么说呢?就像装修工人把瓷砖贴得整整齐齐,最后却发现承重墙给拆错了--前面的"漂亮"全成了白费。
崩在哪了?最后卡在 SSE 同步有问题。
这里有个特别讽刺的反差:我那份 Prompt 里,专门注明要关注"SSE 的 started/heartbeat/stream-fallback 事件与日志顺序"。我越是在 Prompt 里反复强调 SSE 的关键性,模型越容易在它身上出问题。
我强调得越多,它崩得越准。

为什么?因为 AI 完美执行了 99% 的机械拆分,分层、分批、零行为变更的动作,它都老老实实做了。但 SSE 这种"有时序、有状态、有同步约束"的复杂逻辑,恰恰被我那份越堆越长的"铁律"逼到了注意力的死角。规则太多、太散、还堆在中间位置,它的注意力根本照顾不过来。
换句话说--SSE 不是被 AI 弄崩的,是被我那份膨胀的"铁律"喂崩的。
到这里问题就很清楚了:AI 不是"不听话",恰恰相反,99% 它都听了,它只是在"读不动"的地方翻了车。那到底为什么越强调、它越读不动?背后是四个挺底层的机制。
我结合自己踩的坑,把它们捋一捋,你会发现这跟"AI 能力强不强"关系不大。
Stanford 有篇经典论文叫《Lost in the Middle》,揭示了一个事实:大模型对输入内容的注意力,不是均匀的,而是呈 U 形--开头和末尾获得最多关注,中间区域最容易被"遗忘"。

换句话说,位置决定优先级,不是规则重要不重要决定优先级。
我的那份 Prompt 正是如此:早期规则少,关键约束在前几行,模型几乎不犯错。等我堆了几百上千行之后,前几行没动,但后面多出来一大堆"中间内容",注意力被严重稀释--犯错频率明显上升。那个被跳过的鉴权字段,就是因为它被埋在了中间偏后的位置。
当 Prompt 里多条指令之间有微妙的张力,模型不会报错,而是静默选一条遵循、丢掉另一条。
我的 Prompt 里就有这种冲突:一边要求"分析必须覆盖四个维度",一边又说"只对有异常的维度展开"。当某个维度长期稳定正常时,模型就有了"合理的"跳过理由--它不是忘了,是被另一条规则"合理"地带偏了。
心理学有个现象叫"粉红大象效应"--你让人"别想一头粉红色的大象",他脑子里反而全是它。大模型有类似的机制:否定指令("不要做 X")反而会先"激活"那个被禁的概念,提高它出现的概率。
这也是为什么"严禁"写多了反而更乱--你越强调"别输出这个字段",模型越容易先想到那个字段。
小技巧: 真要禁掉一个东西,别只写"严禁输出 XX",加一句正向指令告诉它"该做什么",比堆十条"严禁"都管用。这条我后来反复验证过。
多轮对话里,上下文窗口接近满载时,早期的 system prompt 内容会被截断或压缩。你精心堆的那一堆规则,到对话第几轮时,可能已经有一部分被挤出了注意力窗口。
这解释了一个特别熟悉的现象--第一次提问表现完美,多问几轮后又开始犯错。不是它忘了,是那些规则已经被挤走了。

那场重构失败之后,我花了快一年时间,一直在"等"--等上下文更宽、等 AI 能力更强、等编程工具优化更好。
现在回头看,那一年里这些确实都改善了。但有个现象从来没变过:"架构拆得漂亮、最后卡在复杂逻辑"这个模式,一直在重复。
为什么?因为我一直在做"外部归因",把锅甩给 AI 能力、甩给工具、甩给上下文。换句话说,我一直在等"别人变强",却从没想过"自己改用法"。我甚至有个特别要命的状态,原话是:"Prompt 是 AI 帮我写的也不好评估。"
你看,自己不亲手写 Prompt,就永远判断不了问题到底出在哪。你以为在等 AI 升级,其实是在原地打转。
后来我才想明白:那不是 AI 能力的问题,是我用 Prompt 的方式有问题。我把约束越堆越死、规则越加越多,以为"严"就是"稳",结果恰恰是把 AI 逼到了它最容易翻车的角落。
与其等 AI 升级,不如先给自己的 Prompt 升级--少堆铁律、多理结构、把复杂逻辑从"被遗忘的中间"挪到"被关注的首尾"。
真正该升级的,从来不是 AI,而是你那份自己都读得累的 Prompt。
如果你也正在拿 AI 重构自己的项目,我也没啥大道理,就一句过来人的大白话送给你:
别急着骂 AI 笨,也别急着再加一条"严禁",你那份自己都读得累的 Prompt,它读得更累。与其等 AI 升级,不如先给你的 Prompt 瘦个身。
如果你也在 AI 编程的路上踩过类似的坑,欢迎在评论区聊聊你最"头铁"的那次经历。 如果这篇文章对你有帮助,点个「分享」,让更多想学AI编程的朋友看到。 觉得内容有价值?设个邮箱订阅,以后每次更新都能第一时间收到。
您可能也喜欢这些文章



加载评论中…