> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 提示工程

> 为 Windsurf 获取高质量代码而编写有效提示的最佳实践，包括明确目标、上下文与约束。

如果你在阅读这篇文档，说明你可能已经了解了一些 LLM 的使用场景与局限。为 AI 模型提供更好的提示与上下文，通常会获得更理想的结果。

同样在 Windsurf 中，也有一套最佳实践，帮助你撰写更高效的提示，充分发挥工具价值，生成尽可能高质量的代码，从而加速你的工作流程。

<Tip>对于可能需要 [@-Mention](/zh/chat/overview/#mentions) 指定代码块的复杂任务，请使用 [Chat](/zh/chat/overview) 而非 [Command](/zh/command/plugins-overview)。</Tip>

<div id="components-of-a-high-quality-prompt">
  ## 高质量提示的组成部分
</div>

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

<div id="examples">
  ## 示例
</div>

***示例一：***

* **差**：为 Order Book 对象的所有测试用例编写单元测试。

* **好**：使用 `@class:unit-testing-module` 为 `@func:src-order-book-add` 编写单元测试，用于验证在价格高于或低于止损位时抛出异常的情况。

***示例二：***:

* **差**：重构 rawDataTransform。

* **好**：通过将 while 循环改为 for 循环，并使用与 `@func:otherDataTransformer` 相同的数据结构输出的方式来重构 `@func:rawDataTransform`。

***示例三：***:

* **差**：为联系表单创建一个新的 Button。

* **好**：使用 `@repo:frontend-components` 中的样式指南为 `@class:ContactForm` 创建一个新的 Button 组件，按钮文案为 “Continue”。
