Windsurf 的上下文引擎能深入理解您的代码库、过去的行动以及下一步意图。

历史上,代码生成方法侧重于在代码库上对大型语言模型 (LLM) 进行微调,这难以满足每个独立用户的需求。一种更近期、更流行的方法是利用检索增强生成 (RAG),该方法侧重于构建高度相关、上下文丰富的提示,以从 LLM 获取准确答案的技术。

我们实现了优化的 RAG 方法用于代码库上下文,这能产生更高质量的建议并减少幻觉。

Windsurf 为企业提供完整的微调服务,最佳解决方案是结合微调和 RAG。

默认上下文

开箱即用,Windsurf 会考虑多种相关的上下文来源。

  • 当前文件和 IDE 中打开的其他文件,这些文件通常与您当前正在编写的代码高度相关。
  • 然后对整个本地代码库进行索引(包括未打开的文件),并在您编写代码、提问或调用命令时,Windsurf 的检索引擎会获取相关的代码片段。
  • 对于专业版用户,我们提供扩展的上下文长度、增加的索引限制以及更高的自定义上下文和固定上下文项限制。
  • 对于团队版和企业版用户,Windsurf 还可以索引远程仓库。这对于开发组织跨多个仓库工作的公司非常有用。

知识库 (Beta)

仅适用于团队版和企业版客户。目前不适用于混合版客户。

此功能允许团队将 Google 文档作为整个团队的共享上下文或知识来源。

目前仅支持 Google 文档。图片不会导入,但图表、表格和格式化文本完全支持。

管理员必须通过 OAuth 手动连接 Google Drive,之后可以添加最多 50 个 Google 文档作为团队知识来源。

Cascade 将有权访问 Windsurf 控制面板中指定的文档。这些文档不遵守个人用户访问控制,这意味着如果管理员将某个文档提供给团队,所有用户都将有权访问它,无论 Google Drive 端的访问控制如何。

最佳实践

当您当前文件中的任务依赖于其他文件的信息时,上下文固定功能非常有用。尽量只固定您需要的内容。固定过多可能会减慢或对模型性能产生负面影响。

以下是一些有效上下文固定的建议

  • 模块定义:固定仓库中位于独立模块但与当前活动文件相关的类/结构体定义文件。
  • 内部框架/库:固定包含框架/库使用代码示例的目录。
  • 特定任务:固定定义特定接口的文件或文件夹(例如,.proto 文件、抽象类文件、配置模板)。
  • 当前重点区域:固定包含您当前编码会话所需大多数文件的目录。
  • 测试:固定您正在为其编写单元测试的特定类文件。

聊天相关上下文功能

与 Windsurf 聊天时,您可以通过多种方式利用代码库上下文,例如@-提及或自定义指南。更多信息请参见聊天页面

常见问题 (FAQ)

Windsurf 会索引我的代码库吗?

是的,Windsurf 会索引您的代码库。它还使用 LLM 在您的代码库上执行检索增强生成 (RAG),利用我们自己的 M-Query 技术。

索引性能和功能因您的工作流程和 Windsurf 计划而异。欲了解更多信息,请访问我们的 上下文感知页面