示例太多反而压住任务:原因 + 对症修复

塞 5 个以上示例,模型会挑最像你输入的那个去抄,而不是真去做任务。砍到 1-3 个;推理模型上先试零示例。

你塞了 8 个示例”覆盖每种情况”。现在输出挑一个最像你输入的示例去抄,哪怕任务本该重新推理。更糟的是:输出像 8 个示例的拼贴,把本不该同框的措辞揉到一起。示例多了感觉应该更准。可过了某个点就反过来了:示例挤掉指令、风格各自漂走、夹带的边界情况误导常见情况,还占掉本该留给任务的 token。

最快修复: 数一下示例个数;有 5 个或更多就砍到最典型的 1-3 个,让它们风格一致,再把任务指令(Now do this for the input below:)紧贴在示例后面。如果你用的是推理模型(GPT-5.5 Thinking/Pro、开启 extended thinking 的 Claude、Gemini 3.1 Pro),先把示例全删了试一遍——见下面的推理模型说明。

本文讲为什么”示例多”不等于”输出好”、怎么挑出真正能钉住结果的 1-3 个示例,以及 2026 年的推理模型在哪一种情况下把这条规则整个反过来。

推理模型例外(先看这条)

这是少给示例成为标准建议之后才出现的变化。在会”先想再答”的现代推理模型上,few-shot 示例往往不是帮忙而是帮倒忙

  • DeepSeek 自家的 R1 发布论文写道,few-shot 提示会”持续拉低”R1 的表现,建议直接用**零示例(zero-shot)**描述问题和输出格式(DeepSeek-R1 论文)。
  • 针对 OpenAI o1-preview 的研究得出同样结论:往推理模型上堆 few-shot 上下文会拉低结果,和非推理模型完全相反(Microsoft,《From Medprompt to o1》)。

机制是这样:推理模型看到示例后,倾向于照抄示例的表面套路,而不是用它自己的思维链从头解你这道题。示例把你正花钱买的那段推理给抄了近路。

2026 年 6 月的实用规则:

模型类型要不要示例2026 年对应模型
推理 / “thinking” 模式先试零示例;只为输出格式留 1 个示例GPT-5.5 Thinking 与 Pro、开 extended thinking 的 Claude Opus 4.7 / Sonnet 4.6、Gemini 3.1 Pro thinking、DeepSeek R1
快速 / 非推理模式1-3 个示例通常有用GPT-5.5 Instant、未开 extended thinking 的 Claude、传统对话补全

如果你在推理模型上,本文剩下的部分对你保留的那个锚定格式示例仍然适用——但先把示例删了、把任务讲清楚。常常这一步就把漂移修好了。

常见原因(非推理模型)

1. 为”覆盖所有”硬堆

你为边界 A 加一个、为边界 B 加一个、“以防万一”再加 C 到 H。这套集合的风格跨度已经比你真实输入还宽。

如何判断: 5 个或更多示例,每个对应一种边界。

2. 示例风格 / 结构漂

示例 1 简洁、示例 4 啰嗦、示例 7 用 bullet。模型把它们一平均,输出就不一致了。关于 many-shot 的研究发现,又长又混的示例块会推高输出格式错误率,因为多出来的长度把模型从该有的答案形态上带偏(Many-Shot In-Context Learning,Agarwal 等)。

如何判断: 示例之间在长度、语域、结构上不一致。

3. 示例含误导性边界

你加了个边界示例。模型就把那个边界当成常态,把边界处理套到日常输入上。

如何判断: 边界处理得好、常见情况却处理错。

4. 示例 token 超过任务

2000 token 的 prompt 里有 1600 token 是示例,任务只占 20%。模型锚定到占主导的内容——示例——把任务当成脚注。

如何判断: 示例 token 数 > 任务 + 约束 + 输出规范之和。

5. 示例后没有明确指令

最后一个示例后没有”现在为以下输入做 X”。模型以为你想要第 9 个示例,于是又产出一个示例,而不是答案。

如何判断: prompt 结尾是示例,不是任务动词。

你属于哪一种

症状最可能的原因跳到
输出几乎逐字照抄某个示例示例太多 / 太像,或推理模型在照抄Step 1 / 推理说明
输出把几个示例的措辞混在一起示例风格漂(原因 2)Step 1 + Step 2
常见输入被当成罕见边界处理误导性边界示例(原因 3)Step 5
模型返回又一个示例,不是答案示例后没有任务指令(原因 5)Step 3 + Step 4
长 prompt 上输出格式老是崩示例块太大(原因 4)Step 6

动手前先确认

  • 数示例个数。超过 4 个,大概率已经过了甜点位。
  • 区分哪些是典型、哪些是边界。
  • 决定哪 1-3 个真正有代表性。
  • 确认示例风格、结构一致。
  • 计划把任务指令放在示例正后面。
  • 看看你是不是在推理模型上——是的话,计划顺手测一遍零示例。

