简短答案
Windsurf 忘记项目规则是因为 .windsurfrules 和 global_rules.md 是在每次聊天顶部注入的静态文本,两个文件的实际字符限制大约为 6,000 个字符,并且 Cascade 会自动总结长会话——这会将规则细节压缩成一行重述。可检索的项目记忆使规则在每次回合中都能得到执行。
Windsurf 忘记项目规则的原因
Cascade 确实尝试遵循您的规则。有三个机制在悄悄破坏它:
1. 规则是前缀,而不是主动记忆。 .windsurfrules 和 global_rules.md 被添加到您的提示前面。Cascade 在会话开始时读取它们一次。它们与您的代码和对话处于同一上下文窗口中,并且随着会话的增长,它们争夺空间。
2. 规则文件有限制。 Windsurf 记录了每个文件大约 6,000 个字符的实际限制,超过这个限制规则开始失效。结合工作区规则、全局规则以及一些团队使用的 AGENTS.md 约定,您可能在一次冲刺中就会达到上限。
3. 总结压缩规则细节。 Codeium 在其更新日志中承认,之前的 Cascade 总结过于激进,以至于丢失了重要的上下文。即使在改进之后,总结过程仍然是有损的。关于安全数据库操作的 12 行规则可能在总结后变成 "小心数据库"——这不是规则,而是一种感觉。
结果是:规则在一段时间内有效,逐渐漂移,并在最糟糕的时刻失效。
Windsurf 忘记项目规则时您失去的东西
一个无法坚持的规则比没有规则更糟——它给人一种虚假的安全感:
- 不安全的操作悄然通过。 在第 5 轮有效的 "绝不要触碰生产环境" 规则在第 40 轮悄然失效,当时 Cascade 正在进行重构,并提议执行您禁止的操作。
- 内部约定被抛弃。 "始终使用服务器操作进行变更" 在前 3 个文件中有效。到第 6 个文件时,Cascade 正在寻找一个旧的 API 路由模式,因为规则细节被总结掉了。
- 您每次会话都要重新声明相同的规则,永远如此。 一旦您忘记重新声明,Cascade 就会恢复到默认值。
Windsurf 的内置解决方法(以及每个方法的不足之处)
Windsurf 有三种原生机制来处理规则。每种机制都有帮助,但没有一种能够单独维持。
`.windsurfrules`(工作区)是每个代码库的规则文件。Cascade 每次会话都会加载它。它是静态的,有限制,并且与对话争夺上下文空间。长时间的会话会压缩它。
`global_rules.md`(跨工作区)存在于您的 Windsurf 配置中,并适用于所有地方。形状相同,限制相同,压缩问题相同。
Cascade Memories 在聊天过程中自动生成短的工作区范围内的笔记。对 "记住用户运行 pnpm test" 有用。对跨多行或包含示例的细致项目规则则不太有用。
您可以阅读官方的 Cascade Memories 文档 以获取完整的功能介绍。
对于少量稳定的规则,原生机制有效。对于每周演变的真实项目规则手册,它们则显得不足。
Windsurf 的内置记忆不足之处
项目规则存在于编辑器之上。"绝不要触碰生产环境" 规则适用于您在 Cascade、Cursor、Claude Code 或 ChatGPT 中的任何操作。.windsurfrules 不会传递到其中任何一个工具。每个工具都有自己的副本,这些副本会漂移,项目失去了单一的真实来源。
规则属于项目。记忆需要与项目一起存在,而不是与编辑器一起存在。
MemoryLake 如何修复 Windsurf 忘记项目规则的问题
MemoryLake 是一个跨模型的记忆层,通过 Cascade 的原生 MCP 支持连接到 Windsurf。您可以将完整的规则手册加载到项目中,而不是添加一个截断的规则字符串,Cascade 会在每次回合中检索相关规则。
- 规则作为可检索的记忆,而不是前缀字符串。 将您的完整规则手册——数据库安全、分支卫生、部署检查、命名、测试——加载到项目中。Cascade 在决策时提取相关规则,因此规则不必争夺上下文空间。
- 比原始提示多 10,000 倍的上下文。 MemoryLake 的检索引擎从数十亿个项目记忆的标记中读取,并在每次回合中呈现相关内容。再也没有 6,000 个字符的限制。
- 一个规则手册,适用于所有 AI 工具。 相同的规则适用于 Cursor、Claude Code、ChatGPT、Claude Desktop 和 Gemini。当规则更改一次时,它会在所有地方更改。
MemoryLake 在 LoCoMo 长上下文基准测试中得分 94.03%——截至 2026 年的最高已发布结果——具有毫秒级检索和 AES-256 端到端加密。
在 3 个步骤中将 MemoryLake 连接到 Windsurf
- 创建项目并加载您的规则手册。 登录 MemoryLake,打开项目管理,点击创建项目,并以您的代码库命名(例如,"acme-platform — 项目规则")。通过文档驱动上传您现有的
.windsurfrules、AGENTS.md、运行手册和安全文档(支持 PDF、Markdown、Word、Excel、图像)。在 Memories 标签中添加简短的命令性规则——每个记忆一个规则,有助于检索。 - 生成 MCP 服务器端点。 在项目内打开 MCP 服务器标签,点击添加 MCP 服务器,命名为 "Windsurf 集成",然后点击生成。MemoryLake 返回一个 API 密钥 ID、密钥和端点 URL。立即复制密钥——它只显示一次。
- 将服务器添加到 Cascade 的 MCP 配置中。 在 Windsurf 中,打开设置 → Cascade → 管理 MCP → 查看原始配置,然后添加一个
memorylake条目,包含端点 URL 和您的 Bearer 令牌。保存并重启 Cascade。Cascade 现在有一个memorylake工具,可以在即将采取风险操作时调用以获取适用的规则。