Windsurf 的上下文引擎能够深入理解你的代码库、历史操作以及后续意图。 传统的代码生成方法侧重于在代码库上对大型语言模型(LLM)进行微调, 但这难以为每位用户按需大规模推广。 更为新颖且流行的方法是利用检索增强生成(RAG), 通过构造高度相关、信息密集的上下文提示, 从 LLM 中引出更为准确的答案。 我们针对代码库上下文实现了经过优化的 RAG 方法, 可提供更高质量的建议并显著减少幻觉。
Windsurf 为企业提供完整的微调能力,而最佳方案 是将微调与 RAG 结合使用。

默认上下文

开箱即用,Windsurf 会综合考虑多种相关的上下文来源。
  • IDE 中当前文件以及其他已打开的文件,通常与您正在编写的代码高度相关。
  • 随后会为整个本地代码库建立索引(包括未打开的文件), 当您编写代码、提问或使用 Command 时,Windsurf 的检索引擎会提取相关代码片段。
  • 对于 Pro 用户,我们提供更长的上下文窗口、更高的索引上限,以及自定义上下文与固定上下文项的更高配额。
  • 对于 Teams 和 Enterprise 用户,Windsurf 还可为远程代码库建立索引。 这对在多个代码库间协同开发的公司团队非常有用。

知识库(测试版)

仅适用于 Teams 和 Enterprise 客户。目前不向混合部署(Hybrid)客户提供。
该功能允许团队将 Google 文档用作共享上下文或知识来源,供整个团队使用。 目前仅支持 Google 文档。不会导入图片,但图表、表格和格式化文本均可完整支持。

Knowledge Base

为你的团队配置知识库设置。仅在具备管理员权限时可见。
管理员需通过 OAuth 手动连接 Google 云端硬盘,随后可添加最多 50 个 Google 文档作为团队知识来源。 Cascade 将能够访问在 Windsurf 控制台中指定的文档。这些文档不受单个用户访问控制限制,也就是说,如果管理员将某个文档提供给团队,所有用户都可以访问它,而不受 Google 云端硬盘侧的访问控制约束。

最佳实践

当你当前文件中的任务依赖于其他文件的信息时,Context Pinning 非常有用。 尽量只固定必要内容。固定过多可能会降低或负面影响 AI 模型的性能。 以下是一些有效进行 Context Pinning 的建议:
  • 模块定义:固定位于仓库内、但与当前活动文件属于不同模块的 class/struct 定义文件。
  • 内部框架/库:固定包含如何使用相关框架/库的示例代码目录。
  • 特定任务:固定定义特定接口的文件或文件夹(例如 .proto 文件、抽象类文件、配置模板)。
  • 当前关注范围:固定包含当前编码会话所需大多数文件的“最小公共集合”目录。
  • 测试:固定包含你正在为其编写单元测试的类的具体文件。

Chat 专属的上下文功能

在与 Windsurf Chat 进行对话时,你可以通过多种方式利用代码库上下文, 如 @ 提及 或自定义指引。 更多信息请参见 Chat 页面

常见问题(FAQ)

Windsurf 会索引我的代码库吗?

会的,Windsurf 会索引你的代码库。它还会结合我们的 M-Query 技术,使用大语言模型(LLM)在你的代码库上执行检索增强生成(RAG)。 索引性能和功能会因你的工作流程和 Windsurf 套餐而异。更多信息,请访问我们的上下文感知页面