提示词结构设计 #

为什么需要结构化的提示词? #

结构化提示词的优势 #

text
┌─────────────────────────────────────────────────────────────┐
│                  结构化 vs 非结构化                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  非结构化提示词:                                            │
│  "帮我写个排序算法"                                          │
│  ├── 输出不可预测                                           │
│  ├── 可能遗漏重要信息                                        │
│  └── 难以复用和改进                                          │
│                                                             │
│  结构化提示词:                                              │
│  "作为 Python 开发者,请实现一个快速排序算法,               │
│   要求时间复杂度 O(n log n),添加详细注释,                  │
│   并提供测试用例"                                           │
│  ├── 输出可预测                                             │
│  ├── 信息完整                                               │
│  └── 易于复用和改进                                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

结构化的好处 #

text
1. 一致性
   └── 相同结构产生相似质量的输出

2. 可维护性
   └── 易于修改和优化特定部分

3. 可复用性
   └── 模板可在不同场景复用

4. 可测试性
   └── 便于评估和比较效果

5. 可扩展性
   └── 容易添加新的要求

提示词的基本组成 #

核心要素 #

text
┌─────────────────────────────────────────────────────────────┐
│                    提示词基本结构                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  1. 角色设定(Role)                                  │   │
│  │     定义 AI 扮演的角色和身份                          │   │
│  └─────────────────────────────────────────────────────┘   │
│                          ↓                                  │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  2. 任务描述(Task)                                  │   │
│  │     明确要完成的具体任务                              │   │
│  └─────────────────────────────────────────────────────┘   │
│                          ↓                                  │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  3. 上下文信息(Context)                             │   │
│  │     提供背景信息和相关资料                            │   │
│  └─────────────────────────────────────────────────────┘   │
│                          ↓                                  │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  4. 输入数据(Input)                                 │   │
│  │     需要处理的具体数据                                │   │
│  └─────────────────────────────────────────────────────┘   │
│                          ↓                                  │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  5. 输出格式(Output Format)                         │   │
│  │     指定期望的输出形式                                │   │
│  └─────────────────────────────────────────────────────┘   │
│                          ↓                                  │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  6. 约束条件(Constraints)                           │   │
│  │     限制和特殊要求                                    │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

各要素详解 #

1. 角色设定(Role) #

text
作用:
├── 设定专业视角
├── 影响输出风格
└── 提供领域知识

示例:
─────────────────────────────────────────────────
"你是一位有 10 年经验的前端架构师"
"你是一位耐心的小学数学老师"
"你是一位严谨的代码审查专家"
"你是一位创意文案策划师"
─────────────────────────────────────────────────

角色设定模板:
你是一位 [职业/身份],拥有 [年限] 年 [领域] 经验,
擅长 [专长],具有 [特点] 的风格。

2. 任务描述(Task) #

text
作用:
├── 明确目标
├── 指导方向
└── 评估标准

示例:
─────────────────────────────────────────────────
"请分析以下代码的性能瓶颈"
"请将这篇文章翻译成英文"
"请生成一个用户注册表单的 HTML 代码"
"请解释量子计算的基本原理"
─────────────────────────────────────────────────

任务描述模板:
请 [动词] [对象],实现 [目标]。

3. 上下文信息(Context) #

text
作用:
├── 提供背景
├── 补充知识
└── 引导理解

示例:
─────────────────────────────────────────────────
"这是一个电商网站的商品搜索功能..."
"目标用户是 18-25 岁的大学生..."
"项目使用 React 18 和 TypeScript..."
─────────────────────────────────────────────────

上下文模板:
背景:[项目/场景背景]
目标用户:[受众描述]
技术栈:[相关技术]
参考资料:[文档/链接]

4. 输入数据(Input) #

text
作用:
├── 提供处理对象
├── 明确数据格式
└── 划定处理范围

