Deja Vu 编程智能体记忆无需云服务即可新增 SSH 同步
已更新:7月20日
Deja Vu 编程智能体记忆新增了 SSH 同步功能,无需通过托管记忆平台,即可将现有的本地会话日志转化为可移植的上下文。这个开源项目会索引 Claude Code、Codex 和 opencode 已写入的对话。其最新版本于 2026 年 7 月 14 日发布。
这一组合直接挑战了智能体记忆的主流模式。许多系统通过专用数据库、嵌入管道或云账户捕获新信息。Deja Vu 则会搜索开发者已经拥有的历史记录,并在需要时通过文件夹或 SSH 传输经过脱敏处理的记录。
这种差异非常重要,因为编程智能体会在会话边界丢失有用的推理过程。已修复的错误可能会保留在 Git 中,但被否决的方法、环境细节和架构权衡通常仍被困在旧对话里。Deja Vu 试图恢复这些细节,同时不要求开发者采用另一个托管存储库。
它的主张很有吸引力,但比“记忆”一词所暗示的范围更窄。该项目提供快速的词法检索和自动上下文注入。它并未声称能够理解不断变化的事实、调和矛盾,或判断过去的哪个结论如今仍然正确。
这种权衡构成了这则新闻的核心。Deja Vu 提供控制权、可移植性和较低的基础设施开销。作为交换,开发者获得的是面向搜索的记忆层,而不是自主知识系统。
Deja Vu 编程智能体记忆现可通过 SSH 传输
该版本将本地编程对话记录转化为可传输的记忆档案,同时让开发者掌控同步过程。
Claude Code、Codex 和 opencode 已经会在磁盘上记录对话和工具活动。Deja Vu 会发现这些存储位置、解析其中的内容、移除识别出的凭据,并构建本地倒排索引。倒排索引将词语映射到匹配的记录,从而无需语言模型即可实现快速文本检索。
该项目的源代码仓库介绍了一个无需数据库、后台服务或下载模型的单一二进制文件。Claude Code 的历史记录来自 JSONL 文件,而 Codex 会话和 opencode 的本地 SQLite 数据库则由各自独立的解析器处理。
这种方法使安装具备追溯能力。开发者不需要在有价值的对话发生之前运行 Deja Vu。安装完成后,它可以索引此前会话中累积的兼容日志。
命令行界面可跨受支持的智能体搜索这些历史记录。开发者可以搜索连接池故障、身份验证回归问题或被放弃的数据库迁移。Deja Vu 会返回匹配的摘录,并标明它们原本所属的运行框架和项目。
其 Model Context Protocol 服务器向智能体开放同一份档案。MCP 是一种标准接口,AI 应用可以通过它调用外部工具并检索数据。Deja Vu 提供一个用于获取简短片段的回忆工具,以及另一个用于生成精简会话摘要的工具。
自动回忆则更进一步。对于 Claude Code,可选的安装钩子会将近期项目记忆放入新会话的上下文中。项目方表示,这些内容为只读,大小上限为 2 KB,并且不会阻塞启动过程。
新的同步路径可在不同设备之间传输这些记忆。开发者可以将仅追加的 JSONL 批次导出到共享文件夹,然后在其他设备上导入尚未见过的批次。该文件夹可以位于 Syncthing、iCloud 或用户选择的其他文件传输工具中。
SSH 记忆同步不再需要共享文件夹。推送命令会导出新记录,将其复制到配置好的 SSH 主机,并在目标设备上导入。拉取选项则会从远程设备执行相应的检索操作。
Deja Vu 使用操作系统现有的 SSH 和 SCP 程序。远程设备也必须安装 Deja Vu 二进制文件。这种设计无需专有中继、新账户或持续运行的同步服务器。
导出操作使用水位标记跟踪进度。水位标记会记录同步操作已经推进到什么位置,使后续运行只需传输更新的批次。导入具有幂等性,这意味着重复执行同一次导入不应产生重复记录。
记录还会保留其来源,因此导入的会话不会在后续同步过程中无休止地来回传输。当新设备需要获取更早的历史记录,而此前的传输批次已经消失时,可以使用完整导出选项。
这不仅是一项便利功能。同步使 Deja Vu 从单台计算机上的搜索工具转变为跨工作站、笔记本电脑和远程开发主机的可移植记忆层。
为何现有会话日志正变得越来越有价值
Deja Vu 将编程对话记录视为不断积累的工程证据,而不是可以丢弃的聊天历史。
代码仓库会保存最终代码,但很少会保留这些代码背后的所有理由。提交信息或许会记录某项决策,但很多时候只会概述最终变更。问题跟踪器会捕获计划中的工作,但调试实验往往不会记录在其中。
智能体对话记录包含另一层证据。它们可能包括失败的命令、测试结果、相互竞争的实现方案、用户纠正以及对陌生模块的解释。它们还可能记录某个看似显而易见的解决方案为何被否决。
当后续任务与此前任务相似时,这些材料就会变得有用。新的智能体可以重新发现某次迁移曾在特定部署设置下失败。它还可能检索到缓存失效步骤存在的原因,而不是将其视为多余并删除。
随着开发者使用多个编程助手,这种需求也在增长。通过 Claude Code 找到的解决方案不会自动出现在后续的 Codex 会话中。即使每个会话都围绕同一个代码仓库展开,不同工具的历史记录仍会形成彼此隔离的信息孤岛。
Deja Vu 编程智能体记忆可跨三个此类孤岛进行搜索。目前支持 Claude Code、Codex CLI 和 opencode。Aider 和 Gemini CLI 出现在项目的计划集成列表中,而不是已支持列表中。
近期研究为这个问题提供了更广泛的背景。Anthropic 分析了大约 400,000 个记录于 2025 年 10 月至 2026 年 4 月之间的 Claude Code 会话。其编程智能体研究发现,用户通常负责大多数规划决策,而 Claude 则负责更多执行决策。
这种分工使会话历史格外值得关注。对话记录可以保留人类意图与机器执行之间的互动过程。最终补丁或孤立的提示词都不一定能捕捉完整路径。
学术研究也将持久记忆视为长期运行智能体的一项系统需求。2026 年 6 月的一项记忆系统研究描述了一种双层结构,其中包括持久化记忆,以及为当前任务组装的工作上下文。
Deja Vu 以一种刻意保持简单的方式契合这一结构。现有对话记录构成持久层。搜索结果或自动回忆则成为放入当前上下文窗口中的较小工作集。
该项目报告称,在维护者的语料库上,热搜索耗时为 7 至 9 毫秒。据称,该语料库包含超过 1,250 个会话和约 3.3 GB 的源日志。报告中的索引大小约占原始语料库的 2.4%。
这些数据是项目方的测量结果,而非独立基准测试。性能会因存储硬件、对话记录结构、查询模式和语料库规模而异。尽管如此,这项报告测试仍展示了 Deja Vu 旨在处理的工作负载。
其价值主张也取决于检索时机。如果智能体收到无关日志并因此分散对当前任务的注意力,那么记住一切并没有用。因此,Deja Vu 强调返回精简结果,而不是重放整个会话。
其 recall 工具将返回片段限制在 4 KB 以内。自动启动上下文则更小。开发者也可以请求一份高度匹配会话的摘要,而不是注入大量原始对话。
这种克制的模式类似于良好的个人知识管理。有效的记忆需要捕获、检索和上下文选择,而不仅仅是存储。对于智能体对话记录之外的技术文档,可搜索的知识库也遵循相同原则。
关键转变在于所有权。曾经看似应用程序残留物的会话文件,可以成为可重复利用的工程档案。Deja Vu 让这些档案变得可访问,而无需先将每次对话转化为精心整理的文档。
本地搜索挑战托管记忆路线
这场竞争的核心,是基于本地对话记录的检索,与通过自身基础设施捕获和处理信息的托管记忆服务之间的较量。
许多智能体记忆产品从写入路径开始。它们观察对话、提取候选事实、创建嵌入,并将结果存入数据库。之后,语义检索会选出与新请求相关的信息。
这种设计可以支持释义匹配和结构化记忆更新。它也可能带来新的运营依赖,包括模型提供商、向量数据库、后台处理程序或云同步服务。
Deja Vu 的起点不同。它将运行框架的对话记录视为事实来源,并构建派生的本地索引。无需单独的捕获集成在未来会话变得可搜索之前对其进行观察。
这是该项目最有力的思路反转。开发者可能已经拥有规模可观的记忆档案,只是尚未将其视作记忆。Deja Vu 的任务是让这些档案显现出来,而不是说服每个智能体向一个新平台写入数据。
本地方法也降低了切换阻力。开发者可以通过同一个界面查询 Claude Code 和 Codex 的记录。原始应用继续写入其常规文件,因此 Deja Vu 无需控制对话运行时。
其架构说明描述了解析器如何将规范化记录送入本地二进制索引。清单会跟踪每个源文件的状态,使后续索引运行能够增量处理发生变化的内容。
这种设计带来了实际好处。搜索可以离线进行。旧有推理是否仍可访问,不再取决于某项托管服务是否可用。开发者可以删除派生缓存,并根据原始对话记录重新构建。
SSH 记忆同步遵循同样的理念。Deja Vu 会创建经过脱敏处理的仅追加批次,而用户决定这些批次如何传输。该应用调用成熟的系统工具,而不是运行隐藏的网络服务。
这种差异对于使用远程开发设备的团队十分重要。开发者可能使用笔记本电脑进行规划、使用工作站进行本地构建,并使用 SSH 主机进行负载更重的测试。每台设备都可能积累项目历史的不同部分。
推送或拉取命令可以将这些部分合并到可搜索的本地索引中。远程连接仍通过常规 SSH 配置和访问控制清晰可见。组织可以应用现有的主机策略,而无需批准另一家同步服务供应商。
这条路线存在局限。SSH 解决了机器到机器的传输问题,但无法提供协作式管理。它缺少用于管理用户、撤销项目访问权限、审查组织范围保留策略或应用细粒度共享策略的托管控制台。
手动同步还可能导致各处数据的新鲜度不一致。如果用户忘记运行命令,一台机器的召回结果就会落后于另一台。Cron 可以自动执行传输,但计划任务也会带来自己的维护负担和故障模式。
语义检索是另一条分界线。Deja Vu 使用词法匹配,因此查询高度依赖源内容中是否出现相应词语。例如,搜索“凭据续期”可能无法找到只讨论“令牌轮换”的会话,除非两者之间还有其他共同词语相连。
基于向量的系统试图弥合这类措辞差异。它们将文本编码为数值表示,从而匹配相关含义。这类系统会引入额外的模型和基础设施,但当词汇发生变化时,语义召回的表现可能优于字面搜索。
Deja Vu 明确选择了更精简的机制。它在与功能更广泛的工具比较时,强调支持三种工具、纯词法搜索和极简设置。这让该二进制程序易于理解,但也限制了“召回”所能实现的能力。
因此,这并不是本地好、云端坏的比较,而是在运维控制与更丰富的记忆处理之间做出选择。一些开发者会偏爱透明的搜索索引,另一些则需要语义整合、团队控制或自动冲突处理。
Deja Vu 证明了仅凭开发者已有的文件就能构建出实用的基础方案,从而向托管记忆服务提供商施加了压力。这些提供商必须证明,其额外提供的智能和管理功能足以抵偿新增数据传输路径带来的代价。
密钥脱敏有所帮助,但记忆仍会扩大攻击面
即使移除了可识别的凭据,可搜索、可同步的对话记录档案仍会集中敏感的工程上下文。
编程对话格外敏感。其中可能包含源代码、本地文件路径、客户标识符、内部主机名、堆栈跟踪、部署详情以及特权系统的操作指令。某些会话还包含调试过程中复制的凭据。
Deja Vu 会先扫描内容中的多种凭据模式,再将记录放入索引。其文档所列的过滤范围包括 AWS 密钥、持有者令牌、原始 JSON Web Tokens、私钥块、服务提供商令牌,以及包含嵌入式用户名和密码的 URL。
匹配到的值会被替换为带类型的脱敏标记,同时周围文本仍可供搜索。共享和导出命令在生成可能离开当前机器的材料之前,会再次执行脱敏。
纵深防御是合理的,因为原始日志可能早于 Deja Vu 存在。否则,数月前进入对话记录的凭据可能会被转移到新索引及其每个同步副本中。
不过,模式匹配无法保证所有密钥都会消失。组织可能使用专有令牌格式、特殊连接字符串、会话 Cookie、恢复码,或看起来像普通文本的敏感值。脱敏规则会漏掉它无法识别的模式。
该项目没有声称原始日志会得到净化,这是正确的。凭据仍保留在最初记录它们的工具文件中。Deja Vu 只会从其派生的索引、摘要、共享内容和导出内容中移除可识别的值。
这一区别应当影响部署决策。删除 Deja Vu 缓存并不会抹除底层的 Claude Code、Codex 或 opencode 历史记录。团队需要为每个原始存储分别制定保留和删除策略。
SSH 保护的也是传输过程,而非所有端点。正确配置的加密连接可以防止轻易截获,但当目标账户、远程主机、备份或管理员遭到入侵后,它无法保护已经导出的记录。
仅追加同步会增加持久副本的数量。这有利于连续性,却也让删除变得更复杂。开发者删除敏感的本地记录后,仍须考虑更早的导出批次以及已经导入该记录的机器。
当前项目还缺少通过简单命令行标志排除项目的功能。其文档建议在排除功能推出前,将自定义源根目录指向过滤后的副本。这种权宜之计要求处理不同敏感级别项目的用户进行审慎配置。
自动召回还会引入另一种风险。早期会话的上下文可能在用户审查前就影响新的代理。旧对话记录可能包含错误假设、过时指令,或通过不可信来源引入的恶意内容。
持久记忆攻击正成为一个活跃的研究课题。2026 年 7 月一篇关于记忆注入的论文研究了对抗性指令如何在代理记忆中持续存在并影响后续行为。其研究场景与 Deja Vu 不同,但核心警示同样适用。
Deja Vu 不会根据任意内容生成新的语义记忆,这减少了一种静默转换的途径。然而,它可以检索并注入过去的对话记录文本,因此来源追踪和用户审查依然重要。
该项目的自动上下文是只读且有大小限制的。这些限制减少了暴露范围,却无法判断检索到的内容是否准确或安全。如果代理将一条简短的恶意指令视为可信指导,它仍可能造成危害。
因此,团队应将召回的文本视为证据,而非权威。代理可以利用旧会话定位测试、决策或失败的方案,但应根据当前代码仓库和运行环境验证其中的结论。
同样的原则也适用于共享摘要。脱敏会移除特定格式的密钥,但不会对业务敏感性进行分类。即使经过净化,记录仍可能泄露架构、客户问题或尚未发布的产品决策。
在采用 SSH 记忆同步之前,组织需要明确范围、保留、删除、远程访问和事件响应方面的问题。本地所有权从信任链中移除了一个供应商,却没有消除治理需求。
可搜索的历史记录不等于可靠的记忆
Deja Vu 可以检索代理过去说过的内容,但无法判断这些说法现在是否仍然正确。
编程对话记录是过程记录,而非经过验证的知识库。代理会犯错,用户会改变方向,依赖项会演进,临时解决方案也可能在其前提失效后继续存在。搜索可能呈现其中任何一种状态。
设想某次会话建议禁用一个失败的集成测试。底层服务修复后,后续会话仍可能检索到这条建议。旧答案与查询措辞相关,但对于当前代码仓库而言却是错误的。
矛盾也会造成类似问题。一份对话记录可能将 PostgreSQL 描述为选定的部署数据库,另一份则可能记录后来迁移到了其他系统。词法检索可能同时返回两者,却无法判断哪个决策取代了另一个。
研究越来越倾向于将记忆维护与存储、检索分别看待。2026 年 5 月一篇探讨记忆是否是数据库的论文强调,修订、遗忘和演进状态是长期代理记忆的独立要求。
Deja Vu 并未尝试实现这些功能。其仅追加模型会保存历史,搜索层则负责查找匹配材料,而解释工作留给当前代理和开发者。
对于一个小型实用工具而言,这种限制是合理的。自动提取事实可能会把推测性对话转化为确定性记忆,从而引入更隐蔽的错误。保留可见的原始摘录能够留下更多来源信息,也让不确定性更容易检查。
不过,用户不应将透明度与正确性混为一谈。检索到的会话可以显示某件事是在何时讨论的,以及由哪个工具生成,但无法证明相关结论已经过测试、合并、部署,或现在仍然适用。
该项目的性能数据衡量的是搜索速度,而非答案质量。只有当正确证据出现在结果前列时,7 毫秒的结果才有价值。目前尚无已发布的独立评估能够证明 Deja Vu 在真实开发任务中的召回准确率。
当开发者记得具有辨识度的词语时,词法搜索效果最佳。错误消息、函数名、问题标识符和配置键都能提供有力的检索锚点。宽泛的概念查询则更困难,因为早期会话可能使用不同的词汇。
跨工具规范化还带来了另一项挑战。Claude Code、Codex 和 opencode 对消息和工具活动的表示方式不同。统一索引必须消除噪声,同时保留那些能让后续结果发挥作用的细节。
Deja Vu 会从共享摘要中移除工具噪声,但开发者仍需判断其默认呈现方式是否保留了足够的诊断上下文。如果缺少运行环境、工作目录或此前变更的信息,一次命令失败可能会产生误导。
自动启动召回还依赖项目识别。远程副本会显示在导入的项目标签下。如果代码仓库被克隆到不同路径或随时间更名,相关历史记录可能会变得零散,除非工具能够一致地映射它们。
这些问题都不意味着该项目没有帮助,而是明确了它的实际角色。Deja Vu 更接近可搜索的组织记忆,而不是会自我更新的项目事实模型。
团队可以通过将召回与验证结合来提高可靠性。代理应引用检索到的会话、检查当前代码、重新运行相关测试,并在早期结果与当前证据冲突时予以说明。
重要决策仍应写入持久的项目文档。与非正式对话相比,架构决策记录、问题或经过审查的技术说明更容易治理。对话记录召回最适合作为返回证据的路径,而非知识的最终归宿。
构建更广泛上下文系统的开发者也可以应用同样的区分。当捕获的材料保持可追溯,并且用户能够提炼哪些内容值得获得长期权威性时,个人知识系统会更加可靠。
Deja Vu 的克制既是弱点也是优势。它不会替开发者消除歧义,也不会假装旧的模型回复会自动成为事实。
三个信号将决定 SSH 记忆同步是否重要
下一项考验不是 Deja Vu 能否移动记录,而是开发者是否足够信任这些记录,以至于在真实编程工作中使用它们。
第一个信号是独立检索测试。维护者已经公布了延迟、索引大小和索引构建时间的测量结果。用户仍需要看到它在不同代码仓库、命名惯例和多代理历史记录中的相关性证据。
有价值的实际使用报告应在具体任务中比较词法结果与语义替代方案。报告应跟踪召回的上下文是否避免了重复调试、减少了代码仓库探索,或引入了过时假设。单凭速度无法回答这些问题。
如果独立测试表明 Deja Vu 对错误消息、架构决策和重复发生的事件具有较高相关性,其精简设计将更具可信度。频繁遗漏同义改述或产生嘈杂结果,则会进一步证明使用嵌入和更丰富排序机制的必要性。
第二个信号是安全性和范围控制。项目排除已经是公认的功能缺口,而同步删除仍是仅追加模式面临的更广泛挑战。组织将关注过滤器、保留工具、审计信息,以及对远程副本更清晰的处理方式。
改进作用域控制将进一步强化本地优先的理念。开发者可以为普通项目建立索引,同时排除受监管的代码仓库、客户环境或机密实验。如果缺少这些控制措施,许多团队会将采用范围限制在个人设备上。
安全审查还应检查脱敏覆盖范围。文档中列出的模式提供了实用的基准,但自定义检测器和验证报告将使该功能更适合多样化的工程环境。
第三个信号是集成广度。Claude Code、Codex 和 opencode 是一组重要的起点,但开发者经常会在更多工具之间切换。计划中的 Aider 和 Gemini CLI 支持将检验解析器架构能否在扩展的同时保持稳健。
更多集成将使 Deja Vu 编码智能体记忆成为位于各个助手之上的中立层。这一定位具有重要的战略意义,因为智能体厂商正日益增加自己的本地或托管记忆功能。
Microsoft 最近发布的智能体记忆文档体现了这种竞争压力。VS Code 现在将本地用户记忆、代码仓库记忆和会话记忆与 GitHub 托管的 Copilot Memory 区分开来。厂商原生系统能够与自家界面进行深度集成。
Deja Vu 必须提供不同的优势。它无法在每款产品内部都比相应厂商实现更深入的集成,但可以保持跨产品的可移植性、开放现有历史记录,并让开发者控制同步。
开源许可证也为原始维护者未优先考虑的集成创造了机会。不过,每个新解析器仍意味着一项维护承诺。工具链的存储格式可能发生变化,而且不保证与第三方工具兼容。
因此,采用情况将取决于系统的韧性。开发者需要可预测的升级、可见的解析错误,以及源格式发生变化时的恢复路径。如果记忆工具悄无声息地遗漏最近的会话,就会制造虚假的信心。
该项目近期最适合的受众可能是已经熟悉终端和 SSH 的个人开发者或小型团队。这些用户经常跨本地和远程设备工作,了解文件权限,并且能够检查异常的搜索结果。
大型组织面临不同的考量。它们需要身份管理、留存策略执行、诉讼保全、离职管理和访问权限审查。Deja Vu 目前并未将自己定位为这样的管理层。
这并不意味着此次发布无足轻重。它为编码智能体记忆确立了一个可信的能力下限。现有日志、紧凑的本地索引、MCP 召回、脱敏以及普通 SSH,无需新的托管服务即可实现跨会话连续性。
更难的问题在于,这种连续性能否成为可靠的实践。智能体会在重复调查之前检查记忆吗?开发者会验证召回的结论吗?团队会将敏感项目排除在索引之外,并删除过时的导出数据吗?
未来三个月,应关注检索评估、安全控制和新的工具链集成。这些信号将共同表明,SSH 记忆同步是会继续作为实用的个人工具,还是会成为编码团队可以依赖的基础设施。
考虑使用 Deja Vu 的开发者应从一个范围有限的非敏感项目开始,并检查索引中包含的内容。在两台受控设备之间测试推送和拉取行为,然后将召回的会话与当前代码仓库进行比较。如果结果能够减少重复工作,同时不引入过时的指导,那么这种开源编码智能体记忆方案就值得开展更大范围的试用。