需要收集的信息

  • 含全部示例的当前 prompt。
  • 漂向某个示例或拼贴多个示例的输出。
  • 你的典型输入 vs 边界输入。
  • 示例 token 数 vs 任务 token 数(大多数 playground 会实时显示 token 计数)。
  • 模型名称和模式(Instant 还是 Thinking、extended thinking 开没开)以及任何 system prompt。

最短修复路径

Step 1:砍到 1-3 个代表性示例

挑能做到这些的示例:

  • 覆盖典型情况(不是边界)
  • 风格、结构一致
  • 清晰展示输出形态

每个保留的示例,用一句话说清为什么留。说不出来就砍掉。

Step 2:按代表性排序

最典型的放第 1 个。第 1 个锚定最强;最后 1 个吃近期偏好。

Example 1(最典型):……
Example 2(典型范围内的变体):……
Example 3(典型的边界):……

Step 3:示例显式标号

EXAMPLE 1:
Input: <input 1>
Output: <output 1>

EXAMPLE 2:
Input: <input 2>
Output: <output 2>

NOW DO THIS FOR THE INPUT BELOW:
Input: <real input>
Output:

显式的 NOW DO THIS 标签能挡住模型继续往下接示例序列。

Step 4:任务指令紧贴示例之后

任务动词应该是模型开始生成前读到的最后一样东西。近期偏好为你所用。

Step 5:边界单独处理

如果你确实需要边界覆盖,别把它塞进主 few-shot,改用路由:

主 prompt:处理典型情况(带 1-3 个典型示例)。

输入匹配 <边界条件> 时,路由到一个独立子 prompt,
里面放边界示例 + 边界规则。

边界处理留在主路径之外。

Step 6:审示例预算

示例如果超过约 1000 token 就剪。每个示例只保留能展示模式的最小内容,别用完整的真实样本。这里剪一剪,也顺带降低长示例块带来的格式错误率。

怎么确认已经修好

  • 示例个数在 1-3 之间(或在去掉示例后反而更好的推理模型上是零个)。
  • 所有示例在风格、结构、语气上一致。
  • 最典型的排在第 1 位。
  • 真实输入前紧贴着一行 NOW DO THIS 或等价标签。
  • 输出把典型情况处理得好,边界走单独路径。
  • 同一个 prompt 跑 3 次结果一致(同温度重跑;如果在验证格式,把 temperature 设成 0,把示例效应和采样噪声分开)。

如果还是没修好

  1. 你的典型情况可能没定清楚。写 1 个理想示例,只用它。
  2. 示例可能还在漂。逐行审长度、语域、结构上的一致性。
  3. 任务可能根本不需要示例。干脆全删——尤其是在推理模型上。
  4. 输入很多样时,切到检索(RAG),按每条输入动态拉出最相关的几个示例,别用固定的 many-shot 块。

常见问题

多少个示例算”太多”? 非推理模型上,1-3 个是有效甜点位,收益通常在 2-3 个就趋平。加到 5 个以上往往先趋平再下滑,因为噪声和格式错误在累积。有些分类任务确实能从真正的 many-shot(几十个示例)受益,但开放式生成几乎不会。

GPT-5.5 Thinking 或开了 extended thinking 的 Claude 上,到底要不要用示例? 先不用。推理模型常常零示例反而更好;针对 R1 和 o1 的厂商研究都显示 few-shot 会拉低它们。最多留一个示例,而且只用来钉输出格式,不要拿来教推理。

我的输出老是一字不差地照抄某个示例,为什么? 要么是几个示例之间太像(模型过拟合到那一个套路),要么是推理模型在照抄示例而不是推理。把示例做得更有差异或干脆精简;在推理模型上就试着删掉它们。

示例多有没有更好的时候? 有。在非推理模型上做范围窄、定义清楚的分类时,准确率能一路升到几十个示例才饱和。但写作、抽取、问答这类任务,超过一小撮示例后上下文稀释通常占上风,所以默认 1-3 个。

模型返回的是又一个示例,不是答案,我哪里做错了? prompt 结尾停在示例上,没有任务指令。在真实输入前面加一行明确的 NOW DO THIS FOR THE INPUT BELOW:(Step 3)。

预防建议

  • 非推理模型上多数任务默认 1-3 个示例;推理模型上默认零示例。
  • 每季度审一次示例库,剔除漂离标准的示例。
  • 示例预算控制在总 token 约 30% 以内。
  • 任务指令永远紧贴示例之后,绝不放在前面。
  • 输入多样时优先动态示例选择(检索),不要静态 many-shot。
  • 个数拿不准时做 A/B 测:1、3、5 个,选达标的最少数。

相关阅读

标签: #排查 #Prompt #Prompt 质量 #Prompt 工程