Mindket

怎样用 AI 改进提示词:OpenAI 的 optimizer 和 Anthropic 的 improver

黑色横幅,标题是“提示词优化”,下面是“用 AI 生成、改进和测试提示词”。

用 AI 改进提示词,就是把现有的提示词交给一个按厂商最佳实践改写它的工具,再拿你自己的用例对比改写前后的效果。OpenAI 的 prompt optimizer 会修正自相矛盾的指令、含糊的格式要求,以及和指令对不上的示例。Anthropic 的 prompt improver 用思维链推理这类技术润色提示词。OpenAI 提醒,改写后的结果在某些输入上可能更差。

本节内容

  • 在让任何工具改写之前,先收集三个以上提示词答不好的输入,并写下你想要的回复。
  • 逐行读改写结果。好的改动要么去掉一处矛盾,要么写明一条规则,而且你能说出是哪一种。
  • 用你自己的话告诉工具你想要的改动,再对新版本重跑一次。
  • 在改写版在同样的输入上胜过原版之前,保留原版。
全部课程
本页目录
  1. 开始之前
  2. 运行 OpenAI 的 prompt optimizer
  3. 给优化器带评分的示例
  4. 一条信号互相打架的提示词
  5. 优化后的提示词长什么样
  6. 按 OpenAI 自己的数字,哪里变好了
  7. Anthropic 说它的 prompt improver 做了什么
  8. 用 OpenAI 的编辑元提示词自己改进提示词
  9. 常见错误
  10. 动手试试
  11. 下一课:并排测试提示词的不同版本
  12. 自测一下
  13. 常见问题
  14. 资料来源

开始之前

优化器拿走你已有的提示词,交回一条改写后的提示词。你需要一条出错方式能说清楚的提示词,再加三四个试用的输入,最好附上你想要的回复。如果还没有提示词,第 1 课先帮你写出第一稿。

OpenAI 的部分工具已经进入倒计时,所以先看日期。弃用页面排定现有的评估在 2026 年 10 月 31 日变为只读。这个日期在 2026 年 11 月 6 日核对本课时已经过去。页面还排定 Evals 控制台和 API 在 2026 年 11 月 30 日关闭。optimizer 指南说,OpenAI 正在弃用依托数据集的 prompt optimizer,它是这个平台的一部分。指南没有说普通的 Optimize 按钮会怎样,所以要做好两条 OpenAI 路线到 12 月可能都没了的准备。能留下来的,是先读改动、再做测试的习惯。

OpenAI 为 Evals 和可复用提示词排定的时间表
  1. 宣布弃用

    对象是 Evals 平台和可复用的提示词对象。

  2. 现有的评估变为只读

  3. Evals 控制台和 API 关闭

    v1/prompts API 和可复用的提示词对象排定在同一天关闭。

来源:OpenAI Docs: Deprecations (2026年11月6日 查阅)

运行 OpenAI 的 prompt optimizer

OpenAI 的 prompt optimizer 指南介绍了控制台里的一个聊天界面。你输入一条提示词,OpenAI 按当前的最佳实践优化它,再交还给你。GPT-5 cookbook notebook演示的是不需要数据集的普通路线。

  1. 打开 Optimize Playground,把提示词粘贴到 Developer Message 区域。
  2. 按下 Optimize,会打开优化面板。
  3. 输入你想要的具体修改,或者再按一次 Optimize,让它按目标模型和任务的最佳实践来改进。
  4. 读结果。notebook 说,工具会给出它改了什么、为什么改的片段,你可以用评论或行内审阅模式查看。
  5. 缺了什么,就再提一个修改。notebook 就是这样在优化后的版本上,又加了一条“强制单遍流式处理”。
  6. 用你自己的输入测试新提示词,再决定用在哪里。

给优化器带评分的示例

指南说,优化器能从你自己的数据里学习:标注(好或坏,外加自定义列)、写在 output_feedback 字段里的文字点评,以及评分器的结果。它要求给出好或坏的评级,加上详细而具体的点评,还要有能抓住你想要的特性的评分器。

