AREX Feed Article
Cognition 为 Devin 上线跨会话记忆与 Dreaming,并开源 Agent Memory Repo 规范
10 月 5 日(UTC),Devin 的开发方 Cognition 在和 上同时宣布 Memory 与 Dreaming 两项能力。按帖文的口径,Memory 让 Devin 跨会话(session)建立一张关于「你喜欢怎么工作」的记忆图谱;Dreaming 则在夜间运行,自我改进这些记忆。
与功能一起公开的还有实现它的规范。Cognition 称他们把构建 Devin 记忆系统所用的标准开源,命名为 Agent Memory Repo,并在里说明:记忆记录存在文件里、用 Git 做版本管理,这个简单的原语能支持跨会话的留言板这类用法。已经上线,采用 MIT 许可证,其他 agent 项目可以照这套格式实现自己的记忆。
每条记忆是一个文件,带着它来自哪次会话
按 Cognition 的博客,Devin 的记忆存放在一个叫 Memory Drive 的持久 Git 仓库里,内容是 markdown 文件。笔记可以按代码仓库、项目或主题分目录,根目录放一份简短的 MEMORY.md,装着通用偏好和其他文件的索引。会话开始时,Devin 只把 MEMORY.md 作为上下文拿到手,其余笔记用它平时翻代码的同一套工具去检索和读取,不必把整个记忆库塞进 prompt。
公开规范里,一条记忆是 markdown 里的一行 bullet,行尾可选地带上 [source: …; added: …] 这样的元数据,注明它来自哪次会话、哪天写入;文件之间用 [[path]] 交叉链接。规范页面说,记忆相互链接之后,agent 可以「像翻 wiki 一样」在里面导航。每个会话的动作固定为四步:克隆最新记忆;按当前任务检索,或顺着链接往下走;边做边更新条目,不经过人;每次修改后 push。
并发写入也有具体规则。每个会话用自己的一份 Git checkout,编辑后提交、合并其他会话的更新,再写回持久仓库;如果同步期间另一个会话已经写入,版本检查会拒绝这次过期写入,让 Devin 重试;真正的冲突不会被静默覆盖,而是被抛出来解决。
Dreaming 每天夜里过一遍记忆索引
帖文把 Dreaming 概括为夜间的自我改进:移除过时记录,发现潜在信息。博客里的描述更具体:Dreaming 是一个每天运行的后台会话,把过去的对话和已有记忆放在一起重看,目标是改进记忆索引。一次 dreaming 会合并内容重叠的笔记、删掉临时性细节、补记当时没有写下来的有用经验,并删除「没有被任何会话再用过」的记忆记录;整理之后,来源引用和用户明确表达过的偏好会被保留。
规范页面把 Dreaming 定义为周期性运行的专用 agent,只有两项职责:添加新记忆,即跨会话找模式并写成新条目;清理记忆,即合并重复、删除过时条目、核对来源以解决矛盾。
用户能看到结果:在 devin.ai 的 Customize → Memory 下浏览 Devin 记住了什么,并查看最近的 dreaming 会话。
开源的部分:一个 MIT 仓库和 5 个 PR
GitHub 上的 AgentMemoryRepo/agentmemoryrepo 创建于 10 月 4 日 22:10(UTC),比公告发布早约 19 个半小时;截至抓取时,仓库有 11 次提交、5 个 pull request(PR),采用 MIT 许可证。5 个 PR 全部由账号 Adhyyan1252 提出,来源分支名以 devin/ 开头,前四个已经合并,最新一个标题为 “Sync README and SPEC.md with cognition.com/agent-memory-repo”的 #5 仍是 open 状态,说明仓库文档与官网页面当时还没有对齐()。仓库的提交记录里出现过作者邮箱 。
规范页面给出的用法有四种:个人记忆,记住用户的上下文,比如他和谁一起工作、项目之间怎么关联;agent 群,并行工作的多个 agent 把发现写进同一个仓库,Git 负责合并并标出冲突;团队记忆,尤其适合没有代码仓库的团队,一名成员在客服调查里学到的经验会变得对所有 agent 可用;多人场景,记忆本身是文件夹,新用户加入会话时,他的记忆仓库可以被克隆到同一台机器上,仓库之间保持独立。
Cognition 在里说,早期实验中他们看到过一群 Devin 把记忆当作协调媒介、在没有人提示的情况下大规模协作。
可以自己试的部分,和试用路径不含的部分
规范给了一条不依赖 Devin 的试用路径。README 里的安装命令是 npx skills add AgentMemoryRepo/agentmemoryrepo --skill agent-memory-repo,在 Devin 里则以插件安装:devin plugins install AgentMemoryRepo/agentmemoryrepo。用法是两个会话对照:先在第一个会话里教它一条偏好,官方示例是「摘要用简洁的要点」,再开一个新会话,看它能不能从仓库里把这条偏好取回来。
官方同时写明了这条路径的边界:试用是本地的,不配置 remote;两个会话必须在同一台机器、同一份存储、同一个项目下进行;「自动启动和定时 Dreaming 不包含在内」,也就是说,试的是仓库格式和技能本身,不是 Devin 平台里那个每天跑的后台整理。记忆默认留在本地,除非自己接上一个私有仓库;换到新的云机器或另一台电脑,本地记忆仓库不在那里,需要先让 agent 克隆。
记忆属于个人,技能才是可复用的流程
Cognition 在博客里把记忆和技能分开说:技能记录的是可重复的流程,例如测试和发布一个变更的步骤;记忆记录的是 Devin 和你一起工作时学到的东西,例如你的技术栈偏好以及你给出的理由。两者都可以包含指令,但生命周期不同:技能是被刻意打包出来复用的,记忆则随着会话累积,由 Dreaming 重新整理。
归属上,Cognition 说记忆在组织内是「属于个人的」,不会变成整个组织的共享指令。
内部说法与外部追问:效果怎么衡量,删掉的记忆怎么算
Cognition 的 (其 X 简介自述为 Cognition 的 President, New Enterprise)在引用公告时说,人睡觉时大脑会强化学习成果、清掉占地方的东西,醒来后更容易取用记忆,他们把 Memory 和 Dreaming 做成了类似的东西,两项能力「今天已经可用」。
仓库的提交者 Adhyyan Sekhsaria,其 X 给出的是一段内部迭代的说法:过去几个月他们一直在调这套机制的细节,最初看到记忆反而让 Devin 的运行变差,因为存下来的经验过度泛化,「Dreaming 修掉了其中很大一部分」。
外部反馈里既有试用记录,也有追问。一位自述在 S&P Global 做认知工程与 AI 的开发者 说,他把 Claude Code 为一个项目留下的 19 条笔记(跨 10 天)整理成 Git 仓库,新的 Devin 会话取回了这些内容并跑了一次 dreaming,结果是 21 次提交,笔记从 19 条变成 14 条,重复的被合并、过时的被清掉,他贴出了录屏。X 简介自述在做 agent 记忆产品 Hindsight(Vectorize)的 问的是记忆效果如何衡量、团队里个人记忆和共享记忆怎么处理,并认为这套方案「对小型、单人开发的仓库看起来没问题」。也有人不认为这是新方向: 在回复里点名 Letta,要求为「sleep-time compute」的先行者记一笔。
John Rood 提了两个技术问题。一是两个 agent 可以把对同一个问题的相反答案写进不同文件,而 Git 会干净地合并,他说这种矛盾应该在另一个 agent 读到之前被拦住,而不是等下一次清理();二是如何阻止更早的会话把 Dreaming 删掉的记忆写回来,他建议给被删除的记录留 tombstone,因为「单纯一个文件消失,没法告诉 agent 我们是故意忘掉它的」()。