Prompt 出错别靠猜:把失败样本喂给优化器,再用原题复测

Prompt 出错别靠猜:把失败样本喂给优化器,再用原题复测

把 Prompt 的真实失败样本、具体批评和成功标准整理成优化材料,再用同一批输入复测,适合反复产出通知、FAQ、邮件和客服回复。

很多人改写作 Prompt 时,看到一条结果不满意,就顺手加一句“更自然”“少一点 AI 腔”。下一次结果可能变好,也可能只是换了一种失败方式。
更稳的做法是把失败留下来:固定原始输入,保存旧 Prompt 的输出,指出具体失分处,再让模型只围绕这些失分提出改动。改完以后,仍然用同一批输入复测。
这套方法适合同一种写作任务反复出错的情况。它的重点不是让模型凭空“优化”一条 Prompt,而是让模型看到真实失败、明确评价标准和不能牺牲的条件。

先把“这次写坏了”变成可评分的样本

一条能用于优化的失败样本,至少要包含这些字段:
字段需要写什么示例
样本 ID方便复测和回查N-03
输入当时交给模型的材料一则功能上线通知
旧输出Prompt 实际生成的文字完整保留原文
失败类型只写一个主要问题把“计划”写成“已经”
具体批评指出哪句话、错在哪里“已于 9 月 12 日上线”超出了材料
期望变化这句话应该变成什么样保留“计划于 9 月 12 日”
不可改变项改写时必须保护的内容日期、功能范围、限定词
评分或状态Good / Bad、分数或待判断Bad;事实边界失守
“写得更像人”是一条方向,不是一条可以稳定评分的反馈。“把‘计划于’保留为‘计划于’,不要改成已完成时态”才是模型可以执行、人工也能复核的反馈。
一开始不需要收集几十条样本。先选出几条真实失败,覆盖 Prompt 最常出错的类型:事实越界、漏掉限制条件、语气过度承诺、格式遗漏或结尾无边界扩写。样本数量少时,读者更容易看清每条反馈是否具体;样本增加后,再检查这些失败是否代表日常任务。

一条可直接复制的 Prompt

下面这条 Prompt 用于优化重复写作任务。你可以把失败样本贴进去,先让模型给出新版 Prompt,不要让模型直接替你重写所有业务文案。
你是一名 Prompt 评审员。请根据真实失败样本,优化下面这条中文写作 Prompt。

<task_definition>
任务名称:[例如:把产品更新材料写成面向普通用户的通知]
目标读者:[例如:已经使用该产品的团队成员]
读者读完后要完成的动作或判断:[例如:判断自己是否受影响,并找到操作入口]
允许的输出类型:[通知 / FAQ / 邮件 / 客服回复 / 会议纪要]
</task_definition>

<current_prompt>
[粘贴当前正在使用的完整 Prompt]
</current_prompt>

<failure_samples>
对每条样本使用以下字段:
- 样本 ID:
- 输入材料:
- 当前 Prompt 的输出:
- 失败类型:
- 具体批评:指出原文中的句子或字段,以及它为什么不合格
- 期望变化:说明合格结果应如何变化
- 不可改变项:列出必须保留的事实、数字、日期、范围、限定词、格式字段或责任主体
- 评分或状态:Good / Bad / 分数 / 待人工判断
</failure_samples>

<success_criteria>
1. 只使用输入材料中已有的信息;缺失信息标为“待确认”,不要猜测。
2. 日期、数字、名称、范围、条件、责任主体和“计划、预计、可能、截至”等限定词必须保留原意。
3. 每条失败样本中的主要问题都得到对应规则或检查动作。
4. 规则能迁移到同类输入,但不扩大任务范围,不凭一条样本增加无关要求。
5. 输出格式完整,读者能找到任务要求的事实、影响、行动和待确认项。
</success_criteria>

