引言

随着大语言模型应用的深入,Prompt已从简单的文字指令演变为复杂的"程序"。结构化Prompt设计模式是将软件工程的设计模式思想引入Prompt编写,使Prompt具备可复用、可维护、可测试的特性。本文总结一套实践验证的结构化Prompt设计模式体系。

模式一:角色-任务-约束(RTC)模式

结构

# 角色
你是一位[具体角色描述],拥有[能力/知识范围]。

# 任务
[明确描述需要完成的任务]

# 约束
1. [约束条件1]
2. [约束条件2]
3. [约束条件3]

适用场景

适用于大多数单轮任务场景。角色定义激活模型的相关知识空间,任务描述明确目标,约束条件控制行为边界。

设计要点

角色描述应具体而非泛化。比较两种写法:❌“你是一个助手” ✅“你是一位拥有10年经验的Python后端工程师,精通FastAPI和PostgreSQL”。具体角色能激活模型更有针对性的知识。

模式二:输入-处理-输出(IPO)模式

结构

# 输入规范
- 输入类型:[类型描述]
- 输入格式:[格式说明]

# 处理逻辑
1. [第一步处理]
2. [第二步处理]
3. [第三步处理]

# 输出规范
- 输出类型:[类型描述]
- 输出格式:[格式说明]
- 输出示例:[示例]

适用场景

数据转换、格式化输出、ETL类任务。将Prompt分为清晰的三个阶段,每个阶段有明确的规范。

设计要点

处理逻辑应具有确定性——给定相同输入应产生相同输出。避免使用"酌情"、“适当"等模糊描述。如果处理逻辑复杂,考虑用伪代码或决策树描述。

模式三:上下文-指令-示例(CIE)模式

结构

# 背景
[提供任务背景和上下文信息]

# 指令
[核心任务指令]

# 示例
示例1:
输入:[输入]
输出:[输出]

示例2:
输入:[输入]
输出:[输出]

适用场景

需要领域背景知识的任务。上下文为模型提供必要的信息框架,指令定义具体任务,示例展示期望行为。

设计要点

背景信息应简洁且相关,避免信息过载。按重要性排序,最关键的信息放在最前面。

模式四:思维框架模式

结构

# 分析框架
请按照以下框架分析问题:

1. 现状分析:[描述现状]
2. 问题识别:[识别核心问题]
3. 原因分析:[分析根本原因]
4. 方案制定:[提出解决方案]
5. 风险评估:[评估方案风险]
6. 行动计划:[制定执行计划]

适用场景

复杂分析类任务,如商业分析、技术方案评估、决策支持。通过框架引导模型系统性地思考,避免遗漏关键维度。

设计要点

框架的每个步骤应有明确的输出要求,而非仅仅是一个标题。例如"原因分析"应指定"使用5个为什么分析法”。

模式五:多角色协作模式

结构

# 场景
你需要以多个角色视角分析以下问题:[问题描述]

# 角色视角
## 技术负责人视角
关注点:技术可行性、架构影响、维护成本
请分析:[该视角下的分析]

## 产品经理视角
关注点:用户价值、市场需求、优先级
请分析:[该视角下的分析]

## 运营负责人视角
关注点:成本效益、运营复杂度、风险控制
请分析:[该视角下的分析]

# 综合结论
请综合以上三个视角,给出最终建议。

适用场景

需要多维度综合评估的决策类任务。通过显式定义不同角色视角,避免单一视角的局限性。

设计要点

角色之间应有明确的差异化关注点,避免角色重叠。综合结论部分应要求模型处理角色间的冲突观点。

模式六:条件分支模式

结构

# 任务
根据输入内容执行相应处理。

# 处理规则
IF 输入包含[条件A] THEN
    执行[处理流程A]
    输出格式:[格式A]
ELSE IF 输入包含[条件B] THEN
    执行[处理流程B]
    输出格式:[格式B]
ELSE
    执行[默认处理流程]
    输出格式:[默认格式]
END IF

适用场景

需要根据输入类型走不同处理路径的任务。伪代码形式的条件分支使逻辑清晰,模型容易遵循。

设计要点

条件定义应互斥,避免模糊地带。每个分支的处理流程应独立完整。始终包含ELSE默认分支。

模式七:模板填充模式

结构

# 任务
请根据输入信息填充以下模板:

# 模板
---
标题:{title}
摘要:{summary}
关键词:{keywords}
正文:
{body}
---

# 填充规则
- title:从输入中提取核心主题,不超过20字
- summary:用一句话概括输入内容,不超过100字
- keywords:提取3-5个关键词,逗号分隔
- body:按输入内容的逻辑结构组织,保留关键信息

# 输入
[实际输入内容]

适用场景

格式化内容生成任务,如报告生成、文档摘要、数据录入。模板确保输出格式一致,填充规则控制内容质量。

设计要点

模板中的占位符应有明确的填充规则说明。对于可选字段,标注"[可选]"。对于有格式要求的字段,给出具体约束。

通用设计原则

分隔符使用

使用统一的分隔符体系区分Prompt的不同部分:# 用于章节标题,--- 用于分隔示例,``` 用于代码块。一致的分隔符帮助模型正确解析Prompt结构。

防御性设计

假设模型可能误解指令,添加防御性约束:“不得[禁止行为]",“如果无法确定,请回复[默认行为]",“不要[常见错误]"。这些约束能显著减少模型的越界行为。

可测试性

设计Prompt时考虑可测试性:每个指令应有可验证的输出标准;准备至少3个测试用例(标准、边界、异常);在版本控制中管理Prompt变更。

结语

结构化Prompt设计模式将Prompt编写从经验直觉提升为工程方法论。选择合适的模式、遵循通用设计原则、建立可测试的Prompt工程流程,是规模化AI应用的基础。随着实践积累,团队应发展出适合自身场景的模式库,形成组织级的Prompt工程能力。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。