示例:
─────────────────────────────────────────────────
代码:
```python
def calculate(a, b):
    return a + b

文本: “人工智能正在改变世界…”

数据: [1, 2, 3, 4, 5] ─────────────────────────────────────────────────

text

#### 5. 输出格式(Output Format)

作用: ├── 规范输出形式 ├── 便于后续处理 └── 提高可读性

示例: ───────────────────────────────────────────────── “请以 JSON 格式输出” “请使用 Markdown 表格” "请按以下格式输出:

  1. 问题概述
  2. 原因分析
  3. 解决方案"

“请输出代码,并添加详细注释” ─────────────────────────────────────────────────

text

#### 6. 约束条件(Constraints)

作用: ├── 限制范围 ├── 保证质量 └── 满足需求

示例: ───────────────────────────────────────────────── “字数控制在 500 字以内” “不要使用专业术语” “必须包含 3 个以上示例” “代码需要兼容 Python 3.8” “避免使用第一人称” ─────────────────────────────────────────────────

text

## CRISPE 框架

### 框架介绍

CRISPE 是一个经典的提示词设计框架,每个字母代表一个关键要素。

┌─────────────────────────────────────────────────────────────┐ │ CRISPE 框架 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ C - Capacity and Role(能力与角色) │ │ 定义 AI 扮演的角色和能力范围 │ │ │ │ R - Insight(洞察) │ │ 提供背景信息和上下文 │ │ │ │ I - Statement(陈述) │ │ 明确说明要完成的任务 │ │ │ │ S - Personality(个性) │ │ 设定输出的风格和语气 │ │ │ │ P - Experiment(实验) │ │ 提供示例来引导输出 │ │ │ │ E - Format(格式) │ │ 指定输出的格式要求 │ │ │ └─────────────────────────────────────────────────────────────┘

text

### CRISPE 实例

┌─────────────────────────────────────────────────────────────┐ │ CRISPE 完整示例 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ C - 角色: │ │ 你是一位资深的 Python 后端开发工程师,有 8 年的 Web 开发经验 │ │ │ │ R - 洞察: │ │ 我们正在开发一个高并发的电商 API,需要处理每秒 10000 次请求 │ │ 项目使用 FastAPI + PostgreSQL + Redis │ │ │ │ I - 任务: │ │ 请设计一个商品库存扣减的 API 接口 │ │ │ │ S - 风格: │ │ 使用专业的技术语言,注重代码质量和性能 │ │ │ │ P - 示例: │ │ 参考以下代码风格: │ │ async def get_user(user_id: int) -> User: │ │ “”“获取用户信息”“” │ │ … │ │ │ │ E - 格式: │ │ 请提供: │ │ 1. API 设计说明 │ │ 2. 完整代码实现 │ │ 3. 性能优化建议 │ │ │ └─────────────────────────────────────────────────────────────┘

text

## CO-STAR 框架

### 框架介绍

CO-STAR 是另一个流行的提示词框架,强调上下文和任务分离。

┌─────────────────────────────────────────────────────────────┐ │ CO-STAR 框架 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ C - Context(上下文) │ │ 提供任务背景信息 │ │ │ │ O - Objective(目标) │ │ 明确要达成的目标 │ │ │ │ S - Style(风格) │ │ 设定输出的写作风格 │ │ │ │ T - Tone(语气) │ │ 设定输出的语气 │ │ │ │ A - Audience(受众) │ │ 明确目标读者 │ │ │ │ R - Response(响应格式) │ │ 指定输出的格式 │ │ │ └─────────────────────────────────────────────────────────────┘

text

### CO-STAR 实例

┌─────────────────────────────────────────────────────────────┐ │ CO-STAR 完整示例 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ C - 上下文: │ │ 我们公司即将发布一款新的智能手表产品,主打健康监测功能 │ │ │ │ O - 目标: │ │ 撰写一篇产品发布新闻稿 │ │ │ │ S - 风格: │ │ 专业、现代、科技感 │ │ │ │ T - 语气: │ │ 自信但不夸张,突出产品优势 │ │ │ │ A - 受众: │ │ 科技媒体记者和消费者 │ │ │ │ R - 格式: │ │ 标准新闻稿格式,包含: │ │ - 标题(不超过 20 字) │ │ - 导语(100 字以内) │ │ - 正文(500-800 字) │ │ - 产品亮点(3-5 条) │ │ │ └─────────────────────────────────────────────────────────────┘

text

## CREATE 框架

### 框架介绍

CREATE 框架强调清晰和可执行性。

┌─────────────────────────────────────────────────────────────┐ │ CREATE 框架 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ C - Clarity(清晰) │ │ 清晰表达任务目标 │ │ │ │ R - Relevant Info(相关信息) │ │ 提供必要的背景信息 │ │ │ │ E - Examples(示例) │ │ 提供输入输出示例 │ │ │ │ A - Avoid Ambiguity(避免歧义) │ │ 使用精确的语言 │ │ │ │ T - Tone(语气) │ │ 设定合适的语气 │ │ │ │ E - Evaluate(评估) │ │ 设定评估标准 │ │ │ └─────────────────────────────────────────────────────────────┘

text

## 结构化提示词模板

### 通用模板

角色 #

你是一位 [角色描述]。

背景 #

[提供相关背景信息]

任务 #

请 [具体任务描述]。

输入 #

[输入数据或内容]

要求 #

  1. [要求1]
  2. [要求2]
  3. [要求3]

输出格式 #

[描述期望的输出格式]

示例 #

[提供参考示例]

text

### 代码开发模板

角色 #

你是一位经验丰富的 [语言] 开发者,擅长 [领域]。

背景 #

项目:[项目名称] 技术栈:[技术列表] 目标:[项目目标]

任务 #

请 [具体开发任务]。

代码要求 #

  • 语言版本:[版本]
  • 代码风格:[风格指南]
  • 注释要求:[注释规范]
  • 测试要求:[测试要求]

输出格式 #

  1. 设计思路
  2. 代码实现
  3. 使用示例
  4. 注意事项
text

### 内容创作模板

角色 #

你是一位专业的 [内容类型] 创作者。

背景 #

品牌:[品牌名称] 目标受众:[受众描述] 发布平台:[平台名称]

任务 #

请创作一篇关于 [主题] 的 [内容类型]。

内容要求 #

  • 字数:[字数范围]
  • 风格:[写作风格]
  • 语气:[语气要求]
  • 必须包含:[必要元素]

输出格式 #

[标题] [正文] [标签/关键词]

text

### 数据分析模板

角色 #

你是一位专业的数据分析师。

背景 #

数据来源:[来源描述] 数据规模:[数据量] 分析目的:[目的描述]

数据 #

[数据内容或描述]

任务 #

请对以上数据进行分析,包括:

  1. 数据概览
  2. 关键发现
  3. 趋势分析
  4. 建议

输出格式 #

数据概览 #

[描述]

关键发现 #

  • 发现1
  • 发现2

趋势分析 #

[分析内容]

建议 #

[具体建议]

text

## 结构设计最佳实践

### 实践一:层次分明

❌ 混乱的结构: “你是一个老师,帮我解释一下机器学习,要简单易懂, 大概500字,给初学者看的,用例子说明”

✅ 层次分明的结构:

角色 #

你是一位面向初学者的计算机科学教师。

任务 #

请解释机器学习的基本概念。

要求 #

  • 目标受众:编程初学者
  • 语言风格:简单易懂
  • 内容长度:约 500 字
  • 必须包含:至少 2 个生活实例
text

### 实践二:优先级排序

将最重要的信息放在开头或结尾:

重要信息(开头) #

你是一位资深安全专家,请审查以下代码的安全问题。

次要信息(中间) #

代码使用 Python 3.10 编写…

关键约束(结尾) #

请务必指出所有潜在的安全风险,不要遗漏。

text

### 实践三:模块化设计

将提示词设计为可复用的模块:

模块 1 - 角色定义: 你是一位 [角色],拥有 [经验],擅长 [技能]。

模块 2 - 任务定义: 请完成以下任务:[任务描述]

模块 3 - 格式定义: 请按以下格式输出:[格式描述]

组合使用: [模块 1] + [模块 2] + [模块 3]

text

### 实践四:版本管理

为提示词添加版本信息:

版本:v1.2 #

更新日期:2024-01-15 #

变更记录: #

- 增加了输出格式要求 #

- 优化了角色描述 #

[提示词内容]

text

## 下一步

现在你已经掌握了提示词结构设计,接下来学习 [常用技巧与方法](/docs/prompt-engineering/techniques),了解更多实用的提示词技巧!
最后更新:2026-04-05