Agent Mentor Learn
Prompt 工程基础:如何写出有效的指令 · 第 2 / 6 节

第 02 课:Prompt 的基本结构

本课目标:

  • 掌握 prompt 的四大核心要素
  • 学会将模糊需求改写为结构化指令
  • 理解每个要素如何影响 AI 输出

前置知识:<< 01 什么是 Prompt | 下一课 03 >>

为什么 AI 总是答非所问

你问 AI"写一份项目总结",它给了你一个标准模板,却没有你这个项目的任何具体信息。问题出在哪?不是 AI 能力不够,而是你的指令里缺了关键要素:这是什么项目、给谁看、应该包含什么内容、用什么格式

一个有效的 prompt 不是一句话甩过去,而是一个包含四个要素的完整指令。本课教你这四个要素是什么、各自的作用、以及如何组合使用。

Prompt 的四大要素

一个清晰的 prompt 通常包含四个部分1

  1. 角色设定(Role):告诉 AI 它应该以什么身份回答
  2. 任务描述(Task):明确你要 AI 做什么
  3. 输出格式(Format):指定回答的结构和样式
  4. 约束条件(Constraints):限定范围、长度、语气等边界

这四个要素不是每次都必须全部出现,但越复杂的任务,需要的要素越多。我们逐个看它们的作用。

1. 角色设定:AI 应该以什么身份回答

角色设定告诉 AI 用什么视角、什么专业水平来回答你2。同一个问题,技术专家和小学老师的回答方式完全不同。

对比这两个 prompt:

没有角色设定

解释一下什么是 Docker

AI 可能给你:

  • 技术文档式的定义("Docker 是一个开源的容器化平台……")
  • 假设你懂 Linux、虚拟化、镜像等概念

有角色设定

你是一位擅长用类比解释技术概念的老师。请向一个完全不懂编程的产品经理解释什么是 Docker。

AI 会:

  • 用日常生活的类比("Docker 像一个标准化的集装箱……")
  • 避免专业术语,或者解释每个术语
  • 关注"为什么需要它"而不是"怎么实现它"

常见角色设定模式

  • 专业身份:"你是一位资深的 Python 工程师"
  • 教学风格:"你是一位擅长用例子教学的导师"
  • 受众视角:"你在给非技术背景的管理层讲解"
  • 语气风格:"你是一位友好、耐心的助手"

2. 任务描述:明确要 AI 做什么

任务描述是 prompt 的核心,回答"做什么"这个问题1。模糊的任务描述是最常见的问题。

对比:

模糊任务

分析这段代码

AI 不知道从哪个角度分析:性能?安全性?可读性?Bug?

明确任务

分析这段 Python 代码的性能瓶颈,指出哪些操作可能在大数据量下变慢,并给出优化建议。

AI 知道:

  • 关注点是性能,不是其他方面
  • 需要考虑大数据量场景
  • 不仅要指出问题,还要给建议

任务描述的三个层次

  1. 动词:总结、分析、生成、修改、检查……
  2. 对象:处理什么内容(代码、文档、数据……)
  3. 目标:达到什么效果、解决什么问题

3. 输出格式:指定回答的结构

输出格式告诉 AI 用什么结构组织答案1。没有格式约束,AI 会用它认为合适的方式——可能是一大段文字,可能是列表,可能是表格。

对比:

没有格式要求

总结这篇文章的要点

AI 可能给你:

  • 三段文字描述
  • 或者十个要点的列表
  • 或者一句话概括

指定格式

用以下格式总结这篇文章:
核心观点:[一句话]
支持论据(3 个):1. [论据 1,一句话]2. [论据 2,一句话]3. [论据 3,一句话]
结论:[一句话]

AI 会严格按这个结构输出,你可以直接复制粘贴到你的文档里。

常见格式约束

  • 列表:"用项目符号列出三个要点"
  • 表格:"用表格对比这两个方案的优缺点"
  • 代码:"只输出可运行的代码,不要解释"
  • 分段:"分为背景、分析、建议三个部分"
  • 长度:"每个要点不超过 50 字"

4. 约束条件:限定范围和边界

约束条件是各种"不要……"和"只……"的规则,防止 AI 偏离轨道1

对比:

没有约束

给我推荐一些学习 Python 的资源

AI 可能给你:

  • 十几本书、课程、网站的列表
  • 从入门到高级全都有
  • 有付费的、有免费的、有英文的、有中文的

有约束

给我推荐 3 个学习 Python 的资源,要求:- 完全免费- 中文- 适合零基础- 有实际项目练习
每个资源用两句话说明:第一句介绍是什么,第二句说明为什么适合零基础。

