Skip to content

I - 指令下达:编写清晰有效的任务

如果说“角色(Persona)”为 AI 提供了大脑和灵魂,那么“指令(Instruction)”就是我们与之沟通的心脏。指令是提示词的核心,它直接告诉 AI “做什么”。一个清晰、明确、结构化的指令,是确保 AI 准确执行我们意图的根本保证。

1. 清晰性:指令的黄金准则

指令的首要原则是清晰性。模糊的指令必然导致模糊的输出。让我们来看一个典型的反面教材:

坏指令: “写一个关于苹果公司的报告。”

这个指令充满了歧义:

  • 重点是什么? 是公司的财务状况、产品创新史,还是其创始人乔布斯的传记?
  • 时间范围是多久? 是最近一年,还是从公司成立至今?
  • 读者是谁? 是对公司一无所知的初学者,还是寻求深度分析的投资人?

AI 只能在这些不确定性中进行猜测,其结果自然难以满足我们的期望。现在,让我们将它修改为一个清晰的指令:

好指令: “写一篇关于苹果公司自 2010 年以来的产品创新历史的报告,重点分析 iPhone、iPad 和 Apple Watch 三条产品线。报告应面向对科技行业有基本了解的读者,并以时间顺序展开。”

这个指令通过明确主题(产品创新史)、范围(2010 年以来,三大产品线)和读者(科技爱好者),极大地减少了 AI 的猜测空间,使其能够生成一个高度相关的、结构化的答案。

2. 任务分解:化繁为简的艺术

对于复杂的任务,与其让 AI 一次性处理一个庞大而复杂的指令,不如将其分解为一系列更小、更简单的子任务。这就像软件工程中的模块化思想,它能显著降低 AI 的理解难度,并提高每一步的成功率。

假设我们的任务是“开发一个用户登录功能”。这是一个非常复杂的任务,直接丢给 AI 的效果往往不佳。我们可以将其分解为:

复杂任务:开发一个用户登录功能。

分解后的子指令集

  1. 任务1 (数据库): “请为用户表设计一个 SQL 表结构,必须包含 id (主键, UUID), username (唯一, 字符串), password_hash (字符串), 和 created_at (时间戳) 四个字段。”
  2. 任务2 (后端 API): “请使用 Node.js 和 Express 框架,编写一个后端 API 端点 /api/login。它应该接收一个包含 usernamepassword 的 POST 请求。”
  3. 任务3 (后端逻辑): “请实现 /api/login 端点的核心逻辑:从数据库中根据 username 查询用户,使用 bcrypt 库比对密码哈希值。如果验证成功,生成一个包含 userId 的 JWT (JSON Web Token),并返回给客户端。”
  4. 任务4 (前端界面): “请使用 React 和 antd 组件库,创建一个包含用户名输入框、密码输入框和‘登录’按钮的前端登录表单组件。”

通过这种方式,我们将一个模糊的宏大目标,转化成了一系列具体、可执行、可验证的微观任务。你可以将这些子指令分步提供给 AI,每一步都进行验证和微调,最终稳健地完成整个项目。

3. 结构化指令与高级技巧

除了清晰性和分解任务,我们还可以使用一些高级技巧来进一步增强指令的精确性。

3.1. 要求 AI “逐步思考” (Step-by-Step Thinking)

这是最强大、最简单的元指令之一。在要求 AI 执行复杂任务之前,先让它“慢下来”,把自己的计划步骤写出来。这借鉴了认知科学中的“思维链 (Chain-of-Thought)”概念,能显著提高 AI 在推理、计算和复杂指令遵循上的准确性。

示例: “我需要你编写一个 Python 脚本,用于监控一个网站的在线状态。如果网站无法访问,就发送一封邮件通知我。

在你开始编写代码之前,请先用一个列表详细描述你的实现步骤。

AI 可能会这样回复:

好的,这是我的实现步骤:

  1. 导入 requests 库用于发送 HTTP 请求,以及 smtplibemail.message 库用于发送邮件。
  2. 定义一个函数 check_website(url),它会向目标 URL 发送一个 GET 请求。
  3. 在函数内部,使用 try...except 块来捕获可能发生的连接错误。
  4. 如果请求成功(状态码为 200),则打印网站在线的信息。
  5. 如果请求失败或状态码不是 200,则调用 send_alert_email() 函数。
  6. 定义 send_alert_email() 函数,它将配置 SMTP 服务器信息并发送一封预设内容的邮件。
  7. 使用一个循环和 time.sleep() 来定期执行 check_website() 函数。

这个计划清单不仅让你能预先评审 AI 的思路,也让 AI 自身的后续代码生成过程更有条理,更不容易出错。

3.2. 设置输出约束 (Output Constraints)

明确限制 AI 的输出格式、长度、风格等,是确保其结果直接可用的关键。

示例

  • 格式约束: “你的回答必须是一个符合 RFC 8259 标准的 JSON 对象。不要添加任何解释性文字。”
  • 长度约束: “请将以下文章总结为一段摘要,摘要的字数不能超过 200 字。”
  • 风格约束: “请使用 Markdown 的表格格式来对比这两个产品的优缺点。”

3.3. 提供示例 (Few-Shot Prompting)

对于需要特定格式或风格的输出,最高效的方法就是“身教”。在你的指令中提供一两个完整的“输入/输出”示例,AI 会迅速学习并模仿你的模式。

示例:情感分类 “你是一个情感分类机器人。根据用户评论,将其分为‘积极’、‘消极’或‘中性’三类。

示例 1:

  • 输入: “这款手机的电池续航太差了!”
  • 输出: 消极

示例 2:

  • 输入: “快递包装很完整。”
  • 输出: 中性

现在,请对以下输入进行分类:

  • 输入: “屏幕显示效果非常惊艳,拍照也很清晰!”
  • 输出:”

AI 会毫不犹豫地输出“积极”,因为它已经从你的示例中掌握了任务的本质和输出的要求。

4. 总结与练习

编写指令是一门艺术,也是一门科学。一个好的指令应该像一份优秀的需求文档,清晰、结构化且无歧义。

指令编写自查表

  • [ ] 是否足够清晰? 是否已经排除了所有可能的歧义?
  • [ ] 是否可分解? 对于复杂任务,是否已经将其分解为更小的步骤?
  • [ ] 是否包含输出约束? 是否明确了想要的输出格式、长度或风格?
  • [ ] 是否需要提供示例? 对于特定模式的任务,提供示例是否更高效?
  • [ ] 是否要求逐步思考? 对于需要推理的复杂任务,是否让 AI 先列出计划?

练习

模糊的业务需求: “我想提高我们电子商务网站的用户活跃度。”

请尝试将这个模糊的需求,分解为一组清晰、可执行的结构化指令,可以分别交给不同的 AI 专家角色(如数据分析师、营销策划、UI/UX 设计师)来执行。

I - 指令下达:编写清晰有效的任务 has loaded