Prompt Engineering 技巧
提示工程(Prompt Engineering)是一门为 Roo Code 等 AI 模型编写高效指令的艺术。编写良好的提示能够带来更好的结果、更少的错误以及更高效的工作流程。
通用原则
-
清晰且具体: 明确说明你希望 Roo Code 做什么。避免模糊不清。
- 错误示例: 修复代码。
- 正确示例: 修复
calculateTotal函数中的 bug,该 bug 导致函数返回错误结果。
-
提供上下文: 使用 上下文引用 来引用特定文件、文件夹或问题。
- 正确示例:
@/src/utils.ts重构calculateTotal函数,改用 async/await。
- 正确示例:
-
分解任务: 将复杂任务拆分为更小、定义明确的步骤。
-
提供示例: 如果你有特定的编码风格或模式,提供示例。
-
指定输出格式: 如果你需要输出为特定格式(例如 JSON、Markdown),在提示中明确说明。
-
迭代优化: 如果初始结果不符合预期,不要害怕优化你的提示。
思考与执行
引导 Roo Code 经历“先思考后执行”的过程通常很有帮助:
- 分析: 要求 Roo Code 分析当前代码,识别问题或规划方法。
- 计划: 让 Roo Code 概述完成任务的步骤。
- 执行: 指示 Roo Code 逐步实施计划。
- 审查: 在继续之前仔细审查每一步的结果。
使用自定义指令
你可以提供自定义指令来进一步调整 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组件,改用useStatehook 替代useReducerhook。
糟糕提示:
修复按钮。
良好提示:
创建一个名为
utils.py的新文件,添加一个名为calculate_average的函数,该函数接收一个数字列表并返回它们的平均值。
糟糕提示:
写一些 Python 代码。
良好提示:
@problems解决当前文件中的所有错误和警告。
糟糕提示:
修复所有问题。
遵循这些技巧,你可以编写高效的提示,充分发挥 Roo Code 的能力。