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 个,此处根据论文语境及后续研究整理主要类别,细节以原始论文为准):

  1. Output Initialization:要求 LLM 首次输出即符合特定格式/结构
  2. Chain of Thought(CoT):引导模型分步推理,减少逻辑跳跃
  3. Persona/Role Assignment:赋予模型特定角色身份以提升回答风格适配度
  4. Safety Patterns:防止 Prompt Injection、限制有害输出
  5. 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 上的效果差异未知)

对工程落地的启发

  1. 内部知识复用:工程团队可将日常 prompt 经验文档化为 Pattern,减少重复"试错"
  2. 安全红线:Prompt Injection 日益常见,"Safety Pattern" 类的输入过滤思路值得在生产系统嵌入
  3. 组合优于单次:复杂任务(如 RAG+Agent+Tool)应分解为多个 Pattern 组合,而非一个巨大 prompt
  4. 输出格式强控:在需要结构化输出的场景(如 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 上已是默认行为,不需要显式引导)。

生产部署核查清单

  1. 模型版本兼容性:将论文 Pattern 迁移到新模型时,建议用原始任务做回归测试——特别是"安全性"和"格式约束"类 Pattern,因为模型更新可能改变默认行为。
  2. Pattern 组合的 prompt 长度风险:多个 Pattern 叠加可能导致 prompt 超过模型的上下文窗口利用率阈值(建议控制在 4K tokens 以内做生产验证)。
  3. Pattern 库维护:建议用版本化的 Pattern 仓库管理,每次模型升级时运行 Pattern 回归测试套件。
  4. 版权与许可:论文配套的 Coursera 课程内容与 Pattern 模板的版权归属需确认,商业产品直接复用需注意授权。

存疑项

  • 原文未给出 16 个 Pattern 的完整清单,本解读中"5 个大类"的分类来自论文语境推断,可能与原文结构有出入,建议直接阅读原文 PDF 核实。
  • Pattern 有效性数据(被引 799 次)均为间接验证,论文本身未提供量化 A/B 实验数据,生产决策请勿将 Pattern 效果估计过高。