指南还说,优化器的效果取决于这些评分器。OpenAI 建议用范围窄的评分器,提示词在哪个特性上出错,就为哪个特性配一个。指南仍然按平台开放的口吻写这些步骤,而变为只读的日期已经过去,所以先看一下你的控制台,再决定要不要围着它们安排工作。

  • 建一个数据集,里面放提示词和一份评估数据集,至少有三行带回复的数据。
  • 给每一行至少一个评分器结果或人工标注。
  • 点击提示词面板底部的 Optimize。会打开一个新标签页,工作在后台运行。
  • 查看并测试结果,然后重复:生成输出,标注,运行评分器,再优化。

一条信号互相打架的提示词

notebook 从一条简短、口吻友好的 Python 任务提示词出发,并指出它藏着自相矛盾和说得不够具体的指令。优化器据说要消除三类问题:自相矛盾,格式要求缺失或不清楚,以及提示词和少样本示例之间的不一致。下面是 notebook 里印出的基线提示词。

Write Python to solve the task on a MacBook Pro (M4 Max). Keep it fast and lightweight.

- Prefer the standard library; use external packages if they make things simpler.
- Stream input in one pass to keep memory low; reread or cache if that makes the solution clearer.
- Aim for exact results; approximate methods are fine when they don't change the outcome in practice.
- Avoid global state; expose a convenient global like top_k so it's easy to check.
- Keep comments minimal; add brief explanations where helpful.
- Sort results in a natural, human-friendly way; follow strict tie rules when applicable.

Output only a single self-contained Python script inside one Python code block, with all imports, ready to run.
左列是 notebook 里基线提示词的几行,中列是 notebook 对每一行的解读,右列是它优化后提示词里对应的几行。出自 OpenAI 的 GPT-5 optimizer notebook,2026 年 11 月 6 日阅读。
基线里的一行它开出的岔路优化后的提示词改成
优先用标准库,但外部包让事情更简单时也行更重的导入,影响速度,也影响脚本能否到处运行只用 Python 标准库,不用近似算法。
一遍流式读入,但重读或缓存更清楚时也行多遍的写法和缓存,破坏了流式处理的限制不要把整个词元流或任何大的中间列表全部放进内存。
追求精确结果,但不影响结果时近似方法也行模型没法验证的判断,临界处的计数可能偏移精确的 Top-K 语义,按次数降序,再按词元升序。
按自然、便于人读的方式排序,并遵循严格的并列规则图省事的内置顺序,处理并列的方式和评估器不同不要依赖 Counter.most_common 处理并列的行为。

优化后的提示词长什么样

按了一次 Optimize,再加上强制单遍流式处理的额外要求,notebook 里的提示词由带标题的几个部分组成:Objective、Hard requirements、性能和内存约束、Guidance、Output format 和 Examples。基线里每一条软性的许可,都变成了硬性规则。下面是示例之前的几个部分,后面的 Examples 部分放着一份完整的脚本。

# Objective
Generate a single, self-contained Python script that exactly solves the specified task on a MacBook Pro (M4 Max).

# Hard requirements
- Use only Python stdlib. No approximate algorithms.
- Tokenization: ASCII [a-z0-9]+ on the original text; match case-insensitively and lowercase tokens individually. Do NOT call text.lower() on the full string.
- Exact Top‑K semantics: sort by count desc, then token asc. No reliance on Counter.most_common tie behavior.
- Define `top_k` as a list of (token, count) tuples with length = min(k, number of unique tokens).
- When globals `text` (str) and `k` (int) exist, do not reassign them; set `top_k` from those globals. If you include a `__main__` demo, guard it to run only when globals are absent.
- No file I/O, stdin, or network access, except optionally printing `top_k` as the last line.