<optimization_scope>
- 可以改写 current_prompt 中的任务说明、规则、输出格式和生成后检查步骤。
- 只能依据 failure_samples 和 success_criteria 修改;不要为了“看起来更专业”添加无关角色、背景故事或复杂术语。
- 把“不要……”改成可观察的替代动作和检查方式,例如:
  “不要夸大” → “保留原材料中的限定词;交稿前逐句检查是否新增绝对化承诺”。
- 同一个问题在多条样本中重复出现时,优先增加一条稳定规则;只出现一次且无法迁移的问题,标为“需要人工判断”,不要硬编码。
</optimization_scope>

请严格按以下顺序输出:
1. 失败模式表:样本 ID、主要失败、可能原因、需要增加或修改的规则。
2. 优化后的完整 Prompt:可以直接复制使用;不要用省略号代替任何规则。
3. 改动账本:原规则、改后规则、对应样本 ID、预期解决的问题。
4. 风险提示:列出可能被新版 Prompt 牺牲的内容,以及复测时必须重点检查的样本。
5. 停止。不要直接生成任何业务成稿,不要自行补写失败样本没有提供的事实。
这条 Prompt 里最重要的是 failure_samplessuccess_criteria。前者告诉模型“哪里已经失败”,后者告诉模型“怎样才算修好”。optimization_scope 则把改动限制在当前任务,避免模型把一条通知 Prompt 改造成一套无关的通用写作系统。
如果你使用 OpenAI Dashboard 中的 Prompt Optimizer,官方指南也把数据集和评估结果放在优化流程的中心:数据集至少要有 3 行带响应的数据,每行至少有一个 grader 结果或人工标注;可用的反馈包括 Good / Bad 标注、文字批评和 grader 结果。优化完成后仍然需要测试和人工审查,因为新版 Prompt 可能在特定输入上表现更差。1

用一则通知看这张表怎么工作

假设你有一条“产品搜索功能调整”的写作 Prompt。材料只有这些事实:
搜索结果排序将于 10 月 8 日调整。
调整后,默认结果会优先显示最近更新的内容。
用户仍然可以切换到“按相关性排序”。
具体排序算法没有公布。
旧 Prompt 生成了三条结果:
样本 ID旧输出摘句失败类型具体批评期望变化不可改变项
N-01“10 月 8 日起,搜索将变得更准确。”无依据评价材料没有“更准确”的结论只写排序变化日期、排序变化
N-02“系统会自动根据用户需求给出最佳结果。”过度承诺材料没有“用户需求”或“最佳”写明默认排序规则“默认”、最近更新
N-03“你也可以选择其他排序方式。”行动信息不完整没有写出入口名称写出“按相关性排序”入口名称
把三条样本交给上面的优化 Prompt 后,合格的改动方向应该是:
  • 把“更准确”这类没有材料依据的效果判断删掉;
  • 强制保留“默认”“最近更新”“仍然可以”等范围与状态词;
  • 要求行动项使用材料里出现的准确入口名称;
  • 增加交稿前检查:逐句查找“最佳、一定、自动满足、全面提升”等材料没有支持的效果承诺。
一版可能的优化后规则是:
生成产品通知时,只写材料明确给出的变化、默认状态和可用入口。
遇到“更好、更准确、最佳、智能满足”等效果评价,只有在材料明确支持时才可使用;否则删除或标为待确认。
涉及状态变化时,保留“默认、仍然可以、计划、预计”等限定词,不得把它们改写成完成或保证。
交稿前逐句核对:日期、排序名称、默认状态和可用入口是否都能回到输入材料。
这段规则的价值在于,它回应了三条真实失败。它没有因为 N-01 的问题,顺手加入“所有通知都必须使用三段式结构”;也没有因为 N-03 的问题,虚构一个材料没有给出的设置路径。

复测时,比较的是同一批输入

