你的AI编程伙伴每次打开都像被格式化了大脑。Claude Code、Cursor帮你写了几百行代码,聊了半小时架构,下一次会话它却一脸茫然地问“我们从哪开始”——这种事每天都在发生。一个叫deja-vu的开源内存项目今天在GitHub上火了起来,它做的事简单到让人拍大腿:给这些编程AI代理装上一个可通过SSH同步的持久记忆层,不绑任何云服务,代码全开,你自己说了算。
编程代理的健忘症,终于有人治了
没有记忆,何谈智能
我们管这些工具叫“代理”,好像它们真能独立干活。但一个连昨天自己修过哪个bug都记不住的代理,充其量是个高级自动补全。当前几乎所有编程AI代理都活在无状态的会话气泡里——会话一断,上下文清零。你不得不反复粘贴相同的项目背景、编码规范、架构决策记录,每次都在为同一个起点支付Token成本。问题不在模型能力,在记忆结构。从认知角度看,持久上下文不是锦上添花,是代理从“反应式工具”变成“协作伙伴”的先决条件。
云端记忆的枷锁
当然,已经有人在解决记忆问题。某些商业平台提供“记忆”功能,把你的偏好和项目知识存到它们的服务器上。听起来方便,代价却很清楚:你的代码习惯、项目结构、技术选型全部流向了某家公司的数据库。对于独立开发者和小型团队,这最多是个隐私别扭;对于企业环境,这直接撞上合规红线。而且云服务随时可能变更API、调整定价、甚至关停服务——你的代理的记忆命脉,捏在别人手里。这不是一个技术方案,这是一个商业枷锁。
一个极简主义的答案
deja-vu走了另一条路。它不定义新的存储协议,不强依赖向量数据库,也没有复杂的后台服务。它的核心设计是把编程AI智能体的会话记忆序列化后,通过SSH推送到你指定的任何一台服务器上,下一次会话时再拉取回来。SSH协议本身已经解决了认证、加密和传输可靠性,deja-vu只做一件事:把记忆数据变成可同步的、可审计的、你完全掌控的文件流。不需要注册账号,不需要接受任何第三方服务条款。你拥有记忆,正如你拥有代码仓库。
SSH管道里的记忆系统
为什么是SSH,而不是又一坨API
大多数开发者看到“SSH同步”的第一反应是:老派。但老派在这里恰恰是优势。SSH是互联网基础设施里最稳定、最广泛部署的安全通道之一,你不用再折腾OAuth令牌、Webhook回调、自定义加密层。deja-vu把每次会话产生的记忆增量打包,通过rsync式的逻辑同步到远程目录,同时维护一个轻量索引文件来追踪哪些上下文块属于哪个项目。这样,你在笔记本上跟代理聊完架构,合上盖,到台式机上打开终端,代理就能接着说——因为记忆已经通过SSH在那台服务器上等你。
开源集成,不用脱裤子放屁
项目代码完全开源,结构清晰得过分。它对外暴露的接口不是那种需要你读三天文档的抽象层,而是可以直插Claude Code、Cursor等工具的适配器。你只要把deja-vu挂载到代理会话的生命周期钩子上——会话开始拉取记忆,会话结束推送增量——整个过程几行配置就能跑起来。对于想深度定制的团队,这意味着你可以轻易地把记忆存储后端从SSH换成S3、本地文件系统甚至IPFS,而不用改动核心逻辑。开源的意义就在这:它给你的是一个可修改的“记忆基座”,不是又一个黑盒SaaS。
跨机器共享,比想象中更致命
多机协作场景被严重低估了。想象一下:你在公司台式机上让代理生成了一套数据库迁移脚本,回家后用笔记本继续开发,代理完全不知道下午发生了什么。deja-vu通过SSH同步直接把这段断层抹平——记忆跟着项目走,不跟着设备走。更进一步,一个小团队可以把记忆仓库指向同一台服务器,代理产生的技术决策、重构记录、待办事项天然变成了团队共享的上下文数据库。不是每个人都得跟代理重新建立默契,而是代理逐渐适应整个团队的工程文化。
一场关于控制权的微小革命
隐私不是口号,是架构选择
把AI工具链彻底本地化自托管,这件事喊了很多年。但在编程代理领域,真正的阻碍从来不是模型本身——本地模型越来越强——而是那些看不见的粘合层。记忆就是最重要的那块粘合层。deja-vu选择把自托管作为默认形态,不是给高阶用户留一个“你可以自行部署”的虚掩通道,而是整个产品逻辑就从你拥有基础设施这个前提展开。你的记忆文件存在哪里、保留多久、是否需要加密二次处理,全部留白给你来决定。这比任何隐私政策都实在。
团队记忆的雏形
当个人记忆变成团队记忆,改变的不只是开发效率。过去团队依赖Wiki、设计文档、ADR来传递意图,但这些静态文件永远滞后于代理实时产生的判断。如果代理每次探索解决方案时的权衡过程都被自动记录、同步、检索,那么新加入的开发者可以直接向代理提问:“上个月我们为什么放弃方案B?”并且得到基于真实上下文的回答。这不是搜索引擎,是工程决策的时间机器。deja-vu现在提供的是管道,但管道的另一头,连接着这种令人兴奋的可能性。
迈向自主代理的前夜
行业里一直在讨论“完全自主的编程代理”——那种能接一个Issue、自己读代码、写测试、提PR、根据CI结果修正的东西。但自主性的核心障碍不是推理能力,是持续存在的状态。一个一觉醒来就失忆的代理永远只能处理单次、孤立的任务。deja-vu这个项目量级很小,解决的确是一个地基级问题:给代理一个长期存活的、可迁移的记忆体。它或许不会一夜之间改变你的开发流程,但它让编程代理第一次有了“从上次中断的地方继续”的体面姿态。而这一点,可能就是自主代理真正起步的那一声发令枪。