# Performance & memory constraints
- Do NOT materialize the entire token stream or any large intermediate list.
- Do NOT sort all unique (token, count) items unless k >= 0.3 * number_of_unique_tokens.
- When k < number_of_unique_tokens, compute Top‑K using a bounded min‑heap of size k over counts.items(), maintaining the correct tie-break (count desc, then token asc).
- Target peak additional memory beyond the counts dict to O(k). Avoid creating `items = sorted(counts.items(), ...)` for large unique sets.

# Guidance
- Build counts via a generator over re.finditer with re.ASCII | re.IGNORECASE; lowercase each matched token before counting.
- Prefer heapq.nsmallest(k, cnt.items(), key=lambda kv: (-kv[1], kv[0])) for exact selection without full sort; avoid heapq.nlargest.
- Do NOT wrap tokens in custom comparator classes (e.g., reverse-lex __lt__) or rely on tuple tricks for heap ordering.
- Keep comments minimal; include a brief complexity note (time and space).

# Output format
- Output only one Python code block; no text outside the block.

按 OpenAI 自己的数字,哪里变好了

notebook 用 GPT-5 对每条提示词各生成了 30 份脚本,在一台 M4 Max 芯片的 MacBook Pro 上测量。两条提示词的精确率都是 100%。进步出现在内存峰值和平均用时上,也体现在同一份大模型评审提示词按 1 到 5 分给出的两项分数上:代码对任务的贴合程度,以及代码质量。notebook 没有印出运行日期,OpenAI 的 cookbook 登记表把它记为 2025 年 8 月 7 日加入。

第二个例子运行 FailSafeQA,这是一个金融基准,会有意扰乱问题和上下文,再报告稳健性、上下文依据和合规性。notebook 对这次运行的说明提到了 GPT-5-mini,并说基线提示词几乎每次都能拿到 4 分以上,所以它转而看评审给出满分 6 分(6/6)的占比。它没有印出这个占比。下面的数字是它的汇总表印出来的,是各数据点的平均值,合规阈值是 6,notebook 没有说明它们用的是什么刻度。这些是 OpenAI 在两项任务上的数字,notebook 自己也说,提示词没有放之四海皆准的做法。

Top-K 高频词任务,每条提示词 30 次运行。出自 OpenAI 的 GPT-5 optimizer notebook 已发布的输出,2026 年 11 月 6 日阅读。
指标基线提示词优化后的提示词
平均用时(秒)7.9066.977
内存峰值(KB)3626.3577.5
结果精确(%)100100
大模型评审给的任务贴合度(1 到 5)4.404.90
大模型评审给的代码质量(1 到 5)4.734.90
FailSafeQA 汇总数字,基线与优化后的提示词数值取自 notebook 汇总表的原样输出。notebook 没有说明它们用的是什么刻度,所以柱子只是为了排版才按 1 来画。金色柱是优化后的提示词。
  • 稳健性,基线0.32
  • 稳健性,优化后0.54
  • 上下文依据,基线0.80
  • 上下文依据,优化后0.95

来源:OpenAI Cookbook: GPT-5 prompt migration and improvement with the optimizer (2026年11月6日 查阅)

Anthropic 说它的 prompt improver 做了什么

Anthropic 在 2024 年 11 月给 Console 加了 prompt improver。它的 X 账号说,拿一条现有的提示词,Claude 会用思维链推理这类技术自动润色它。一分钟后,Alex Albert 也发了一条类似的帖子:任何提示词都可以送进 improver,换回一条优化过的提示词。

两条帖子都没有列出 improver 改了什么,所以依靠某个细节之前,先去读 Console 自己的说明。思维链是唯一点名的技术。思维链那一课展示了推理部分在提示词里长什么样。

拿任何一条提示词,送进 improver,换回一条优化过的提示词。