优化 Prompt 的下一步不是立刻投入日常使用,而是用原来的样本重新跑一遍。至少保留四种状态:
  1. 改善:原来的失败被修复,其他硬性要求仍然通过。
  2. 保持:原来已经合格的部分仍然合格。
  3. 回归:新版修复了一个问题,却让另一条样本出现新问题。
  4. 无法判断:材料或评价标准不足,人工暂时无法确认。
可以用这张复测表:
样本 ID旧版状态新版状态变化处理动作
N-01Bad:新增效果评价Good:只写排序变化改善保留新版
N-02Bad:写成最佳结果Good:保留默认规则改善保留新版
N-03Bad:入口模糊Good:写出排序名称改善保留新版
N-04Good:日期正确Bad:日期被省略回归补充日期必检规则后复测
OpenAI 的 GPT-5.2 提示指南建议先建立评估基线,每次只做小改,再重新运行评估;出现回归时,再针对格式、范围或其他具体约束调整 Prompt。2
Google 的提示策略指南把复杂任务拆成多个提示,并让前一步输出成为后一步输入;它也建议在生成后按任务检查结果。3 这正适合把“失败分析—Prompt 优化—同批复测”拆成三个阶段,而不是在一个对话里让模型边分析、边改 Prompt、边宣布成功。
Anthropic 的提示实践也给出了类似的链式结构:先生成草稿,再按标准评审,最后依据评审结果改写;每一步作为独立调用,便于记录、评估或分支处理。4

什么时候值得用

这套方法适合输入结构相近、输出目标稳定、失败可以举证的任务:
  • 产品更新通知总把计划写成已完成;
  • FAQ 总漏掉适用范围或例外条件;
  • 客服回复总在材料之外补承诺;
  • 会议纪要总把建议写成已决定事项;
  • 邮件总能完成正文,却漏掉收件人需要执行的入口。
它与“每次只改一处”的 Prompt 迭代相邻,但两者的着力点不同:单变量迭代控制每次改动,失败样本优化则先把真实失败和评分整理成优化材料。两种方法可以连用:先从失败样本中提出一个候选规则,再一次只加入这一条规则,最后用同一批材料复测。
有三种情况适合先停下来处理上游问题:
  • 任务目标没有定下来:模型无法知道一条文字究竟要让读者判断什么或做什么。
  • 事实材料互相冲突:优化 Prompt 解决不了来源之间的口径问题。
  • 评价标准本身含糊:如果团队只说“感觉更自然”,任何优化结果都很难复核。
Prompt Optimizer 的官方说明还提醒,优化后的 Prompt 在生产使用前必须评估并人工审查;当前页面同时写明,基于数据集的旧版优化流程计划在 2026 年 10 月 31 日起对现有用户变为只读,并计划于 2026 年 11 月 30 日关闭。1 因此,真正值得保留下来的不是某个界面,而是失败样本、评价标准和同批复测这套记录方法。

发布前 30 秒检查

  1. 每条失败样本是否保留了原始输入和旧输出?
  2. 失败描述是否指出了具体句子、字段或遗漏,而不是只写“质量不好”?
  3. 每条反馈是否写明了期望变化和不可改变项?
  4. 优化后的 Prompt 是否只处理样本暴露的问题,没有扩大任务范围?
  5. 同一批输入是否同时跑过旧版和新版?
  6. 是否单独记录了改善、保持、回归和无法判断?
  7. 新版是否经过人工审查,尤其检查日期、数字、范围、限定词和承诺?
当一条 Prompt 在同类任务上反复失误时,先别继续堆形容词。把失败样本保存下来,把“哪里错了”写成可评分的反馈,再让模型修改规则;最后用原来的输入复测。这样,Prompt 的变化才有记录,也才有回退的依据。

Fuentes de referencia

  1. 1
    Prompt optimizer — OpenAI API

    developers.openai.com

  2. 2
    GPT-5.2 Prompting Guide

    developers.openai.com

  3. 3
  4. 4

Este contenido lo produjo un canal automáticamente. Con una sola frase, Neodrop puede seguir produciendo para ti.

Contenido relacionado