Memories 是用于在对话中共享和持久化上下文的系统。

Windsurf 中有两种机制实现这一点:Memories,可以由 Cascade 自动生成;以及规则,由用户在本地和全局级别手动定义。

如何管理 Memories

可以通过点击 Cascade 右上角侧滑菜单中的 Customizations 图标,或点击右下角的“Windsurf - 设置”,随时访问和配置 Memories 和规则。要编辑现有 memory,只需点击进入并点击 Edit 按钮即可。

Memories

在对话过程中,如果 Cascade 遇到它认为有用的上下文,可以自动生成和存储 memories。

此外,您还可以随时要求 Cascade 创建 memory。只需提示 Cascade“为...创建 memory”即可。

Cascade 自动生成的 memories 与其创建时所在的 工作空间 相关联,当 Cascade 认为它们相关时会检索它们。在一个 工作空间 中生成的 memories 在另一个 工作空间 中不可用。

创建和使用自动生成的 memories 不消耗 点数

规则

用户可以明确定义 Cascade 应遵循的规则。

规则可以在全局级别或 工作空间 级别定义。

global_rules.md - 适用于所有 工作空间 的规则

.windsurf/rules - 工作空间 级别的仓库,包含与 globs 或自然语言描述关联的规则。

要开始使用规则,请点击 Cascade 右上角侧滑菜单中的 Customizations 图标,然后导航到 Rules 面板。在这里,您可以点击 + Global+ Workspace 按钮,分别在全局级别或 工作空间 级别创建新规则。

您可以在 https://windsurf.com/editor/directory 找到 Windsurf 团队精选的规则模板示例,以帮助您入门。

规则文件每个限制为 6000 个字符。任何超过 6000 个字符的内容将被截断,Cascade 将不会感知到它们。

如果您的全局规则和本地规则总字数超过 12,000 个字符,将优先考虑全局规则,其次是 工作空间 规则。任何超过 12,000 个字符的规则将被截断。

激活模式

在规则级别,您可以定义规则应如何为 Cascade 激活。

有 4 种模式

  1. 手动:此规则可以通过在 Cascade 输入框中使用 @mention 手动激活
  2. 始终开启:此规则将始终应用
  3. 模型决定:根据用户定义的规则的自然语言描述,模型决定是否应用该规则。
  4. Glob:根据用户定义的 glob 模式(例如 .js, src/**/.ts),此规则将应用于所有匹配该模式的文件。

最佳实践

为了帮助 Cascade 有效地遵循您的规则,请遵循以下最佳实践

  • 保持规则简单、简洁、具体。过长或模糊的规则可能会让 Cascade 困惑。
  • 无需添加通用规则(例如“编写好的代码”),因为这些内容已经内置在 Cascade 的训练数据中。
  • 使用项目符号、编号列表和 markdown 格式化您的规则。与长段落相比,Cascade 更容易遵循这些格式。例如
# Coding Guidelines 
- My project's programming language is python
- Use early returns when possible
- Always add documentation when creating new functions and classes
  • XML 标签可以有效地沟通和将相似规则分组在一起。例如
<coding_guidelines>
- My project's programming language is python
- Use early returns when possible
- Always add documentation when creating new functions and classes
</coding_guidelines>