MemoryLake
返回全部文章
Pain Point2026 年 5 月 22 日7 分钟阅读

为什么 Windsurf 会忘记我的架构决策?

两周前,你和 Cascade 确定了数据层:在 Prisma 上使用 Drizzle,适合边缘运行时,不使用 ORM 侧连接,使用原始 SQL 进行分析查询。你在一次长聊天中记录了原因。今天你打开一个新的 Cascade 会话以添加一个新的端点,而 Cascade 随意建议编写一个带有连接包含的 Prisma 模式。

这个决策在你的脑海中,在你的代码库中,以及在过去两周的聊天记录中。但它不在 Cascade 的记忆中。原因如下。

简短回答

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

  1. 创建项目并加载你的决策历史。 登录 MemoryLake,打开项目管理,点击创建项目,并以你的仓库命名(例如,“acme-platform — ADRs”)。通过文档驱动上传你的 /docs/adr/、RFC 文件夹和导出的 Cascade 聊天(支持 PDF、Markdown、Word、Excel、图像)。在记忆选项卡中添加关键决策的简短摘要,以便快速检索。
  2. 生成 MCP 服务器端点。 在项目中打开 MCP 服务器选项卡,点击添加 MCP 服务器,命名为“Windsurf 集成”,然后点击生成。MemoryLake 返回一个 API 密钥 ID、密钥和端点 URL。立即复制密钥——它只显示一次。
  3. 将服务器添加到 Cascade 的 MCP 配置中。 在 Windsurf 中,打开设置 → Cascade → 管理 MCP → 查看原始配置,然后添加一个 memorylake 条目,包含端点 URL 和你的 Bearer 令牌。保存并重启 Cascade。Cascade 现在有一个 memorylake 工具,可以在编写架构形状代码之前查找决策历史。

常见问题

Windsurf 是否记住跨会话的架构决策?

Windsurf 的 Cascade 没有内置的跨会话记忆,无法保存过去聊天的内容。.windsurfrules 在会话之间存活,但对于完整的 ADR 来说太小。Cascade Memories 是短笔记,而不是设计文档。过去的聊天记录保留在侧边栏中,代理无法读取。

我如何让 Cascade 记住我们的架构决策?

通过 Windsurf 的本地 MCP 支持将 Cascade 连接到外部记忆层,如 MemoryLake。将你的 ADR、RFC 和过去的设计讨论加载到项目中;然后 Cascade 可以在编写新的架构形状代码之前检索相关决策。

为什么 Cascade 不断建议我们已经拒绝的选项?

因为拒绝的理由存在于旧聊天中或在被总结掉的段落中。没有可检索的理由记忆,Cascade 会根据通用最佳实践评估每个新请求,而不是你的具体决策日志。

我可以把 ADR 放在 .windsurfrules 中吗?

你可以在那里放一行摘要,但规则文件的实际上限约为 6,000 个字符,并与其他内容竞争上下文空间。完整的 ADR 及其理由、选项和后果应放在可检索的记忆中,而不是前置字符串中。

相同的 ADR 是否可以在 Cursor 或 Claude Code 中使用?

.windsurfrules 仅限于 Windsurf。MemoryLake 在模型中立的项目中存储 ADR,因此相同的决策日志可以在 Windsurf、Cursor、Claude Code、Claude Desktop、ChatGPT 和任何支持 MCP 或 REST 的工具中使用。