简短回答
Windsurf 忘记架构决策是因为 Cascade 没有持久的跨会话记忆,无法保存过去聊天的内容,而 .windsurfrules 文件太小(约 6,000 字符上限),无法容纳完整的 ADR 和理由。决策细节在旧会话中消失,在长会话中被压缩。可检索的项目记忆使得决策可以在每个聊天和每个工具中查询。
Windsurf 忘记架构决策的原因
架构决策是代码库中最高价值的上下文,而每个编辑器的本地记忆对此服务最差。三个 Cascade 机制导致了这种损失:
1. 没有跨会话的聊天内容记忆。 Cascade Memories 捕获短期工作区范围的笔记。它并不设计用于存储 90 条消息设计讨论的完整推理链。当你打开一个新的聊天时,每个决策背后的原因都在聊天侧边栏中——你可以阅读,但代理看不见。
2. 规则文件太小,无法容纳 ADR。 一个真正的 ADR 需要上下文、考虑的选项、决策、后果和后续行动。将半打这样的内容塞入 6,000 字符的 .windsurfrules 中并不现实。大多数团队放弃了,只写一行:“使用 Drizzle”。这一行得以保存,而理由却没有,因此 Cascade 不断重新提出被拒绝的选项。
3. 会话内总结压缩了原因。 Codeium 已经记录了 Cascade 的总结器的改进,因为早期版本丢失了重要的上下文。即使现在,总结也是有损的。推理被改写成一句简短的句子,而 Cascade 失去了背后的约束。
Windsurf 忘记架构决策时你会失去什么
失去的理由是最昂贵的上下文损失:
- 被拒绝的选项复活。 Prisma 已经被评估并拒绝。没有理由,Cascade 再次提出它——如果没有你的反对,一个初级开发者或不那么怀疑的审阅者可能会接受它。
- 每个冲刺都重新审理决策。 “我们使用 Redis 吗?”在三月时已经回答。没有可检索的记录,它在五月被重新询问,你浪费了一次会话重新决定。
- 新代码默默违反旧决策。 “所有支付通过 Stripe Checkout,绝不使用原始 API”曾经被决定。下一个功能使用原始 API,因为约束没有传达到代理。
Windsurf 的内置解决方法(以及每个方法的不足)
Windsurf 有三个相关机制。没有一个是为 ADR 规模的内容而构建的。
`.windsurfrules` 可以保存关于你的技术栈的一些简短说明。由于实际字符上限以及 Cascade 在会话增长时总结加载的规则,它无法保存完整的 ADR。
Cascade Memories 在聊天期间自动生成短笔记。对“用户更喜欢小 PR”有用。对“我们选择 Drizzle 而不是 Prisma,因为这五个约束按此顺序”则无用。
工作流 可以编写可重复的程序。不是记忆功能;不会提供帮助。
你可以阅读官方的 Cascade Memories 文档 以获取完整的功能介绍。
对于微小的偏好,本地功能有效。对于你团队的架构理由,它们并不适合这个工作。
Windsurf 的内置记忆不足之处
架构决策不是编辑器范围内的。它们是项目范围内的,通常是组织范围内的。“我们选择 Drizzle”的决策适用于你在 Cascade、Cursor、Claude Code、ChatGPT 或代码审查工具中。Windsurf 的本地功能没有一个能够超越 Windsurf,而 /docs/adr/ 文件夹中的 ADR 只有在每个工具中的每个代理都能找到并使用时才有用。
记忆需要跟随项目,而不是编辑器。
MemoryLake 如何修复 Windsurf 忘记架构决策
MemoryLake 是一个跨模型的记忆层,通过 Cascade 的本地 MCP 支持连接到 Windsurf。你可以将 ADR 文件夹和设计讨论加载到项目中,而不是试图将 ADR 塞入规则文件,Cascade 会在每次转弯时检索相关决策。
- ADR 作为一流的记忆。 将你的
/docs/adr/文件夹、RFC 和过去的设计讨论放入项目中。当 Cascade 即将构建数据层时,它可以提取“ADR-014:ORM 选择”,并查看完整的理由,而不是一行。 - 比原始提示多 10,000 倍的上下文。 MemoryLake 的检索引擎从数十亿个项目记忆的标记中读取,并在每次转弯时返回相关的 ADR。没有规则文件上限,没有总结漂移。
- 跨每个 AI 的一个决策日志。 相同的 ADR 在 Cursor、Claude Code、ChatGPT、Claude Desktop 和 Gemini 中可见。新的开发者打开任何工具时,看到的都是相同的决策和原因。
MemoryLake 还提供 Git 风格的记忆版本控制,因此当一个 ADR 被取代时,你会得到差异和历史——而不是静默覆盖。它在 LoCoMo 长上下文基准测试中得分 94.03%,是截至 2026 年的最高已发布结果,具有毫秒级检索和 AES-256 端到端加密。
在 3 个步骤中将 MemoryLake 连接到 Windsurf
- 创建项目并加载你的决策历史。 登录 MemoryLake,打开项目管理,点击创建项目,并以你的仓库命名(例如,“acme-platform — ADRs”)。通过文档驱动上传你的
/docs/adr/、RFC 文件夹和导出的 Cascade 聊天(支持 PDF、Markdown、Word、Excel、图像)。在记忆选项卡中添加关键决策的简短摘要,以便快速检索。 - 生成 MCP 服务器端点。 在项目中打开 MCP 服务器选项卡,点击添加 MCP 服务器,命名为“Windsurf 集成”,然后点击生成。MemoryLake 返回一个 API 密钥 ID、密钥和端点 URL。立即复制密钥——它只显示一次。
- 将服务器添加到 Cascade 的 MCP 配置中。 在 Windsurf 中,打开设置 → Cascade → 管理 MCP → 查看原始配置,然后添加一个
memorylake条目,包含端点 URL 和你的 Bearer 令牌。保存并重启 Cascade。Cascade 现在有一个memorylake工具,可以在编写架构形状代码之前查找决策历史。