简短回答
Devin 忘记你的任务上下文是因为每个 Devin 会话都是一个自主运行,拥有自己的沙盒、浏览器和对话,而 Cognition 默认情况下不会在会话之间持久化结构化的项目记忆。知识条目在全局范围内有帮助,而不是按项目。解决方案是为 Devin 的工作流附加一个按项目划分的记忆层,以便在会话开始时通过 REST 提取。
为什么 Devin 会忘记任务上下文
Devin 是 Cognition 的自主工程代理。它在一个受管理的环境中进行计划、编码、运行测试并反馈。三个设计选择将任务上下文推向下一个会话:
1. 会话是自包含的自主运行。 每个 Devin 会话启动一个沙盒,执行一个计划,然后关闭。代理的工作记忆中保存的状态在会话结束时消失。下一个会话启动一个新的沙盒和新的对话。
2. 知识条目是全局的,而不是项目范围的。 Devin 的知识功能允许你给代理提供持久的事实(“使用 pnpm”,“这个仓库更喜欢制表符”),但这些是账户级的指导,而不是项目日志,记录了尝试过的内容、有效的内容以及为什么放弃某条路径。
3. 多天项目依赖于人类重新简报。 当你在第三天接手一个项目时,通常会粘贴一个摘要、链接一个 PR 或指向 Devin 一个文档。代理不会记住自己之前的推理。Cognition 的会话模型在官方 Devin 文档中有记录,地址是 docs.devin.ai。
结果是:每个 Devin 运行在你框定的任务上很清晰,但对周围的项目却是陌生的。
当 Devin 忘记任务上下文时你会失去什么
每个新会话都需要重新定位的成本,而在多天工作中,这个成本会累积:
- 重新提问。 “我们使用什么数据库?认证方案是什么?为什么这个模块以这种方式抽象?”—— Devin 昨天问过的问题,今天又会出现。
- 撤回的决定。 Devin 在第一次会话中排除的方法在第三次会话中悄然浮现,因为推理从未持久化。
- 丢失的测试结果。 “我们看到
e2e/checkout.spec.ts因为种子数据排序而不稳定”是来自先前会话的发现,你必须手动将其重新固定到下一个会话中。
解决方案不是“写更长的任务简报”——而是给 Devin 一个项目记忆,让它在每个会话开始时可以提取。
Devin 的内置解决方法
Cognition 已推出三项功能,部分解决持久性问题。它们都不是项目记忆。
知识 存储事实和片段,Devin 会在会话之间提取。非常适合稳定的规则(“使用 Vitest,而不是 Jest”)。对于不断变化的项目状态则不太有用,因为知识是全局的,而不是固定在特定项目上,并且你需要手动维护。
仓库和机器设置脚本 让你预配置环境,以便 Devin 不会在每个会话中重新安装所有内容。它们处理基础设施,而不是推理。
链接先前的会话和 PR 让你在新的简报中引用过去的工作。虽然有用,但你需要进行链接,Devin 不会自动将先前会话的推理读入其计划——它只会读取你指向的内容。
Devin 的内置记忆的不足之处
更深层次的问题是,真实项目的任务上下文跨越会话、机器和团队成员。知识条目处理“始终做 X”。它们不处理“昨天的会话因这三个原因决定了 Y”。多天、多工程师的项目需要一个共享的项目日志,任何会话——无论是 Devin 还是其他——都可以读取。
项目记忆需要在代理运行之上存在。
MemoryLake 如何修复 Devin 忘记任务上下文
MemoryLake 是一个跨模型的记忆层,Devin 可以在会话开始时通过 REST 读取。你不再需要在每次运行时重新简报,而是为项目提供自己的记忆,让 Devin 在规划之前提取所需内容。
- 按项目的会话日志。 每个 Devin 会话的决策、死胡同和测试结果可以总结为固定在项目上的记忆。下一个会话从检索到的相关片段开始。
- 跨人类和代理的单一真实来源。 你的团队在 Cursor、Claude Code 或 ChatGPT 中使用的相同项目记忆是 Devin 读取的记忆。无需在三个工具中进行平行简报。
- 原始提示的 10,000 倍检索范围。 MemoryLake 从数十亿个项目记忆中读取,并仅返回与此运行相关的内容,因此 Devin 的上下文窗口用于规划,而不是重新加载背景。
MemoryLake 在 LoCoMo 长上下文基准测试中得分 94.03%,是截至 2026 年的最高已发布结果,具有毫秒级检索和 AES-256 端到端加密。
在 3 个步骤中将 MemoryLake 连接到 Devin
- 创建项目并加载上下文。 登录 MemoryLake,打开项目管理,点击创建项目,并将其命名为“Devin — Q2 付款迁移”等。通过文档驱动上传你的简报、PRD、ADR 和先前会话的摘要。通过记忆选项卡添加结构化的“我们决定了什么以及为什么”的笔记,以便它们随项目一起传递。
- 生成 MCP 服务器端点。 在项目内打开 MCP 服务器选项卡,点击添加 MCP 服务器,命名为“Devin 集成”,然后点击生成。MemoryLake 返回一个 API 密钥 ID、密钥和端点 URL。立即复制 Bearer 令牌——它只显示一次。
- 通过 REST 连接 Devin。 Devin 通过其工作流设置与外部服务集成。添加一个设置步骤或会话前钩子,调用 MemoryLake REST 端点,使用你的 Bearer 令牌提取相关项目记忆,并在运行开始前将其写入 Devin 的任务简报或知识中。每个会话现在都以项目的历史记录已经加载的状态打开。