Alex Albert (@alexalbert__), Anthropic,引文为译文 · X (2026年11月6日 查阅)
Anthropic(@AnthropicAI)在 X 上发帖:我们在 Anthropic Console 里加了新的 prompt improver。拿一条现有的提示词,Claude 会用思维链推理这类提示词工程技术自动润色它。
Anthropic 在 X 上,2024 年 11 月 14 日
Alex Albert(@alexalbert__)在 X 上发帖:我们在 Anthropic Console 里加了由 Claude 驱动的 prompt improver。拿任何一条提示词,送进 improver,换回一条优化过的提示词。它是这样工作的。
Alex Albert 在 X 上,2024 年 11 月 14 日

X 官方嵌入卡片的截图,拍摄于 2026 年 11 月 6 日,时间为 UTC。第二条帖子是一个长帖的开头,后面的帖子不在截图里。点击截图可到 X 上打开原帖。

用 OpenAI 的编辑元提示词自己改进提示词

不用任何控制台也能完成一次改写。OpenAI 的提示词生成指南印出了一条用于编辑的元提示词。它要求模型先写一个推理部分来评判现有的提示词,指出最重要的一到三处修改,最后才写出完整的修正版提示词。下面是它的开头,到 Guidelines 清单之前为止,那份清单就是第 1 课里的那一份。

在指南的代码里,元提示词是系统消息,另有一条以“Task, Goal, or Current Prompt:”开头的用户消息装着其余内容。它的编辑示例只传了一个修改请求。这个请求是“Make this product launch announcement clearer and more concise.”。把元提示词粘贴到聊天窗口里,放在你现在的提示词和你想要的修改前面,是本课的建议。

Given a current prompt and a change description, produce a detailed system prompt to guide a language model in completing the task effectively.

Your final output will be the full corrected prompt verbatim. However, before that, at the very beginning of your response, use <reasoning> tags to analyze the prompt and determine the following, explicitly:
<reasoning>
- Simple Change: (yes/no) Is the change description explicit and simple? (If so, skip the rest of these questions.)
- Reasoning: (yes/no) Does the current prompt use reasoning, analysis, or chain of thought?
    - Identify: (max 10 words) if so, which section(s) utilize reasoning?
    - Conclusion: (yes/no) is the chain of thought used to determine a conclusion?
    - Ordering: (before/after) is the chain of though located before or after
- Structure: (yes/no) does the input prompt have a well defined structure
- Examples: (yes/no) does the input prompt have few-shot examples
    - Representative: (1-5) if present, how representative are the examples?
- Complexity: (1-5) how complex is the input prompt?
    - Task: (1-5) how complex is the implied task?
    - Necessity: ()
- Specificity: (1-5) how detailed and specific is the prompt? (not to be confused with length)
- Prioritization: (list) what 1-3 categories are the MOST important to address.
- Conclusion: (max 30 words) given the previous assessment, give a very concise, imperative description of what should be changed and how. this does not have to adhere strictly to only the categories listed
</reasoning>
  1. 粘贴元提示词,再贴上你现在的提示词,用一句话写出你想要的修改。
  2. 先读推理部分。它显示模型认为哪里有问题,你比它更懂自己的任务时,可以不同意。
  3. 把修正后的提示词复制出来,逐行和你的原版对照。

常见错误

  • 只凭读起来怎样来评判改写结果。OpenAI 的指南说,优化后的提示词在某些输入上可能比你的原版更差。
  • 把矛盾留给工具去裁决。你的提示词允许两种做法时,按 Optimize 之前先决定要哪一种。
  • 跳过改动清单。notebook 说,优化器会显示它改了什么、为什么改。
  • 只把结果存成 OpenAI 的提示词对象。OpenAI 正在淘汰它们,并说要把内容搬进你自己的应用代码。
  • 指望 OpenAI 的数字在你的任务上重现。它们来自一项编程任务和一个金融基准。

动手试试

  • 拿一条带两处软性许可的提示词,就像上面的基线,写下每一处你希望往哪个方向走。
  • 把它送进一个优化器,或者送进编辑元提示词。
  • 列出每一处改动的行,并分类:去掉了一处矛盾,加了一条规则,写明了格式,或者别的。
  • 留着这份分类清单。它能告诉你,你的提示词最常缺哪一类修正。

