Skip to main content

Prompt Engineering 技巧

提示工程(Prompt Engineering)是一门为 Roo Code 等 AI 模型编写高效指令的艺术。编写良好的提示能够带来更好的结果、更少的错误以及更高效的工作流程。


通用原则

  • 清晰且具体: 明确说明你希望 Roo Code 做什么。避免模糊不清。

    • 错误示例: 修复代码。
    • 正确示例: 修复 calculateTotal 函数中的 bug,该 bug 导致函数返回错误结果。
  • 提供上下文: 使用 上下文引用 来引用特定文件、文件夹或问题。

    • 正确示例: @/src/utils.ts 重构 calculateTotal 函数,改用 async/await。
  • 分解任务: 将复杂任务拆分为更小、定义明确的步骤。

  • 提供示例: 如果你有特定的编码风格或模式,提供示例。

  • 指定输出格式: 如果你需要输出为特定格式(例如 JSON、Markdown),在提示中明确说明。

  • 迭代优化: 如果初始结果不符合预期,不要害怕优化你的提示。


思考与执行

引导 Roo Code 经历“先思考后执行”的过程通常很有帮助:

  1. 分析: 要求 Roo Code 分析当前代码,识别问题或规划方法。
  2. 计划: 让 Roo Code 概述完成任务的步骤。
  3. 执行: 指示 Roo Code 逐步实施计划。
  4. 审查: 在继续之前仔细审查每一步的结果。

使用自定义指令

你可以提供自定义指令来进一步调整 Roo Code 的行为。自定义指令有两种类型:

  • 全局自定义指令: 适用于所有模式。
  • 模式特定自定义指令: 仅适用于特定模式(例如 Code、Architect、Ask、Debug 或自定义模式)。

自定义指令会被添加到系统提示中,为 AI 模型提供持续的指导。你可以使用这些指令来:

  • 强制执行编码风格指南。
  • 指定首选库或框架。
  • 定义项目特定约定。
  • 调整 Roo Code 的语气或个性。

详情请参阅 自定义指令 部分。


处理模糊性

如果你的请求模糊不清或缺乏足够细节,Roo Code 可能会:

  • 做出假设: 它可能基于最佳猜测继续执行,而这可能不是你的本意。
  • 提出跟进问题: 它可能使用 ask_followup_question 工具来澄清你的请求。

通常,最好从一开始就提供清晰具体的指令,以避免不必要的来回沟通。


提供反馈

如果 Roo Code 没有产生理想的结果,你可以通过以下方式提供反馈:

  • 拒绝操作: 当 Roo Code 提出你不想要的操作时,点击“拒绝”按钮。
  • 提供解释: 拒绝时,解释你为什么拒绝该操作。这有助于 Roo Code 从错误中学习。
  • 重新表述请求: 尝试重新措辞你的初始任务或提供更具体的指令。
  • 手动修正: 如果存在少量小问题,你也可以在接受更改之前直接修改代码。

示例

良好提示:

@/src/components/Button.tsx 重构 Button 组件,改用 useState hook 替代 useReducer hook。

糟糕提示:

修复按钮。

良好提示:

创建一个名为 utils.py 的新文件,添加一个名为 calculate_average 的函数,该函数接收一个数字列表并返回它们的平均值。

糟糕提示:

写一些 Python 代码。

良好提示:

@problems 解决当前文件中的所有错误和警告。

糟糕提示:

修复所有问题。

遵循这些技巧,你可以编写高效的提示,充分发挥 Roo Code 的能力。