如果你在阅读这篇文档,说明你可能已经了解了一些 LLM 的使用场景与局限。为 AI 模型提供更好的提示与上下文,通常会获得更理想的结果。 同样在 Windsurf 中,也有一套最佳实践,帮助你撰写更高效的提示,充分发挥工具价值,生成尽可能高质量的代码,从而加速你的工作流程。
对于可能需要 @-Mention 指定代码块的复杂任务,请使用 Chat 而非 Command

高质量提示的组成部分

  • 明确的目标或预期结果
    • 你希望 AI 模型生成什么?
    • 你是在要一份计划、新代码,还是进行重构?
  • 完成任务所需的全部相关上下文
    • 你是否正确使用了 @ 提及,确保包含了所需的上下文?
    • 是否有任何仅针对某客户的上下文,可能对 Windsurf 来说不够清晰?
  • 必要的约束条件
    • 是否有必须使用的特定框架、库或编程语言?
    • 是否有时间或空间复杂度方面的约束?
    • 是否有任何安全方面的考量?

示例

示例 #1:
  • 不佳:为 Order Book 对象的所有测试用例编写单元测试。
  • 良好:使用 @class:unit-testing-module@func:src-order-book-add 编写单元测试,验证当价格高于或低于止损位时抛出的异常
示例 #2:
  • 不佳:重构 rawDataTransform。
  • 良好:将 @func:rawDataTransform 的 while 循环改为 for 循环,并使其输出的数据结构与 @func:otherDataTransformer 保持一致
示例 #3:
  • 不佳:为 Contact Form 创建一个新的 Button。
  • 良好:为 @class:ContactForm 创建一个新的 Button 组件,遵循 @repo:frontend-components 中的样式指南,按钮文案为“Continue”