前言
产品经理在飞书群里写了一段话:"我们需要一个内部工单系统,员工可以提交 IT 问题,管理员能分配和跟踪。"
然后开发问了 20 个问题:工单有哪些状态?谁能分配?要不要通知?超时怎么办?优先级怎么定?移动端要不要支持?
PM 回去写 PRD,写了三天,还是漏了边界情况。
这个场景你一定不陌生。传统的 PRD 写作流程有一个核心矛盾:需求在脑子里是模糊的,但文档要求是精确的。从模糊到精确的过程,耗时、痛苦、容易遗漏。
好消息是,大模型可以大幅缩短这个过程。你给它一段模糊的需求描述,它能在几分钟内生成一份结构化的 PRD 草稿——不是完美的终稿,但足以让你跳过"空白页"阶段,直接进入审查和讨论。
这篇文章会覆盖:
- 5 种主流方法的对比和适用场景
- 可直接复制的 Prompt 模板
- 一个完整的端到端实战演示(从一段话到 PRD)
- 最佳实践和常见陷阱
不管你是产品经理、技术负责人还是独立开发者,读完就能用。
一、为什么需要 AI 辅助写 PRD
1.1 传统痛点
写 PRD 的痛苦,做过的人都懂:
耗时长:一份中等复杂度的 PRD 通常需要 3-5 天。大量时间花在搭结构、想边界情况、对齐格式上,而不是真正的产品思考。
格式不统一:团队里每个 PM 写出来的 PRD 长得都不一样。有人喜欢用表格,有人喜欢用列表,有人连版本号都不写。新人接手时一头雾水。
容易遗漏边界情况:人脑擅长想 happy path,但容易忽略异常流程。"如果用户同时提交两个工单怎么办?""如果管理员离职了,他分配的工单归谁?"这些问题往往在开发阶段才暴露。
空白页问题:面对一个空文档,不知道从哪里开始写。这是最大的心理障碍,很多 PRD 拖延都是因为这个。
1.2 大模型能帮什么
大模型不会替你做产品决策,但它擅长以下几件事:
结构化:给它一段乱七八糟的需求描述,它能整理成标准的 PRD 结构(背景、目标、用户故事、功能需求、非功能需求等)。
完整性检查:它会自动补充你没想到的边界情况、异常流程、权限控制等。不一定都对,但能提醒你去思考。
速度:几分钟出草稿,而不是几天。你的时间可以花在审查和决策上,而不是搭结构和填格式。
一致性:用同一个模板和 Prompt,团队里每个人生成的 PRD 结构都一样。
多语言:如果你的团队跨国协作,大模型可以同时生成中英文版本。
二、五种主流方法概览
先看一个总览对比,再逐一展开:
| 方法 | 代表工具 | 上手难度 | 适合场景 | 成本 | 质量稳定性 |
|---|---|---|---|---|---|
| 直接对话 | ChatGPT, Claude | ⭐ | 快速探索、小需求 | 低 | 中 |
| SaaS 工具 | Notion AI, 飞书 AI | ⭐⭐ | 团队协作、已有工具链 | 中 | 中高 |
| 模板填充法 | ChatGPT/Claude + System Prompt | ⭐⭐ | 标准化团队流程 | 低 | 高 |
| Agent 工作流 | Dify, Coze, LangChain | ⭐⭐⭐⭐ | 复杂产品、多轮生成 | 中高 | 高 |
| IDE 集成 | Cursor, Claude Code | ⭐⭐⭐ | 技术型 PRD、API 设计 | 中 | 中高 |
2.1 直接对话(ChatGPT / Claude)
最简单的方式:打开 ChatGPT 或 Claude,直接把需求丢进去。
基础 Prompt 示例:
我正在做一个内部 IT 工单系统,主要需求是:
- 员工可以提交 IT 问题(电脑故障、软件安装、权限申请等)
- 管理员可以查看、分配、处理工单
- 需要有优先级和状态跟踪
请帮我写一份 PRD 文档,包含:背景与目标、用户角色、核心功能、非功能需求、数据模型概要。这种方式的优点是零门槛,打开浏览器就能用。缺点也很明显:每次生成的结构可能不一样,质量取决于你的 Prompt 写得好不好,而且没有团队协作能力。
适合场景:个人快速探索、小功能的需求梳理、头脑风暴阶段。
2.2 SaaS 工具(Notion AI、飞书 AI、Jira AI)
如果你的团队已经在用 Notion、飞书或 Jira,它们内置的 AI 功能可以直接在文档里生成 PRD。
优点:
- 不需要切换工具,在现有工作流里就能用
- 生成的内容直接在协作文档里,团队可以实时编辑和评论
- 部分工具支持自定义模板
缺点:
- AI 能力受限于平台,不能自定义 System Prompt
- 生成质量通常不如直接用 ChatGPT/Claude(模型能力受限)
- 付费功能,按席位收费
适合场景:已有工具链的团队、不想额外学习新工具、需要协作编辑。
2.3 模板填充法(推荐)
这是我最推荐的方法。核心思路:用 System Prompt 定义 PRD 模板和规则,用户只需要输入原始需求,模型按模板输出。
这个方法的质量最稳定,因为模板锁定了结构,每次生成的 PRD 格式一致。
完整的 System Prompt 模板:
# 角色
你是一位拥有 10 年经验的高级产品经理,擅长将模糊的业务需求转化为结构清晰、
开发可执行的 PRD 文档。
# 任务
根据用户提供的需求描述,生成一份完整的 PRD 文档。
# PRD 文档结构(严格按此顺序输出)
## 1. 文档信息
- 文档标题、版本号、作者、日期、状态(草稿/评审中/已确认)
## 2. 背景与目标
- 业务背景:为什么要做这个功能
- 核心目标:用 1-2 句话描述要解决的问题
- 成功指标:可量化的 KPI(如果需求中未提及,标记 [待确认])
## 3. 用户角色与场景
- 列出所有用户角色
- 每个角色的核心使用场景(User Story 格式:作为___,我想要___,以便___)
## 4. 功能需求
- 按模块组织,每个功能点包含:
- 功能描述
- 输入/输出
- 业务规则
- 边界情况和异常处理
- 优先级标记:P0(必须有)、P1(应该有)、P2(可以有)
## 5. 非功能需求
- 性能要求
- 安全要求
- 兼容性要求
- 可用性要求
## 6. 数据模型概要
- 核心实体和字段
- 实体关系
## 7. 开放问题
- 列出所有标记为 [待确认] 的问题
- 需要干系人确认的决策点
# 规则
1. 需求中未明确的信息,用 [待确认] 标记,不要自行假设
2. 每个功能点必须考虑异常情况
3. 优先级必须标注
4. 使用简洁的中文,避免冗余描述
5. 数据模型用表格呈现使用时,把这段作为 System Prompt(或者在 ChatGPT 的自定义指令里设置),然后直接输入你的需求就行。
适合场景:需要标准化 PRD 格式的团队、追求质量稳定性、愿意花 10 分钟配置一次。
2.4 Agent 工作流(Dify / Coze / LangChain)
当需求比较复杂时,单次对话可能不够。Agent 工作流的思路是把 PRD 生成拆成多个步骤,每步用不同的 Prompt 处理。
典型的工作流管线:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 需求解析 │────▶│ PRD 生成 │────▶│ 质量审查 │
│ Agent │ │ Agent │ │ Agent │
│ │ │ │ │ │
│ · 提取关键 │ │ · 按模板生成 │ │ · 检查完整性 │
│ 实体 │ │ 完整 PRD │ │ · 标记遗漏 │
│ · 识别用户 │ │ · 补充边界 │ │ · 建议改进 │
│ 角色 │ │ 情况 │ │ │
│ · 生成澄清 │ │ │ │ │
│ 问题 │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
│ │
▼ ▼
如果有澄清问题 输出最终 PRD
→ 返回给用户确认 + 开放问题清单优点:
- 质量最高,多轮审查减少遗漏
- 可以集成外部数据源(竞品分析、历史 PRD)
- 流程可复用、可迭代
缺点:
- 搭建成本高,需要技术背景
- 调试复杂,每个节点都可能出问题
- API 调用成本较高
适合场景:大型产品团队、复杂产品线、有技术资源搭建和维护。
2.5 IDE 集成(Cursor / Claude Code)
如果你写的是技术型 PRD(API 设计文档、系统架构文档、数据库设计),在 IDE 里直接生成会更高效。
Cursor 和 Claude Code 可以读取你的代码库上下文,生成的 PRD 能直接引用现有的数据模型、API 接口和代码结构。
@codebase 基于现有的用户模型和权限系统,帮我写一份工单系统的技术 PRD,
包含:
1. 新增的数据模型(与现有 User 模型的关系)
2. API 端点设计(RESTful)
3. 权限矩阵
4. 与现有通知服务的集成方案适合场景:技术型 PRD、API 设计文档、需要引用现有代码库的场景。
三、Prompt 工程技巧
不管用哪种方法,Prompt 的质量直接决定输出质量。以下是几个关键技巧。
3.1 角色设定
给模型一个具体的角色,比泛泛地说"帮我写 PRD"效果好得多。
你是一位在 SaaS B2B 领域有 10 年经验的高级产品经理。
你曾主导过 CRM、工单系统、项目管理工具等企业级产品的从 0 到 1。
你特别擅长识别边界情况和异常流程。角色设定的关键是具体:不是"产品经理",而是"SaaS B2B 领域的高级产品经理";不是"有经验",而是"主导过 CRM、工单系统"。
3.2 结构锁定(模板注入)
在 Prompt 里直接给出 PRD 的结构模板,模型会严格按照这个结构输出。这是保证一致性的最有效方法。
前面 2.3 节的 System Prompt 就是一个完整的例子。关键点:
- 用 Markdown 标题定义层级
- 每个章节说明需要包含什么内容
- 给出格式要求(表格、列表、User Story 格式等)
3.3 Few-shot 示例
如果你对输出格式有特定要求,给一个示例比描述规则更有效。
功能需求的格式示例:
### F-001: 创建工单
- **描述**:员工可以通过表单创建新的 IT 工单
- **输入**:标题(必填,50字内)、描述(必填)、类别(下拉选择)、优先级(下拉选择)
- **输出**:工单创建成功,返回工单编号,发送确认邮件
- **业务规则**:
1. 同一员工同时最多有 10 个未关闭工单
2. 优先级为"紧急"时,自动通知值班管理员
- **异常处理**:
1. 标题超长 → 前端截断 + 提示
2. 网络中断 → 本地暂存,恢复后自动提交
- **优先级**:P0
请按照这个格式输出所有功能需求。3.4 迭代追问
一次生成很难完美。更好的方式是分轮迭代:
第一轮:生成 PRD 草稿 第二轮:审查并补充边界情况
请以资深 QA 工程师的视角审查上面的 PRD,找出:
1. 遗漏的边界情况
2. 不明确的业务规则
3. 可能的并发问题
4. 缺失的错误处理
对每个问题,给出具体的补充建议。第三轮:技术评审
请以后端架构师的视角评审这份 PRD,关注:
1. 数据模型是否合理
2. API 设计是否 RESTful
3. 是否有性能瓶颈
4. 安全风险点3.5 约束与标记
两个最有用的约束:
[待确认] 标记:告诉模型,遇到不确定的信息不要瞎编,而是标记为 [待确认]。这些标记后续就是你和干系人讨论的清单。
优先级标签:要求模型给每个功能标注优先级(P0/P1/P2),帮助团队做取舍。
规则:
- 需求中未明确提及的信息,必须标记为 [待确认],不得自行假设
- 每个功能点必须标注优先级:P0(MVP 必须)、P1(第二期)、P2(未来考虑)
- 涉及金额、权限、通知的逻辑,必须列出所有边界情况四、完整实战:从一段话到 PRD
这是本文的核心章节。我们用一个真实场景,演示如何从一段模糊的需求描述,经过三轮迭代,生成一份可用的 PRD。
4.1 原始需求
假设你收到了这样一段需求(来自你的老板或业务方):
我们公司现在 IT 问题都是在微信群里喊,经常漏掉。需要做一个内部工单系统,员工遇到电脑问题、要装软件、申请权限什么的,可以提个工单。IT 那边能看到所有工单,分配给具体的人处理。最好能看到处理进度,别提了工单就石沉大海了。急的问题要能优先处理。
就这么多。没有用户角色定义,没有状态流转,没有通知逻辑,没有权限控制。这就是 PM 日常面对的真实输入。
4.2 第一轮:生成 PRD 草稿
我们用模板填充法,把 2.3 节的 System Prompt 设置好,然后输入:
请根据以下需求生成 PRD 文档:
我们公司现在 IT 问题都是在微信群里喊,经常漏掉。需要做一个内部工单系统,
员工遇到电脑问题、要装软件、申请权限什么的,可以提个工单。IT 那边能看到
所有工单,分配给具体的人处理。最好能看到处理进度,别提了工单就石沉大海了。
急的问题要能优先处理。模型生成的 PRD 草稿(摘录关键部分):
## 1. 文档信息
- 文档标题:内部 IT 工单管理系统 PRD
- 版本:v0.1(AI 生成草稿)
- 日期:2026-03-14
- 状态:草稿
## 2. 背景与目标
### 业务背景
当前公司 IT 支持依赖微信群沟通,存在以下问题:
- 问题容易被消息流淹没,导致遗漏
- 无法跟踪处理进度,员工不知道问题是否在处理
- 缺乏优先级机制,紧急问题无法优先响应
- 没有历史记录,相同问题重复沟通
### 核心目标
建立结构化的 IT 工单管理系统,实现问题的提交、分配、跟踪和闭环管理。
### 成功指标
- IT 问题响应时间从 [待确认] 降低到 [待确认]
- 工单遗漏率降至 5% 以下
- 员工满意度达到 [待确认]
## 3. 用户角色与场景
### 普通员工
- 作为普通员工,我想要提交 IT 工单,以便我的问题能被记录和跟踪
- 作为普通员工,我想要查看我的工单处理进度,以便我知道问题何时能解决
### IT 管理员
- 作为 IT 管理员,我想要查看所有待处理工单,以便我能合理分配资源
- 作为 IT 管理员,我想要将工单分配给具体的 IT 人员,以便责任明确
### IT 处理人员
- 作为 IT 处理人员,我想要查看分配给我的工单,以便我知道需要处理什么
- 作为 IT 处理人员,我想要更新工单状态和处理记录,以便提交人了解进展
## 4. 功能需求(摘录)
### F-001: 创建工单 [P0]
- **描述**:员工通过表单提交 IT 工单
- **输入**:标题(必填)、问题描述(必填)、类别(下拉)、优先级(下拉)、
附件(可选)
- **业务规则**:
1. 类别选项:硬件故障、软件安装、权限申请、网络问题、其他
2. 优先级:紧急、高、中、低
3. 创建后状态自动设为"待分配"
- **异常处理**:
1. 附件大小超限 → 提示并阻止提交 [待确认:附件大小上限]
2. 必填字段为空 → 前端校验提示
### F-002: 工单列表与筛选 [P0]
...
### F-005: 工单状态流转 [P0]
- **状态机**:待分配 → 已分配 → 处理中 → 待验证 → 已关闭
- **业务规则**:
1. 只有 IT 管理员可以执行"分配"操作
2. 只有被分配的处理人员可以更新为"处理中"
3. 处理完成后,提交人验证确认后关闭
4. [待确认] 是否允许重新打开已关闭的工单注意几个关键点:
- 模型自动补充了"IT 处理人员"这个角色(原始需求没提)
- 成功指标标记了
[待确认],因为原始需求没给数字 - 状态机比原始需求描述的更完整
- 每个功能都有异常处理
4.3 第二轮:补充边界情况和通知逻辑
草稿不错,但还有很多细节没覆盖。我们追问:
请补充以下方面:
1. 通知逻辑:什么事件触发通知?通知谁?通过什么渠道?
2. 超时处理:工单超过一定时间未处理怎么办?
3. 并发场景:两个管理员同时分配同一个工单怎么办?
4. 数据权限:普通员工能看到别人的工单吗?
5. 工单关闭后的处理:关闭后能重新打开吗?有评价机制吗?模型补充的内容(摘录):
## 通知逻辑
| 触发事件 | 通知对象 | 通知渠道 | 通知内容 |
|----------|----------|----------|----------|
| 新工单创建 | IT 管理员 | 邮件 + 系统内 | 工单标题、优先级、提交人 |
| 工单被分配 | 处理人员 | 邮件 + 系统内 | 工单详情、期望完成时间 |
| 工单被分配 | 提交人 | 系统内 | 处理人员信息 |
| 状态变更 | 提交人 | 系统内 | 新状态、处理备注 |
| 紧急工单创建 | IT 管理员 | 邮件 + 短信 [待确认] | 工单详情 |
| 工单超时 | 处理人员 + 管理员 | 邮件 | 超时提醒 |
## 超时机制
- 紧急工单:30 分钟未分配 → 通知管理员;2 小时未开始处理 → 升级
- 高优先级:2 小时未分配 → 通知;8 小时未处理 → 升级
- 中/低优先级:24 小时未分配 → 通知
- [待确认] 升级通知发给谁?IT 主管?
## 并发控制
- 工单分配采用乐观锁机制
- 如果管理员 A 正在分配工单 X,管理员 B 尝试分配同一工单时,
提示"该工单已被 [管理员A] 分配给 [处理人员],请刷新页面"4.4 第三轮:技术评审视角
最后一轮,我们换个视角:
请以后端工程师的视角评审这份 PRD,重点关注:
1. 数据模型设计是否合理
2. API 设计建议
3. 潜在的性能问题
4. 安全风险
请直接给出具体的技术建议,而不是泛泛的评论。模型的技术评审(摘录):
## 技术评审意见
### 数据模型建议
1. 工单表建议增加 `deleted_at` 字段支持软删除
2. 工单操作日志应独立成表(ticket_logs),记录所有状态变更,
字段:id, ticket_id, operator_id, action, old_value, new_value,
created_at
3. 附件表独立(ticket_attachments),支持多附件
4. [建议] 类别和优先级用枚举表而非硬编码,方便后续扩展
### API 设计建议
- POST /api/tickets — 创建工单
- GET /api/tickets — 工单列表(支持分页、筛选)
- GET /api/tickets/:id — 工单详情
- PATCH /api/tickets/:id — 更新工单(状态、分配等)
- POST /api/tickets/:id/comments — 添加处理记录
- GET /api/tickets/stats — 统计数据(管理员仪表盘)
### 性能关注点
1. 工单列表页需要分页,建议默认 20 条/页
2. 筛选查询需要在 status、priority、assignee_id、created_at
上建索引
3. 通知发送应异步处理(消息队列),避免阻塞主流程
4. 附件上传建议直传 OSS,不经过应用服务器
### 安全风险
1. 权限校验必须在后端实现,不能仅依赖前端控制
2. 工单详情接口需校验当前用户是否有权查看
3. 附件下载需要鉴权,不能用可猜测的 URL
4. 防止 XSS:工单描述支持富文本时需做内容过滤4.5 最终 PRD 中的 [待确认] 清单
经过三轮迭代,PRD 中所有的 [待确认] 标记汇总如下:
## 开放问题清单
1. [待确认] 成功指标的具体数值(当前响应时间、目标响应时间)
2. [待确认] 附件大小上限(建议 10MB)
3. [待确认] 是否允许重新打开已关闭的工单
4. [待确认] 紧急工单是否需要短信通知
5. [待确认] 超时升级通知发给谁
6. [待确认] 是否需要工单评价机制
7. [待确认] 是否需要移动端支持(第一期)
8. [待确认] 是否需要与现有 OA 系统集成
9. [待确认] 数据保留策略(工单数据保留多久)这份清单就是你下一步和干系人开会讨论的议程。比起从零开始想"还有什么没考虑到",这种方式高效得多。
五、方法对比与选择指南
详细对比
| 维度 | 直接对话 | SaaS 工具 | 模板填充法 | Agent 工作流 | IDE 集成 |
|---|---|---|---|---|---|
| 上手时间 | 0 分钟 | 取决于工具 | 10 分钟 | 数小时-数天 | 30 分钟 |
| 单次生成耗时 | 1-2 分钟 | 1-2 分钟 | 2-3 分钟 | 5-10 分钟 | 3-5 分钟 |
| 输出一致性 | 低 | 中 | 高 | 高 | 中 |
| 可定制程度 | 高 | 低 | 高 | 很高 | 高 |
| 团队协作 | 差 | 好 | 中 | 中 | 差 |
| 单次成本 | ~$0.05 | 含在订阅中 | ~$0.05 | ~$0.20-0.50 | 含在订阅中 |
| 推荐场景 | 个人探索 | 已有工具链 | 团队标准化 | 复杂产品 | 技术 PRD |
决策流程
你的需求是什么?
│
├─ 快速探索一个想法
│ └─▶ 直接对话(ChatGPT/Claude)
│
├─ 团队已有 Notion/飞书/Jira
│ └─▶ 先试 SaaS 内置 AI
│ └─ 质量不够? → 模板填充法
│
├─ 需要标准化团队 PRD 流程
│ └─▶ 模板填充法(性价比最高)
│
├─ 复杂产品,需要多轮生成和审查
│ └─▶ Agent 工作流
│
└─ 技术型 PRD(API 设计、数据模型)
└─▶ IDE 集成对大多数团队来说,模板填充法是最佳起点。它不需要额外工具,配置一次就能反复使用,输出质量稳定。等团队用熟了,再根据需要升级到 Agent 工作流。
六、最佳实践与常见陷阱
6.1 最佳实践
始终人工审查:AI 生成的 PRD 是草稿,不是终稿。每一条功能需求、每一个业务规则都需要人工确认。特别是涉及金额、权限、合规的部分。
用 [待确认] 做讨论清单:这是最实用的技巧。让模型在不确定的地方标记 [待确认],然后把这些标记汇总成讨论清单,带到评审会上逐一确认。
喂入上下文:模型知道的越多,输出越好。可以喂入的上下文包括:
- 现有系统的架构文档
- 竞品的功能列表
- 历史 PRD 作为参考
- 团队的技术栈信息
版本管理 Prompt:把你的 System Prompt 当代码管理。放在 Git 仓库里,有变更就提交,团队共享同一份模板。
从模板法起步:不要一上来就搞 Agent 工作流。先用模板填充法跑通流程,确认有价值后再升级。
6.2 常见陷阱
盲信输出:大模型会一本正经地胡说八道。它可能编造不存在的 API、虚构行业规范、或者给出看似合理但实际不可行的方案。每一条都要验证。
过度指定 UI:PRD 应该描述"做什么",而不是"长什么样"。让模型生成 UI 细节(按钮位置、颜色、布局)是浪费,这些应该留给设计师。
跳过干系人对齐:AI 生成的 PRD 再完美,如果没有和干系人对齐,也是白搭。PRD 的核心价值是对齐共识,不是文档本身。
一次性生成复杂产品:不要试图用一个 Prompt 生成整个产品的 PRD。拆分成模块,每个模块单独生成,效果好得多。
缺少领域上下文:如果你做的是医疗、金融、教育等垂直领域的产品,通用大模型缺少领域知识。你需要在 Prompt 里补充行业背景、合规要求、专业术语。
七、AI 生成 PRD 的局限性
说了这么多好处,也要诚实地谈谈局限性:
无领域深度知识:大模型的知识是通用的。它知道"工单系统"的一般模式,但不知道你们公司的 IT 流程、组织架构、历史遗留系统。这些上下文需要你提供。
无干系人上下文:它不知道你的老板关心什么、开发团队的技术栈是什么、设计师的偏好是什么。PRD 不只是功能列表,还是一份沟通文档,这部分 AI 帮不了。
幻觉风险:模型可能生成看似专业但实际错误的内容。比如引用不存在的行业标准、编造性能数据、或者给出不符合实际的技术方案。
无视觉设计能力:大模型(纯文本)不能画原型图、不能做交互设计。PRD 中的视觉部分还是需要设计师。
合规盲区:GDPR、等保、HIPAA 等合规要求,大模型可能知道一些通用条款,但不能替代专业的合规审查。
核心观点:AI 是你的起草伙伴,不是产品思维的替代品。它帮你跳过空白页、补充遗漏、加速迭代,但产品决策、干系人对齐、优先级判断,这些仍然是 PM 的核心价值。
总结
用大模型写 PRD 不是未来的事,今天就能开始。从模板填充法起步,花 10 分钟配置一个 System Prompt,下次收到需求时直接用。你会发现,过去需要三天的 PRD 草稿,现在 30 分钟就能有一个不错的起点。
记住:目标不是消除 PM,而是消除空白页。AI 负责结构和草稿,你负责判断和决策。
推荐阅读
- 大模型前世今生:从 RNN 到 GPT 的完整进化史 — 如果你想系统了解大模型的技术原理
- Claude Code Prompt 工程指南 — 更多 Prompt 工程技巧和实战案例