提示词工程技巧
提示词工程是为 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组件,使其使用useState钩子而不是useReducer钩子。
差的提示词:
修复按钮。
好的提示词:
创建一个名为
utils.py的新文件,并添加一个名为calculate_average的函数,该函数接受一个数字列表并返回它们的平均值。
差的提示词:
编写一些 Python 代码。
好的提示词:
@problems解决当前文件中的所有错误和警告。
差的提示词:
修复所有问题。
通过遵循这些技巧,你可以编写有效的提示词,从而最大限度地发挥 Roo Code 的能力。