下一课:并排测试提示词的不同版本

改写在测试之前只是一种说法。第 3 课搭一个小测试集,用它比较一条提示词的两个版本。

自测一下

  1. 在 OpenAI 的 cookbook 示例里,提示词优化之后,哪一项没有变?

    查看答案

    B. 结果的精确率,两者都是 100% 两条提示词每次都得出精确的结果,所以进步体现在内存、速度和代码对任务的贴合程度上。

  2. OpenAI 的 optimizer 指南怎样说优化后的提示词?

    查看答案

    D. 它在某些输入上可能比你的原版更差 指南说,投入生产之前要评估并人工审阅优化后的提示词,因为它在某些输入上可能更差。

  3. OpenAI 的 optimizer 走数据集路线,最少需要什么?

    查看答案

    A. 至少三行带回复的数据,每行都有评分器结果或标注 指南要求至少三行带回复的数据,每一行至少有一个评分器结果或人工标注。

  4. 下面哪一项被 OpenAI 排定在 2026 年 11 月 30 日关闭?

    查看答案

    C. Evals 控制台和 API,以及可复用的提示词对象 弃用页面把 Evals 控制台和 API,以及 v1/prompts API 和可复用的提示词对象,都列在这个日期。

常见问题

什么是提示词优化器?

它是一种工具,拿走你写的提示词,按提示词最佳实践交回一条改写版。OpenAI 的在它的控制台里,Anthropic 的叫 prompt improver。

OpenAI 的 prompt optimizer 还能用吗?

指南的弃用通知点名的只有依托数据集的那个版本,它随 Evals 平台一起走。通知里没有提到普通的 Optimize 按钮,所以在任何一条路线上搭工作流之前,先读弃用页面。

Anthropic 的 prompt improver 和它的 prompt generator 是同一个东西吗?

Anthropic 的帖子描述的是两个功能。generator 根据你想要什么的描述写出提示词,第 1 课讲过。improver 则从你已有的提示词出发。

没有评分器和测试数据,优化器也能用吗?

能。你可以只贴一条提示词,什么都不加,直接按 Optimize,cookbook 的示例就是这样开始的。数据集能多给优化器一份可用的反馈:至少三行带回复的数据,每一行都有评分器结果或标注。

没有厂商工具,怎样改进提示词?

像 OpenAI 的编辑元提示词那样,先让聊天模型评估这条提示词,再只采纳你认同的改动。换用之前,先拿新版和旧版对比测试。

资料来源

  1. OpenAI Docs: Prompt optimizer (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/prompt-optimizer
  2. OpenAI Docs: Deprecations (2026年11月6日 查阅)https://developers.openai.com/api/docs/deprecations
  3. OpenAI Cookbook: GPT-5 prompt migration and improvement with the optimizer (2026年11月6日 查阅)https://developers.openai.com/cookbook/examples/gpt-5/prompt-optimization-cookbook
  4. OpenAI Docs: Prompt generation (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/prompt-generation
  5. GitHub: openai/openai-cookbook registry.yaml, the notebook's entry (2026年11月6日 查阅)https://github.com/openai/openai-cookbook/blob/main/registry.yaml
  6. X: Anthropic (@AnthropicAI) on the new prompt improver in the Anthropic Console (2026年11月6日 查阅)https://x.com/AnthropicAI/status/1857108263042502701
  7. X: Alex Albert (@alexalbert__) on the Claude-powered prompt improver (2026年11月6日 查阅)https://x.com/alexalbert__/status/1857108576797639166

分享本节课

读读别人调好的提示词

Mindket 列出了智能体技能,每一个都是一个装着说明、示例和文件的文件夹,安装之前就能打开来读。

浏览技能

本节课的 Markdown 版本 · 提示词优化:让 AI 帮你写、改进并测试提示词 · 全部课程