让 AI 输出稳定的 6 个技巧:同一句提示词,为什么结果忽好忽坏
你大概遇到过这种事:同一条提示词,昨天用着很顺,今天再跑一遍就完全不是那个味道。这篇不讲玄学,只讲怎么把「碰运气」换成「可复现」——六个能立刻上手的技巧,加上一套可以直接抄的稳定化骨架。
先说清:为什么同一个提示词结果会变
先把一件事说破:大模型默认不是「查表机器」,而是「概率采样器」。它输出下一个词时,是从一个概率分布里挑,而不是查一个唯一正确答案。所以哪怕输入一字不改,输出也可能不一样。
这解释了为什么你觉得它在「飘」。但真正让结果忽好忽坏的,通常不是这一个原因,而是下面四个叠在一起。
- 采样随机性:同一句话跑两次,模型可能选到不同的词,然后沿着不同的路径越走越远,开头差一点,结尾差很远。
- 上下文污染:你以为在问同一个问题,其实这次的对话历史比上次长。前面聊过的内容、你删过的半句话,都会影响它这次的判断。
- 隐藏参数差异:有的界面「创意模式」和「精确模式」背后对应不同的采样参数,你只是换了个入口,实际换的是模型的行为习惯。
- 提示词本身有歧义:一句「写得好一点」里,藏着几十种理解。模型每次挑一个,你每次看到的结果自然不一样。
前三点你控制不了多少,但第四点是主战场。绝大多数「不稳定」,本质上是提示词留了太多空白,让模型每次自由填空。
- 随机性来自「模型可以自由选」的地方
- 你要做的,是把它每一次可以自由选的空间压小
- 结构、格式、示例、步骤,本质都是同一件事:把决策权从模型手里收回来
稳定化的底层思路:把选择权收回来
理解了上面这一点,六个技巧就不再是六条零散的偏方,而是同一个思路的六种落地方式:凡是模型自己会「随便决定」的地方,你就提前替它决定好。
想想看,一个开放式任务里,模型要自己决定的东西有多少:用什么语气、写多长、分成几段、先说什么后说什么、举什么例子、结尾怎么收。你每替它锁定一项,输出的方差就少一块。
| 模型原本要自己决定的事 | 你提前锁定的方式 | 不锁的后果 |
|---|---|---|
| 整体语气和风格 | 给一段范例或几条风格特征 | 这次正经,下次俏皮,认不出是同一套内容 |
| 输出的长相 | 明确说用表格 / 清单 / JSON | 一会儿散文一会儿分点,你还得重新整理 |
| 长度 | 写死「X 字左右」或「不超过 X」 | 同样的需求,产出忽长忽短 |
| 先做什么后做什么 | 拆成分步执行 | 顺序每次都不一样,重点不一致 |
| 做完要不要检查 | 加一个自检环节 | 低级错误随缘漏出 |
| 哪些事不许干 | 写清负面清单 | 它可能用上你最不想看到的表达 |
这张表其实就是下面六招的目录。你会发现,它们不是六种技巧,是六个「锁」。
稳定化的逻辑,跟做实验一样:变量越少,结果越可复现。
只不过这里的「变量」不是温度和时间,而是模型每次都能自由发挥的那些空白。
六招换稳定,逐个拆给你看
第一招:固定结构
每次提问都用同一套骨架,比如「角色 → 任务 → 输入 → 约束 → 输出要求」。结构固定了,模型每次接收到的信息组织方式就一致,它不需要猜「这次的重点在哪」。
更关键的是,固定结构对你自己也起作用。它逼你在提问时把该想的事想清楚,而不是想到一句写一句。下一节的骨架就是一份可以直接照抄的结构。
第二招:明确输出格式
格式是方差最大、也最容易被你一句话锁死的东西。如果你要的是清单,就直接说「用无序列表,每项不超过 15 字,不要解释」。如果你要喂给程序,就说「只输出 JSON,不要任何多余文字」。
一个特别管用的小套路:先给一个空壳。你不描述格式,直接把目标格式的框架贴出来,让它填空。
请严格按照下面的结构输出,不要增删字段,不要加开场白: 【一句话结论】 【三条依据】 1. 2. 3. 【风险提示】 【下一步行动】
第三招:few-shot 锚定
语言很难描述「感觉」,但给一个样本,模型立刻就能模仿。这就是 few-shot——用例子代替规则。一到两段风格一致的示例,比十条形容词都管用。
要注意的是,示例必须风格统一。你给两个风格打架的例子,模型会来回摇摆,稳定性反而更差。示例里的内容可以是编的,但格式、语气、节奏必须是你真正要的那一版。
请模仿下面这条范例的语气和结构(只学格式和语气,内容另写): 【范例】 标题:三个信号,说明你的流程该自动化了 正文:第一个信号,同一件事你一天要重复做五遍以上。 第二个信号,每次都要靠人肉把数据从 A 搬到 B。 第三个信号,出错之后没人能在五分钟内定位到哪一步。 【现在请用同样的结构和语气,写关于「[你的主题]」的一条】
第四招:分步执行
一次让 AI 干完所有事,是最容易翻车的。因为一旦它在中间某一步走偏,后面全跟着偏,而且你很难定位是哪一步出了问题。
稳的做法是分两轮:第一轮只让它出骨架或大纲,你确认方向没问题,第二轮再让它按骨架填内容。方向错了,第一轮就能拦住,成本极低。
第一轮: 先不要写正文。只给我这篇文章的大纲——每一节的小标题和一句话要点。 我确认之后,你再写正文。 (我回复确认后) 第二轮: 大纲没问题,按这个大纲写正文,共 1200 字左右,保持小节顺序不变。
第五招:加自检环节
让模型在交答案之前,先自己过一遍检查。这句话几乎不增加成本,却能拦掉不少低级问题:字数不达标、漏了要求、格式不对、前后打架。
自检要写成可执行的清单,而不是一句「请检查一下」。你要告诉它检查哪几项,最好还要求它把检查结果列出来,这样你能看到它有没有真的做。
写完之后,请先不要输出正文。按下面的清单自查一遍,逐条回答「是 / 否」,并说说怎么修正: 1. 字数是否在 1000-1200 字之间? 2. 是否命中了提示词里全部 4 条约束? 3. 有没有出现被禁用的词? 4. 小标题顺序是否和大纲一致? 5. 有没有前后矛盾或重复表达? 自查通过后,再输出最终版本。
第六招:写清负面清单
负面清单就是你明确不想要的东西:不要哪些词、不要哪种结构、不要哪种态度。很多人写提示词只写「要什么」,忘了「不要什么」——结果那些你不喜欢的东西,正是模型最顺手的默认选项。
有一个反直觉的点:部分模型对「不要」「避免」这类否定指令的遵循度并不高,有时甚至因为提到了某个词而强化它。所以负面清单更稳的写法,是把「不要 X」翻译成「要 Y」。
| 想表达的禁令 | 更稳的写法 |
|---|---|
| 不要写得太长 | 控制在 300 字以内 |
| 不要用网络流行语 | 使用正式书面语,句末不用感叹号 |
| 不要空话套话 | 每个观点后面跟一个具体数字或场景 |
| 不要分点 | 写成三段连贯的段落 |
很多人发现输出不稳,第一反应是让它「再改一版」。但对 AI 来说,「再改改」信息量为零,它只能随机换个方向——你感觉越改越差,就是因为它在原地乱走。
稳定化的做法是回到源头:把这次的输出和你要的样子做对比,指出哪一项要求没满足,再把那条要求补进提示词骨架里。修的是提示词,不是这一版答案。
可复制的「稳定化提示词骨架」
把上面六招拼起来,就是下面这套骨架。它不针对某个具体任务,而是一个通用容器——你把方括号里的内容换成自己的信息,就得到一条相对稳定的提示词。
【角色】你是一位[领域/年限]的[职业],擅长[具体技能],语言风格是[两三个词]。 【任务】[要做什么],交付形式是[一段文字/表格/清单/JSON],长度控制在[具体数字]。 【输入】 [粘贴你的素材:原文、数据、需求背景] 【约束 · 要什么】 - 结构:按[小节顺序/固定字段]组织 - 语言:[用词要求、句子长度、口吻] - 内容:每个观点后面跟[具体数字/案例] 【约束 · 不要什么(写成正面表述)】 - [不说空话 → 每句话都指向具体事实] - [不用某类词 → 统一使用口语] 【示例】参考下面的风格和结构(只学形式,内容另写): [粘贴一段你满意的范例] 【输出前自检】交答案前,先逐条回答「是 / 否」,并说明如何修正: 1. 长度是否在要求范围内? 2. 是否命中了全部约束? 3. 示例的风格和结构是否复用到位? 【负面清单】以下内容一律不要出现: [列出具体禁用词、禁用结构、禁用态度]
这套骨架看起来比一句「帮我写个东西」啰嗦很多,但它把模型每次要自由发挥的空间几乎压到了底线。你会发现第一次就写长一点的值,远低于来回改五遍的成本。
有人在骨架里塞进二三十条约束,结果模型顾此失彼,反而更容易漏掉关键项。约束数量是有边际效应的:核心的几条例清楚,比一长串互相打架的规则更稳。
一个实用的判断标准:如果两条约束你自己都说不清谁优先,那就删掉一条。留存下来的,应该是每次都不能妥协的那几条。
不稳定症状与修复对照表
下面这些是实际使用里出现频率最高的几种「飘」,你可以直接对号入座。
| 症状 | 大概率原因 | 对应哪一招 |
|---|---|---|
| 格式每次都不一样 | 没说输出形态 | 第二招:明确输出格式 |
| 语气忽正忽谐 | 没给风格锚点 | 第三招:few-shot 锚定 |
| 重点每次换位置 | 一次塞了太多步骤 | 第四招:分步执行 |
| 老犯同一个低级错 | 没让它在交卷前检查 | 第五招:加自检环节 |
| 冒出你最烦的表达 | 只写了要什么,没写不要什么 | 第六招:写清负面清单 |
| 连你自己都记不住怎么问的 | 没有固定骨架 | 第一招:固定结构 |
一个容易忽略的细节:把每次成功的提示词原样存下来。稳定不只是「这次稳」,而是「下次还能稳」。存下来的那条,就是你下次复现的凭据;改动过的版本,最好也留个备份,方便对比是哪一句改动起了作用。
稳定不等于僵化:什么时候该松手
六个技巧讲完了,但最后要提醒一句:稳定化是为了可复现,不是为了把 AI 用成一台死板的打印机。
有些任务本来就需要发散——头脑风暴选题、找灵感的文案方向、探索性的方案设想。这种时候你把约束拉满,反而会把它最有价值的那部分能力锁死。稳定化的正确用法,是用在你需要反复交付同类结果的任务上;需要创意的时候,允许它自由一点,跑几个版本再挑,反而更好。
稳定性不是靠「求」来的,是靠减少模型每一次可以自由发挥的空白换来的。你替它多做几个决定,它就少给你几个意外。
还有一个绕不开的现实:模型和平台本身在持续迭代,参数、默认行为都可能变。今天很稳的写法,过一阵可能要微调。以官方最新文档与平台最新公示为准,定期回来核一遍你的模板库,是保持长期稳定的必要动作。
另外提醒一句:如果你把 AI 生成的这些内容直接对外发布,按《人工智能生成合成内容标识办法》,需要主动做显式标识,具体如何执行请以各平台最新公示为准。
下一篇我们往上一层:既然模型能自检,那能不能干脆——让它自己检查自己的错误?这就是「高阶提示词」要解决的问题。