AI 会:

  • 精确筛选符合条件的资源
  • 不推荐付费课程或英文内容
  • 按你要求的格式解释每个推荐

常见约束类型

  • 长度:"不超过 200 字"
  • 范围:"只讨论 2023 年以后的方法"
  • 语气:"用正式的学术语言"
  • 排除:"不要包含需要付费的方案"
  • 优先级:"优先考虑开源工具"

组合使用四要素

一个完整的 prompt 把四个要素组合起来。看一个真实场景:

场景:让 AI 帮你写会议纪要

只有任务,缺少其他要素

根据这段会议记录写一份纪要

包含四要素

[角色] 你是一位专业的项目助理。
[任务] 根据下面的会议记录,写一份会议纪要。
[格式] 按以下结构组织:- 会议基本信息(时间、参与人)- 讨论的问题(按优先级排序)- 每个问题的决策结果- 待办事项(负责人 + 截止日期)
[约束]- 只记录有明确结论的讨论,略过闲聊内容- 待办事项必须可执行(有动词 + 可检查的交付物)- 总长度不超过 500 字
会议记录:[这里粘贴会议记录]

这个 prompt 清晰、完整、可复用——把会议记录部分做成占位符,就是一个可以反复使用的 Prompt 模板。下次开会,只需要替换最后的会议记录内容即可。

实战:改写模糊 prompt

现在练习把一个模糊 prompt 改写为结构化版本。

原始 prompt(模糊)

帮我优化这段代码

改写步骤

第 1 步:明确任务

  • 优化什么?性能、可读性、还是安全性?
  • 假设目标是提升性能

第 2 步:添加角色

  • 代码审查者的视角最合适

第 3 步:指定格式

  • 用结构化的方式输出:先列问题,再给方案

第 4 步:加入约束

  • 不改变功能逻辑
  • 优先考虑明显的性能提升

改写后的 prompt

你是一位资深的性能优化工程师。
请分析下面这段 Python 代码的性能问题,并给出优化建议。
按以下格式输出:1. 当前性能瓶颈(按影响从大到小排序)   - 瓶颈点描述   - 在什么数据量下会成为问题2. 优化方案   - 具体修改建议   - 优化后的代码片段   - 预期性能提升
约束:- 不改变函数的输入输出接口- 不引入新的外部依赖- 优先考虑能提升 2 倍以上性能的改动
代码:[这里粘贴代码]

对比原始版本,改写后的 prompt 清晰地告诉 AI:以什么角色、做什么、怎么输出、在什么限制下做。

四要素的灵活运用

四要素不是教条,而是检查清单:

  • 简单任务可以只用 2-3 个要素:"用三句话总结这篇文章的核心观点"(任务 + 格式)
  • 复杂任务需要全部四个:"你是技术作家,将这段 API 文档改写为面向初学者的教程,包含代码示例和常见错误说明,不超过 1000 字"
  • 探索性任务约束要少:"分析这个问题可能有哪些解决角度"
  • 执行性任务约束要多:"严格按照以下 JSON 格式输出,不要添加任何解释"

判断标准很简单:**AI 看完你的 prompt,能不能清楚知道该做什么、输出什么样的结果?**如果你自己都不能明确回答,那 AI 更做不到。

小结

有效的 prompt 包含四个要素:角色设定(以什么身份)、任务描述(做什么)、输出格式(怎么组织)、约束条件(边界是什么)。不是每次都要四个全用,但越复杂的任务需要的要素越完整。

改写 prompt 的流程:先明确任务核心,再决定需要什么角色、什么输出格式、什么约束。把模糊的一句话扩展为结构化的指令,AI 的输出质量会显著提升。

下一课学习 few-shot learning——如何用 2-5 个示例让 AI 理解你想要的模式,而不是用文字描述。

下一课 Few-shot Learning:通过示例引导 AI >>

Footnotes

  1. OpenAI Prompt Engineering Best Practices — https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api 2 3 4

  2. Anthropic Prompt Engineering Overview — https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview

练习

01

下面是一个混乱的 prompt:

Level 1:拆解和重建 prompt
写个函数,输入是字符串列表,输出是去重后的结果,要快,用 Python,加注释。

请用四要素框架(角色、任务、格式、约束)重新组织这个 prompt,使其更清晰。

完成标准 · 本地勾选
02

场景:你需要 AI 帮你审查一份技术文档(API 使用指南),找出新手容易误解的地方,并给出改进建议。

Level 2:为复杂任务设计完整 prompt

设计一个包含四要素的完整 prompt。

完成标准 · 本地勾选