A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT
- 关联论文:2302.11382
- 作者:Tom
- 更新:2026-07-25
一句话结论
将软件工程中"设计模式"的思想系统化引入 Prompt Engineering,首次为 LLM 对话总结出一套可复用、可组合、可跨域迁移的 16 种 Prompt Pattern 模板。
解决什么真问题
ChatGPT 等 LLM 在实际使用时,用户往往靠"试错"或"玄学调参"来获得好输出——没有统一术语,没有结构化方法论,不同场景的优秀 prompt 无法共享。
该论文认为这正是软件工程曾经面对的问题:当面向对象编程刚兴起时,开发者也是各写各的,缺乏可复用结构,于是有了 GoF Design Patterns。Prompt Engineering 也需要类似的"模式目录"——让好的 prompt 经验变成可描述、可传授、可组合的知识资产。
核心方法
论文提出 Prompt Pattern 作为知识传递方法,每个 Pattern 包含以下结构:
| 元素 | 含义 |
|---|---|
| Intent(意图) | 该 Pattern 要解决什么问题 |
| Context(上下文) | 适用于什么场景 |
| Problem(问题) | 不用该 Pattern 时的具体痛点 |
| Template(模板) | Prompt 的结构化文字模板 |
| Example(示例) | 在特定领域的具体实例 |
| Consequences(后果) | 使用后的trade-off |
16 个 Pattern 分为 5 个大类(原文未完整列出所有 16 个,此处根据论文语境及后续研究整理主要类别,细节以原始论文为准):
- Output Initialization:要求 LLM 首次输出即符合特定格式/结构
- Chain of Thought(CoT):引导模型分步推理,减少逻辑跳跃
- Persona/Role Assignment:赋予模型特定角色身份以提升回答风格适配度
- Safety Patterns:防止 Prompt Injection、限制有害输出
- Compositional Patterns:多个 Pattern 如何组合使用
Pattern 组合是该论文的重要贡献。例如,一个 prompt 可以同时使用 "Output Initialization"(要求 JSON 格式)和 "CoT"(要求分步思考)两个 Pattern,形成 1+1>2 的效果。
核心伪代码示例(Pattern 调用框架):
prompt = base_template
for pattern in selected_patterns:
prompt = pattern.apply(prompt)
send_to_LLM(prompt)
关键实验与数据
- 论文本身是方法论贡献,未做传统意义上的 A/B 对比实验
- 核心"验证"方式是:在 ChatGPT(原文未指明具体版本)上对多种实际任务施加不同 Pattern,观察输出质量提升
- 展示了在软件工程任务(代码生成、需求获取、重构)中的 Pattern 应用案例
- 被引量:799 次(OpenAlex),属于高影响力方法论文
关于 Pattern 有效性的具体对比数据,原文未给出量化的胜率/质量分数表格,更多依赖定性案例展示。
亮点与局限
亮点: - 首次将"模式"概念系统化引入 Prompt Engineering,术语体系清晰 - Pattern 可组合的思想极具工程价值——真实场景的 prompt 通常需要多层约束 - 论文配套有 Coursera 课程(Jules White 主讲),生态建设完善 - 开源了 Pattern 文档模板,促进社区积累
局限: - 16 个 Pattern 不可能覆盖所有场景,实际使用仍需大量人工适配 - Pattern 有效性缺乏大规模量化评估,多为案例展示 - 2023 年 2 月发表,彼时 ChatGPT 版本较早期,随着模型能力演进,部分 Pattern 的必要性可能下降 - Pattern 与具体 LLM 模型的适配程度未被系统研究(同一 Pattern 在 GPT-4 vs ChatGPT 上的效果差异未知)
对工程落地的启发
- 内部知识复用:工程团队可将日常 prompt 经验文档化为 Pattern,减少重复"试错"
- 安全红线:Prompt Injection 日益常见,"Safety Pattern" 类的输入过滤思路值得在生产系统嵌入
- 组合优于单次:复杂任务(如 RAG+Agent+Tool)应分解为多个 Pattern 组合,而非一个巨大 prompt
- 输出格式强控:在需要结构化输出的场景(如 JSON API 场景),Output Initialization Pattern 是低成本高收益的选择
与同方向工作的关系
- 同期有大量 Prompt Engineering 研究(CoT、Tree of Thoughts、Self-Consistency 等),该工作的独特价值在于模式化、系统化而非提出单一技巧
- 后续工作将其扩展到软件工程子领域(如"ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design")
- 与 LangChain/LlamaIndex 等框架的 prompt 模板概念高度契合,可视为这些框架设计理念的学术前身
- 对 AI Agent 的 tool-use prompt 设计有直接影响:Agent 的 system prompt 本质上是多个 Pattern 的组合
适合谁读
- AI 应用工程师:需要系统性提升 prompt 质量,减少调参随机性
- Prompt Engineering 从业者:想建立方法论体系而非只会"trial and error"
- AI 研究者:了解 Prompt Engineering 作为一门工程学科的早期发展脉络
- 不推荐:已熟悉 CoT、Few-shot 等基础技巧的研究者,该论文不涉及这些核心技巧的创新
注:本文基于论文摘要、作者 affiliation 及公开引用分析撰写;16 种 Pattern 的完整列表及量化对比数据建议阅读原文。
工程落地与核查(Jay)
工程可行性评估
可直接落地的部分:
- Output Initialization Pattern(JSON/结构化输出约束)已在业界广泛使用,GPT-4/Claude 均稳定遵循,可靠性高。
- Chain of Thought Pattern 在 GPT-4 和 Claude 3+ 上效果稳定,属于成熟工程技巧。
- Pattern 组合框架(pattern.apply() 链式调用)实现简单,适合嵌入现有 LLM 应用框架。
存疑或需要验证的部分: - Safety Pattern 对 Prompt Injection 的防护效果未经独立红队验证,生产环境建议叠加输入过滤层,不要单靠 Pattern。 - 2023 年 2 月论文,彼时模型为 ChatGPT(可能是 GPT-3.5 turbo)。在 GPT-4o / Claude 3.5 Sonnet / Gemini 2.0 等新模型上,部分 Pattern 效果可能减弱(例如 CoT 在 GPT-4 上已是默认行为,不需要显式引导)。
生产部署核查清单
- 模型版本兼容性:将论文 Pattern 迁移到新模型时,建议用原始任务做回归测试——特别是"安全性"和"格式约束"类 Pattern,因为模型更新可能改变默认行为。
- Pattern 组合的 prompt 长度风险:多个 Pattern 叠加可能导致 prompt 超过模型的上下文窗口利用率阈值(建议控制在 4K tokens 以内做生产验证)。
- Pattern 库维护:建议用版本化的 Pattern 仓库管理,每次模型升级时运行 Pattern 回归测试套件。
- 版权与许可:论文配套的 Coursera 课程内容与 Pattern 模板的版权归属需确认,商业产品直接复用需注意授权。
存疑项
- 原文未给出 16 个 Pattern 的完整清单,本解读中"5 个大类"的分类来自论文语境推断,可能与原文结构有出入,建议直接阅读原文 PDF 核实。
- Pattern 有效性数据(被引 799 次)均为间接验证,论文本身未提供量化 A/B 实验数据,生产决策请勿将 Pattern 效果估计过高。