导读|你的 Prompt 越堆越长,AI 越来越不听话,你以为加的规则还不够,其实是结构该重构了。这篇我用两万行 Flask 项目的翻车经历,加上一套五步分层重构法,带你把读不动的 Prompt 瘦下来。建议先收藏,下次想加规则前翻出来看一眼。
说句实话,很长一段时间里,我都陷在一个错觉里:AI 不听话,是因为我规则加得还不够多、不够细。直到 2025 年 9 月,我用 ChatGPT 5.0 Codex 重构一个两万行的 Flask 项目,被一份几千行的代码文件教做人,我才回头想明白一件事:
想让它读得动,靠的不是再加规则
代码文件太大,AI 根本读不动。靠的是给整个结构分层重构。
这话听着反直觉,我慢慢跟你聊。
01 PART
几千行挤一份文件,AI 读不动、人也排查不动
CODE OVERLOAD · 排查崩溃
那次Flask 项目,核心逻辑挤在两份 Python 文件里,flask_web_server.py 和 web_stock_analyzer.py,每份都有几千行,臃肿得不行。
崩的那次,卡在 SSE 同步。功能跑不通,我得排查到底哪儿断了。打开 flask_web_server.py,光标从第一行往下拖,几千行密密麻麻,我想找 SSE 那段 started、heartbeat、stream-fallback 的处理逻辑,记得大概在文件中后段,具体哪一行根本记不清。Ctrl+F 搜关键词,跳出来一堆位置,有初始化的、有注册路由的、有错误处理的,散在好几个地方,我得来回跳着看,拼凑出完整的调用链。
自己看半天没名堂,就让 AI 帮我定位。结果一提问,它得把整份几千行文件吞进上下文才看得懂,prompt 预算一下子捉襟见肘,它读了半天,给的判断还是模棱两可:可能是这里,也可能是那里,你再看看。
那一刻真的有点破防,怎么说呢?
就像你在一栋几十层的大楼里找一根走错线的电缆,你知道它就在某面墙里,但一层一层翻,翻半天也翻不到,越翻越累,越累越没耐心。
就那一刻我突然想明白:**这文件不是代码写错了的问题,是文件太大、结构太乱的问题。**它大到我自己排查都费劲,大到 AI 每次要吞整份文件才看得懂、prompt 还够不着。再加规则没用,得把这俩大文件拆开、分层重排。
- 图1|几千行挤一份文件,排查到崩溃
02 PART
代码要分层,得先给 AI 一份分层的开发提示词
THE BRIDGE · 提示词也膨胀
决定拆之后,我怎么切的层?
说实话不是我手设计的,我的做法是:把两份几千行 py 喂给 AI,让 AI 先评估,产出一套开发提示词,也就是一份十分详细的拆分方案,然后让 AI 按这份方案去一层层切。
AI 给的方案确实漂亮,P2-01 模板外置、P2-02 通用工具下沉、P2-03 路由蓝图化,一路排到 P2-07,每一步风险多大、收益多大,都说得明明白白。我看着觉得靠谱,直接用了,没让 AI 再做一轮评估。
结果你也猜到了,AI 切层是切了,但前后尝试了四次重构,最后还是失败告终。这段我在系列第一篇里详写过,这儿不重复。
但这次失败让我后背发凉的不是又没成,而是我后来想通的一个衔接点:**代码要分层,得先给 AI 一份分层的开发提示词;可这份开发提示词自己,也是会膨胀的。**我那份重构 Prompt,从第一阶段到第四阶段,越写越长,最后第四阶段绕回了第一阶段的原点,自己就陷进了越强调越长的恶性循环。
换句话说
真正卡脖子的,从来不是代码,也不是 AI 能力,
是那份你要喂给 AI 的提示词本身的结构。
代码我都知道到点该重构,可我那份 Prompt,我愣是没想过它也得分层重构。
主线就从这儿转过来:你维护的那份反复用的 Prompt、CLAUDE.md、Agent 的系统提示词,跟我那两份几千行 py,是一个毛病。
- 图2|代码 → 提示词,提示词也得分层重构
03 PART
Prompt 越堆越长,想精简却无从下手
BLOAT TRAP · 无从下手
转过来之后你会发现,这毛病比你想的普遍。
那会我自己就有几份反复用的 PRD、DEV 提示词,做客户项目时前后端协同、生成需求文档和开发文档用的。一开始几十行,挺清爽。后来每发现 AI 出一次错,就往里塞一条规则:这次漏了字段,加一条;下次多输出了内容,加一条;再下次工具选错,加一条。
一两个月下来,这几份 Prompt 也堆到了几百上千行。
然后问题就来了:我想精简,但无从下手。
不知道哪些该留、哪些该删、哪些该挪位置。更怕的是,删了一条怕 AI 又犯错,挪了一条怕破坏原来的效果。最后就僵在那儿,明知道它太长、太乱、AI 读不动,可就是不敢动、也不会动。
就像你明知家里那根老水管该换了,可一想到要砸墙刨地,就宁可拿个桶接着,将就一天是一天。
那会儿我是真没重构思路。后来我把这事琢磨透了,才明白:
精简不是乱删,是分层。
只要把规则按层摆对位置,该留的自然留得住,该拎出去的拎出去,文件能短一大截,AI 反而更听话。
下面这套分层重构法,就是我当时缺、后来补上的。
04 PART
分层重构法:让最重要的规则,待在它该待的位置
REFACTOR · 五步分层法
我把这套方法拆成五个动作,按这个顺序来:先搭骨架定位置,再外置减负,接着补上参考文件的一致性,然后对最关键的规则做首尾强化,最后把散文改成表格。五步走完,那份读不动的 Prompt 就能瘦下来。
STEP 01
分层架构:位置即优先级
这是最核心的一步。把你的 Prompt 当成一份有层次的文档,位置决定优先级,不是规则重不重要决定优先级。
分四层:
第一层|全局不可违反的规则——放最前面,20 到 50 行以内。工具选择规则、数据过滤规则、全局禁令清单,都压在这儿。
第二层|核心方法论——紧随其后,分析框架、判定规则。
第三层|执行流程——放中间,分析步骤、维度下钻规则,这一层允许适度遗漏,别紧张。
第四层|输出模板——放末尾,报告格式,利用近因效应。
关键点:全局禁令只在第一层写一次,后面所有章节不再重复,需要的时候引用一下就行。
为什么这么排?因为模型的注意力是 U 形曲线,开头和结尾它最上心,中间最容易丢。你把最重要的禁令压在最前面,它读到的第一眼就是铁律;把输出模板放末尾,它生成前最后扫一眼,正好对上。中间那些执行细节,丢一点也不致命。
我后来照这个排,最关键的那几条禁令遵循率明显上来,整份 Prompt 从上千行压到了三四百行,短了一大截。
✦ 小技巧
你不用一上来就背这四层,可以先做一件事:把你现在那份 Prompt 里所有带严禁、必须、不得的句子全拎出来,集中放到最前面,后面的正文里一律删掉重复。
光这一步,你的 Prompt 就能瘦一圈,而且最关键规则的遵循率会立刻上来。
- 图3|四层架构:位置即优先级(U 形注意力)
STEP 02
外置知识:给 Skill 减负
Prompt 膨胀,很大一个原因是把什么都塞进去了。表结构、SQL 模板、报告格式、下钻规则,全往里堆。其实这些参考性的内容,不需要常驻 Prompt。
原则很简单:
规则类内容(行为约束)
留在 Prompt 里。
参考类内容(查阅资料)
外置成引用文件。
这样 Prompt 就能保持在一个 300 到 500 行的甜区,把注意力预算留给真正重要的行为约束。
✦ 小技巧
那怎么判断一条内容该留还是该外置?
问自己一句:这是告诉 AI 该怎么做的规则,还是做的时候查一下的资料?前者留,后者外置。
STEP 03
参考文件一致性:别让课本和规则打架
外置之后有个坑,特别容易被忽略,我也是踩过才记住的:你外置的参考文件本身,可能在教 AI 犯错。
比如你的 Prompt 里写着输出时跳过某类字段,可你外置的 SQL 模板里几十处都在 SELECT 这些字段;你的规则要求四个维度都不能遗漏,可模板示例只覆盖了其中两个。AI 一边读你的规则,一边照着模板写,两个信号打架,结果就是时灵时不灵。
修复就三条:
1 模板里彻底删掉被规则禁止的内容,注释掉也不行,注释也是 token,它照样读得到。
2 模板示例必须完整覆盖规则要求的所有维度,别给部分覆盖的坏示范。
3 关键的格式差异,比如不同表的日期格式,放到显眼的对照表里,别让细节藏在角落。
一句话,参考文件就是 AI 的课本。课本里的示例违反了规则,AI 就会在听老师的话和照课本做之间反复横跳。
✦ 小技巧
外置完参考文件别急着用,先做一件事:把规则里所有禁止的字段、必须覆盖的维度,列成一张清单,拿着清单去模板里逐条对。对不上就改模板,别反过来改规则迁就模板。
STEP 04
指令三明治:首尾呼应
对那些绝对不能违反的核心约束,用三明治模式:开头写一遍,中间是正常流程,末尾再简要重申一遍。
开头靠首因效应,末尾靠近因效应,两个注意力高峰都把它卡住。
注意,只对最关键的 2 到 3 条规则用这个模式。你要是每条规则都来个三明治,那就又回到到处重复的老路了。三明治和无序重复的区别在于:三明治是有意识地在首尾两个高峰区各放一次,无序重复是在中间瞎堆。
✦ 小技巧
怎么挑这 2 到 3 条?
我的经验是问自己一句:这条规则要是被违反了,会不会直接搞砸整件事?
会,就上三明治;不会,就老老实实放中间。
STEP 05
结构化格式:表格优于散文
最后这一步最不起眼,但效果立竿见影。
同样的信息,表格、编号列表、明确的标题层级,比大段自然语言更容易被模型扫描到。
举个例子,原来这么写:查询聚合表用工具 A,查询全量明细表用工具 B,大部分场景用 A,只有需要查全量明细时才用 B。这一长串散文,模型扫过去很容易漏。改成一张两列的小表:
一目了然,遵循率立刻上来。
✦ 小技巧
你那份 Prompt 里,凡是出现连续的如果就、如果就这种条件判断段落,都试着改成表格。一改你会发现,啰嗦的散文瞬间清爽,AI 也更跟得上。
- 图4|表格优于散文,遵循率立竿见影
/// LAST
写在最后:维护 Prompt,跟维护代码是一回事
TAKEAWAY · 维护即重构
我写了这么多年代码,现在越看越觉得,维护一份 Prompt,跟维护一份代码,本质上是一回事。
你每发现 AI 出一次错,就往 Prompt 里加一条规则,这跟你每次线上出 bug 就打一个hotfix补丁,没区别。短期看都解决了问题,长期看都在堆债。代码债到点你会重构,Prompt 债到点你也得重构,不然它就腐化给你看,越用越不听话。
但我得给你泼盆冷水:不是所有 Prompt 都值得分层重构。
你就写个一两百行、用一次就扔的提示词,别折腾,那是给自己加戏。真正值得上这套方法的,是那种你要长期维护、几百上千行、驱动一个 Agent 反复跑的 Prompt。而且分层也不是越细越好,拆成二十层每层三行,那是过度工程,自己都绕晕。
分层的目的不是细,是让最重要的规则待在它该待的位置。
所以回到那句老话:代码到点该重构就重构,Prompt 也一样。与其等 AI 升级救你,不如先把你那份自己都读不动的 Prompt,按层理一遍。
真正该升级的,从来不是 AI,是你那份连你自己都读不动的 Prompt。
下一篇,我会给你一份能对照着自检的清单,你那份 Prompt 到底该不该重构、卡在哪儿,照着查一遍就知道。
我是艾启蒙,热衷分享 AI 实战经验与方法论拆解。
如果你也维护着一份越堆越长的 Prompt 或 Skill,欢迎在评论区聊聊你最不敢动的那一条规则。
THANKS FOR READING
⭐ 把「AI启蒙学习」设为星标,第一时间收到 AI 实战经验更新。