prompt 越写越长怎么办:用结构代替堆字
这篇文章要解决什么问题
随着你越来越会用 AI,你的 prompt 会变长——你开始想加背景、加约束、加示例、加输出要求……结果你发现一个反常识的现象:
prompt 写长了之后,AI 反而开始抓不住重点。它可能忽略某条关键约束、混淆数据和指令、或者把你提供的参考材料当成要回答的问题本身。
问题不在于 prompt 太长——有些生产级 prompt 几千 token 照样很准。问题在于长 prompt 没有结构——AI 需要”扫描”一整坨文字去找指令,找错就出错。
读完这篇你能带走什么
- 理解为什么长 prompt 会让 AI 混乱(注意力不均匀)
- 2 个结构化技巧:用分隔符把 prompt 切块 + 把指令放在末尾
- 一个从”简单 prompt”过渡到”复杂 prompt”的分块模板
为什么长 prompt 会让 AI 混乱
AI 处理 prompt 时有一个特点——对开头和末尾的注意力最强,对中间部分注意力较弱。这个现象在研究文献里叫 “lost in the middle”(中间迷失),在越长的 prompt 里越明显,但现代模型(GPT-4o、Claude Sonnet 等)在长上下文能力上已经有明显改进,这个效应比早期模型弱了一些。
所以当你写一个长 prompt 时,如果不做任何结构化处理:
- 放在中间的关键约束可能被忽略
- 你的”数据/参考材料”和”指令”混在一起时,AI 可能分不清哪个是让它执行的、哪个是让它参考的
- 多条指令叠加时,AI 可能只执行了最后一条
结构化就是解决这些问题——给 AI 一张”地图”,让它知道哪块是什么。
🔑 技巧 1:用分隔符把 prompt 切块
当你的 prompt 超过一段话的时候,不要让所有东西连在一起。用明显的分隔符把不同类型的内容切开:
最简单的分隔符是 XML 标签:
<背景>
我是一个 3 人前端团队的 Tech Lead,负责一个 B2B SaaS 项目。
</背景>
<参考材料>
[这里贴一些你找到的对比文章或者同行经验]
</参考材料>
<约束>
- 从学习曲线、性能、生态三个维度对比
- 输出表格 + 最终推荐(1 段话)
- 不确定的信息请标注
</约束>
<任务>
从 Redux Toolkit、Zustand、Jotai 三个状态管理方案里推荐一个。
</任务>
四段用 <xxx>...</xxx> 标签包起来——AI 一眼就能看出:这是背景、这是参考、这是约束、这是任务。不再需要”扫描”找指令。注意顺序:背景和参考材料在前,约束和任务在最后——这呼应下一个技巧(指令放末尾)。
标签名用中文还是英文都行,关键是前后一致。也可以用 Markdown 标题(## 背景 / ## 任务)达到类似效果,只是标签更明确一些。
什么时候开始用分隔符
其实没有一个”超过多少字就必须结构化”的硬性界限——模型能力一直在迭代,不同模型对结构的敏感度也不一样。现代模型在短 prompt 上对纯文字的理解已经很好,强行结构化反而啰嗦。
更实用的判断方法是观察模型的表现:如果 AI 漏掉了你的约束、混淆了数据和指令、或者只执行了一半要求——这就是结构化的信号。等模型”读不出你的意思”时再切块,比提前过度工程更合理。
🔑 技巧 2:指令放在末尾,数据放在前面
这一条反直觉——很多人习惯把”我要做什么”写在最前面,然后贴一大段材料。但实际上,AI 对末尾的内容注意力最强。
所以更有效的顺序是:
[背景/角色] —— 最前面
[参考材料/数据] —— 中间
[具体任务/问题] —— 最后
也就是说,把你真正想让 AI 做的那件事,放在整个 prompt 的最后。这样即使 prompt 很长、中间部分没被完全消化,AI 也能抓住”最后要做什么”这个最关键的信息。
这个规律在长上下文的任务上尤其明显——查询位置会直接影响 AI 能不能准确抓到正确信息。具体提升多少取决于模型和任务,但方向性结论在 Anthropic、OpenAI 的官方指南里都有一致建议。
一个 before/after 对比
❌ 任务放开头(效果差)
请帮我从下面的文档里总结要点。
[贴了 5000 字的文档]
输出 5 条要点,每条不超过 20 字。
AI 看到开头”请帮我总结要点”,然后扫了 5000 字文档,最后看到”5 条,每条 20 字”。中间大量内容稀释了指令的优先级。
✅ 任务放末尾(效果好)
你是一个精通提炼的编辑。
<参考材料>
[贴了 5000 字的文档]
</参考材料>
请从上面的材料中提炼 5 条要点,每条不超过 20 字。如果材料中某个要点你不确定,请标注。
AI 最后读到的是清晰的指令——要点数量、长度限制、不确定时怎么办。注意力聚焦在”要做什么”上。
一个可复用的分块模板
把上面两个技巧结合,你会得到一个可以反复复用的 prompt 模板:
<角色/背景>
[你是谁,为什么需要这个]
</角色/背景>
<参考材料>
[如果有需要 AI 参考的文档/数据/示例,放这里]
</参考材料>
<任务>
[具体要 AI 做什么]
</任务>
<输出要求>
- 长度:[具体数字]
- 结构:[列表 / 段落 / 表格]
- 语气:[参考场景]
- 不确定时:[回答"不确定"还是标注或其他]
</输出要求>
这个模板覆盖了大多数常见 prompt 场景的基础要素(few-shot 示例可以放进”参考材料”块里)。写复杂 prompt 时不用从零开始——复制这个骨架,逐块填内容就行。
一个重要的自问
最后一个小建议:prompt 越长,越要在发送前自己读一遍。
问自己一个问题:如果我是一个刚入职的实习生,只读这段文字,我能 100% 知道要做什么吗?
- 如果答案是”能”,发出去
- 如果答案是”好像不太清楚”,找到模糊的地方,要么补具体数字,要么加一个示例
这个自检动作比任何结构化模板都管用——它让你站在 AI 的视角,而不是写作者的视角。