Prompt:把需求表达清楚
Prompt 是 AI 学习路线的第一章。
很多人接触 AI,都是从“问一句话”开始。但真正想把 AI 用到学习、开发、测试、写作和自动化中,只会随口提问还不够。Prompt 的核心能力,是把一个模糊想法整理成模型能理解、能执行、能检查的任务说明。
这一章要解决一个基础问题:
如何把需求讲清楚,让 AI 稳定地产出有用结果。
学完这一章,你应该能做到三件事:
- 把模糊想法拆成清晰任务
- 给 AI 提供必要背景、约束和输出格式
- 让 AI 在信息不足时主动标注问题或假设
1. Prompt 的本质
Prompt 可以理解成写给 AI 的任务说明书。
一条好用的 Prompt,通常要回答这些问题:
- 你希望 AI 扮演什么角色
- 你要 AI 完成什么任务
- 你提供了哪些背景材料
- 你希望它按什么步骤处理
- 你希望它输出什么格式
- 有哪些边界和限制
- 信息不足时应该怎么处理
- 输出前需要检查哪些内容
如果这些信息缺失,AI 就会依赖猜测。猜对时,输出看起来很聪明;猜错时,就会出现跑题、漏点、幻觉、格式混乱、代码不可用等问题。
所以,Prompt 学习的第一目标是:减少 AI 的猜测空间。
2. 普通提问和工程化 Prompt 的差异
普通提问通常像这样:
帮我写一个接口测试用例。这个问题太宽泛。AI 无法确定接口是什么、业务是什么、测试范围是什么、输出格式是什么,也无法判断你更关心正常流程、异常流程、边界场景,还是安全风险。
工程化 Prompt 会更具体:
你是一名接口测试工程师。
请根据下面的接口说明生成接口测试用例。
要求:1. 按正常场景、异常场景、边界场景分类。2. 每条用例包含:用例标题、前置条件、请求参数、预期结果。3. 输出 Markdown 表格。4. 如果接口说明缺少关键信息,请在最后列出“待确认问题”。
接口说明:...这类 Prompt 的特点很明确:角色清楚、任务清楚、约束清楚、输出清楚,遇到缺口也有处理方式。
3. 基础 Prompt 模板
初学阶段可以先记住这个结构:
你是:[角色]
背景:[上下文信息]
任务:[希望 AI 完成什么]
输入材料:[粘贴需求、代码、日志、接口说明、数据样例等]
要求:1. [具体要求一]2. [具体要求二]3. [具体要求三]
输出格式:[Markdown / JSON / 表格 / 分点说明]
限制条件:[需要避免什么、必须保留什么、范围到哪里为止]
信息不足时:[先提问 / 列出假设 / 标注不确定项]
输出前请自检:[需要检查的事项]这个模板适合大多数基础任务。刚开始练习时,可以先照着填空;熟悉之后,再按任务类型调整。
示例:
你是一名后端开发工程师。
背景:我正在开发一个用户登录接口,使用 FastAPI 和 PostgreSQL。
任务:请帮我设计这个登录接口的实现思路。
要求:1. 说明接口入参和返回值。2. 说明密码校验流程。3. 说明 token 生成逻辑。4. 列出常见错误场景。
输出格式:用小标题分段说明。
限制条件:不要直接生成完整项目代码,只给出接口设计和关键伪代码。
信息不足时:请列出需要我确认的问题。
输出前请自检:检查是否覆盖正常登录、密码错误、账号不存在、账号禁用、参数缺失等场景。4. Prompt 的七个关键要素
4.1 角色
角色用于告诉 AI 从什么专业角度处理问题。
常见角色包括:
- 后端开发工程师
- 前端开发工程师
- 测试工程师
- 产品经理
- 架构师
- 运维工程师
- 技术写作者
- 代码审查者
角色越贴近任务,输出越容易对齐。
示例:
你是一名资深测试工程师,请根据下面的需求生成测试点。4.2 背景
背景用于说明当前任务发生在什么环境里。
背景可以包括:
- 项目类型
- 技术栈
- 业务目标
- 当前问题
- 已经尝试过的方法
- 错误日志
- 约束条件
示例:
背景:这是一个 Cloudflare Workers 项目,使用 Hono 框架。当前接口在本地可以访问,但部署后返回 500。背景越具体,AI 越容易判断问题边界。
4.3 任务
任务要尽量具体,并使用明确动作词。
模糊任务:
帮我优化一下。清晰任务:
请帮我检查下面这段代码是否存在性能问题,并给出可以直接修改的建议。常用动作词包括:
- 分析
- 生成
- 总结
- 对比
- 检查
- 重写
- 提取
- 设计
- 调试
- 评审
一个好任务,通常能让 AI 明确知道“要处理什么”和“处理到什么程度”。
4.4 输入
输入是 AI 完成任务所需的材料。
常见输入包括:
- 需求文档
- 接口说明
- 代码片段
- 错误日志
- 数据样例
- 用户反馈
- 设计稿说明
如果输入较长,建议用明确分隔符包起来:
以下是错误日志:
```log...```这样可以降低模型把说明文字和材料混在一起的概率。
4.5 输出格式
输出格式决定结果是否方便使用。
常见格式包括:
- Markdown
- 表格
- JSON
- YAML
- 代码块
- 分点清单
- 测试用例表
- PR 描述
示例:
请用 Markdown 表格输出,列包括:问题、影响、建议、优先级。当输出要进入程序处理时,后续还要学习 Structured Output。Prompt 阶段先做到格式清楚即可。
4.6 约束
约束用于控制任务边界。
常见约束包括:
- 不要改动业务逻辑
- 不要引入新依赖
- 不要输出无关解释
- 不要生成完整代码
- 保留原有接口字段
- 输出控制在 800 字以内
- 使用简体中文
示例:
限制条件:不要引入新的第三方库,优先使用项目里已有工具函数。约束写得越清楚,结果越容易直接使用。
4.7 自检
自检用于让 AI 在输出前检查结果。
示例:
输出前请检查:1. 是否覆盖正常、异常、边界场景。2. 是否存在重复用例。3. 是否有无法从需求中确认的假设。自检无法保证结果一定正确,但可以明显减少低级遗漏。
5. 常见任务 Prompt 示例
5.1 需求分析
你是一名产品经理和测试分析师。
请分析下面的需求说明,输出:1. 核心业务目标2. 主要用户流程3. 功能点清单4. 异常场景5. 待确认问题
要求:- 不要补充需求中没有出现的功能。- 如果需要推断,请标注为“推断”。- 输出使用 Markdown 小标题。
需求说明:...5.2 接口测试用例
你是一名接口测试工程师。
请根据下面的接口说明生成测试用例。
要求:1. 覆盖正常场景、异常场景、边界场景。2. 每条用例包含:用例标题、请求参数、前置条件、预期结果。3. 输出 Markdown 表格。4. 如果字段规则不明确,请在最后列出待确认问题。
接口说明:...5.3 代码审查
你是一名代码审查工程师。
请审查下面这段代码,优先关注:1. 可能导致运行错误的问题2. 安全风险3. 边界条件4. 可维护性问题5. 缺失的测试场景
输出格式:- 先列出问题,按严重程度排序。- 每个问题包含:位置、原因、影响、修改建议。- 如果没有明显问题,请说明剩余风险。
代码:...5.4 错误日志分析
你是一名后端排障工程师。
请根据下面的错误日志分析问题。
要求:1. 提取关键错误信息。2. 给出最可能的 3 个原因。3. 说明每个原因的验证方法。4. 给出下一步排查命令或检查点。
限制条件:- 不要直接下结论。- 明确区分已知事实和推测。
错误日志:...5.5 学习笔记整理
你是一名技术写作者。
请把下面的学习笔记整理成一篇结构清晰的博客草稿。
要求:1. 保留原始观点。2. 补齐必要的过渡句。3. 使用二级标题组织结构。4. 语言自然,不要太像教科书。5. 最后给出一个简短总结。
原始笔记:...6. Prompt 写作中的常见问题
6.1 任务太大
问题示例:
帮我做一个 AI 项目。这种任务范围太大。可以先拆成更小的目标:
请先帮我设计一个 AI 项目助手的功能清单,只输出第一版 MVP 范围。6.2 背景太少
问题示例:
这个报错怎么解决?更清楚的写法:
这是一个 Node.js 项目,运行 npm run build 时报错。下面是 package.json、命令输出和错误日志。请帮我分析最可能原因,并给出验证步骤。6.3 输出格式不明确
问题示例:
帮我总结一下。更清楚的写法:
请用 5 条要点总结,每条不超过 40 字,最后补一条“下一步建议”。6.4 允许模型自由发挥过多
问题示例:
随便写点优化建议。更清楚的写法:
请只基于我提供的代码提出建议,不要假设项目里有其他模块。6.5 没有处理信息不足
问题示例:
直接给我方案。更清楚的写法:
如果信息不足,请先列出最多 5 个关键问题;如果可以基于现有信息给初版方案,请明确写出假设。7. Prompt 迭代方法
Prompt 通常需要通过使用反馈来迭代。可以按这个流程优化:
- 先写一个基础版本
- 查看 AI 输出是否跑题
- 找出缺失的背景、约束或格式要求
- 补充输入材料
- 加入示例
- 加入自检规则
- 保存成可复用模板
示例:
第一版:
帮我写测试用例。第二版:
请根据下面的登录需求写测试用例,覆盖正常、异常、边界场景。第三版:
你是一名测试工程师。
请根据下面的登录需求生成测试用例。
要求:1. 按正常场景、异常场景、边界场景分类。2. 每条用例包含:标题、前置条件、操作步骤、预期结果。3. 输出 Markdown 表格。4. 如果需求缺少字段规则,请列出待确认问题。
登录需求:...第三版已经具备明确角色、任务、范围、格式和缺口处理方式,更适合复用。
8. Prompt 练习清单
可以按下面的顺序练习:
- 写一个总结文章的 Prompt
- 写一个整理会议纪要的 Prompt
- 写一个分析错误日志的 Prompt
- 写一个生成接口测试用例的 Prompt
- 写一个代码审查 Prompt
- 写一个需求拆解 Prompt
- 写一个博客改写 Prompt
- 写一个让 AI 先提问再回答的 Prompt
- 写一个带输出格式约束的 Prompt
- 写一个带自检规则的 Prompt
每个练习都可以保存三个版本:
- 初始版本
- 优化版本
- 最终模板
这样能直观看到 Prompt 质量的提升过程。
9. 阶段验收标准
学完这一章,可以用下面的问题检查自己:
- 我能不能把一个模糊需求拆成清晰任务?
- 我能不能给 AI 提供足够背景?
- 我能不能明确要求输出格式?
- 我能不能限制 AI 做无关发挥?
- 我能不能让 AI 标注不确定信息?
- 我能不能把好用的 Prompt 沉淀成模板?
如果这些问题大多数都能做到,说明 Prompt 阶段已经基本合格。
10. 本章总结
Prompt 的核心是把任务、背景、约束和输出讲清楚。
一条可复用的 Prompt,建议至少包含:
- 角色
- 背景
- 任务
- 输入材料
- 输出格式
- 限制条件
- 信息不足时的处理方式
- 输出前自检规则
Prompt 是后续 Structured Output、Tool Calling、RAG、Agent、MCP、Skill 和 Subagent 的基础。前面讲不清楚,后面就很难稳定执行。
这一章的目标很朴素:把“我想让 AI 做什么”说到足够清楚、足够具体、足够可检查。