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

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

Mindket 编辑部 · 发布于 2026-11-06 · 更新于 2026-11-06 · https://mindket.com/cn/learn/prompt-optimization/improve-a-prompt

## 要点

- 在让任何工具改写之前，先收集三个以上提示词答不好的输入，并写下你想要的回复。
- 逐行读改写结果。好的改动要么去掉一处矛盾，要么写明一条规则，而且你能说出是哪一种。
- 用你自己的话告诉工具你想要的改动，再对新版本重跑一次。
- 在改写版在同样的输入上胜过原版之前，保留原版。

## 开始之前

优化器拿走你已有的提示词，交回一条改写后的提示词。你需要一条出错方式能说清楚的提示词，再加三四个试用的输入，最好附上你想要的回复。如果还没有提示词，[第 1 课](https://mindket.com/cn/learn/prompt-optimization/ai-prompt-generator)先帮你写出第一稿。

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

**OpenAI 为 Evals 和可复用提示词排定的时间表**

1. **2026年6月3日** 宣布弃用。对象是 Evals 平台和可复用的提示词对象。
2. **2026年10月31日** 现有的评估变为只读
3. **2026年11月30日** Evals 控制台和 API 关闭。v1/prompts API 和可复用的提示词对象排定在同一天关闭。

来源：[OpenAI Docs: Deprecations](https://developers.openai.com/api/docs/deprecations) (2026-11-06 查阅)

## 运行 OpenAI 的 prompt optimizer

OpenAI 的 [prompt optimizer 指南](https://developers.openai.com/api/docs/guides/prompt-optimizer)介绍了控制台里的一个聊天界面。你输入一条提示词，OpenAI 按当前的最佳实践优化它，再交还给你。[GPT-5 cookbook notebook](https://developers.openai.com/cookbook/examples/gpt-5/prompt-optimization-cookbook)演示的是不需要数据集的普通路线。

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

## 给优化器带评分的示例

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

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

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

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

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

````text
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.
````

| 基线里的一行 | 它开出的岔路 | 优化后的提示词改成 |
| --- | --- | --- |
| 优先用标准库，但外部包让事情更简单时也行 | 更重的导入，影响速度，也影响脚本能否到处运行 | 只用 Python 标准库，不用近似算法。 |
| 一遍流式读入，但重读或缓存更清楚时也行 | 多遍的写法和缓存，破坏了流式处理的限制 | 不要把整个词元流或任何大的中间列表全部放进内存。 |
| 追求精确结果，但不影响结果时近似方法也行 | 模型没法验证的判断，临界处的计数可能偏移 | 精确的 Top-K 语义，按次数降序，再按词元升序。 |
| 按自然、便于人读的方式排序，并遵循严格的并列规则 | 图省事的内置顺序，处理并列的方式和评估器不同 | 不要依赖 Counter.most_common 处理并列的行为。 |

## 优化后的提示词长什么样

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

````text
# 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 自己也说，提示词没有放之四海皆准的做法。

| 指标 | 基线提示词 | 优化后的提示词 |
| --- | --- | --- |
| 平均用时（秒） | 7.906 | 6.977 |
| 内存峰值（KB） | 3626.3 | 577.5 |
| 结果精确（%） | 100 | 100 |
| 大模型评审给的任务贴合度（1 到 5） | 4.40 | 4.90 |
| 大模型评审给的代码质量（1 到 5） | 4.73 | 4.90 |

**FailSafeQA 汇总数字，基线与优化后的提示词** 数值取自 notebook 汇总表的原样输出。notebook 没有说明它们用的是什么刻度，所以柱子只是为了排版才按 1 来画。金色柱是优化后的提示词。

- 稳健性，基线: 0.32
- 稳健性，优化后: **0.54**
- 上下文依据，基线: 0.80
- 上下文依据，优化后: **0.95**

来源：[OpenAI Cookbook: GPT-5 prompt migration and improvement with the optimizer](https://developers.openai.com/cookbook/examples/gpt-5/prompt-optimization-cookbook) (2026-11-06 查阅)

## Anthropic 说它的 prompt improver 做了什么

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

两条帖子都没有列出 improver 改了什么，所以依靠某个细节之前，先去读 Console 自己的说明。思维链是唯一点名的技术。[思维链那一课](https://mindket.com/cn/learn/prompt-engineering-advanced/chain-of-thought-prompting)展示了推理部分在提示词里长什么样。

> 拿任何一条提示词，送进 improver，换回一条优化过的提示词。
>
> Alex Albert (@alexalbert__), Anthropic，引文为译文, [X](https://x.com/alexalbert__/status/1857108576797639166) (2026-11-06 查阅)

[![Anthropic（@AnthropicAI）在 X 上发帖：我们在 Anthropic Console 里加了新的 prompt improver。拿一条现有的提示词，Claude 会用思维链推理这类提示词工程技术自动润色它。](https://mindket.com/blog/shots/x-anthropicai-prompt-improver.webp?v=2eb216020790)](https://x.com/AnthropicAI/status/1857108263042502701)

Anthropic 在 X 上，2024 年 11 月 14 日

[![Alex Albert（@alexalbert__）在 X 上发帖：我们在 Anthropic Console 里加了由 Claude 驱动的 prompt improver。拿任何一条提示词，送进 improver，换回一条优化过的提示词。它是这样工作的。](https://mindket.com/blog/shots/x-alexalbert-prompt-improver.webp?v=baf6cbc63e63)](https://x.com/alexalbert__/status/1857108576797639166)

Alex Albert 在 X 上，2024 年 11 月 14 日

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

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

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

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

````text
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 课](https://mindket.com/cn/learn/prompt-optimization/test-prompts)搭一个小测试集，用它比较一条提示词的两个版本。

## 自测一下

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

   A. 内存峰值
   B. 结果的精确率，两者都是 100%
   C. 平均运行时间
   D. 评审给的贴合度分数

   答案：B。 两条提示词每次都得出精确的结果，所以进步体现在内存、速度和代码对任务的贴合程度上。

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

   A. 它总是胜过原版
   B. 它在旧模型上会失效
   C. 它会删掉你的少样本示例
   D. 它在某些输入上可能比你的原版更差

   答案：D。 指南说，投入生产之前要评估并人工审阅优化后的提示词，因为它在某些输入上可能更差。

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

   A. 至少三行带回复的数据，每行都有评分器结果或标注
   B. 一个微调过的模型
   C. 十个范围窄的评分器
   D. 另一家厂商的密钥

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

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

   A. Playground
   B. 提示词生成
   C. Evals 控制台和 API，以及可复用的提示词对象
   D. Chat Completions

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

## 常见问题

### 什么是提示词优化器？

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

### OpenAI 的 prompt optimizer 还能用吗？

指南的弃用通知点名的只有依托数据集的那个版本，它随 Evals 平台一起走。通知里没有提到普通的 Optimize 按钮，所以在任何一条路线上搭工作流之前，先读[弃用页面](https://developers.openai.com/api/docs/deprecations)。

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

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

### 没有评分器和测试数据，优化器也能用吗？

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

### 没有厂商工具，怎样改进提示词？

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

## 资料来源

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

[浏览技能](https://mindket.com/cn/skills)
