文章摘要
Deja-vu是一个为编程代理设计的记忆层工具,支持搜索、MCP召回、自动上下文、秘密编辑、统计、会话日志共享和同步,兼容Claude Code、Codex和opencode,提供零依赖的二进制文件。
文章总结
好的,这是根据您的要求,对原文主要内容进行的中文重述,保留了关键细节,并删减了与核心主题无关的推广性内容。
项目概述:deja-vu —— 为编码智能体打造的记忆层
核心问题:Claude Code、Codex 和 opencode 等编码智能体在每次对话中都会产生大量本地日志文件,其中包含了已调试过的问题和设计决策。这些信息无法被有效检索,导致智能体可能重复解决相同的问题。
解决方案:deja-vu 是一个零依赖的二进制工具,能将智能体的历史会话日志转化为一个可搜索的记忆层。
主要功能:
- 搜索:使用
deja "关键词"命令,可在数GB的日志中实现毫秒级(7-9毫秒)的搜索。它具备回溯性,能索引安装前数月的历史记录。 - 智能体回忆:通过 MCP(模型上下文协议)的
recall工具,智能体可以主动查询“我们三周前是如何解决这个问题的”,避免重复调试。 - 自动回忆:通过
install --auto命令,可在会话启动时自动将相关记忆注入上下文,无需手动提问。 - 信息脱敏:在索引时自动剥离 API 密钥、JWT、私钥等敏感信息,确保缓存安全。
- 统计:
deja stats命令可展示智能体工作概况,包括使用的工具、主要项目及活动趋势图。 - 分享:
deja share <id>命令可生成一个已脱敏的会话摘要,安全地分享给同事。 - 同步:
deja sync export/import命令支持在不同机器间同步记忆,操作是追加式和幂等的。
核心特性:单一二进制文件,无需下载模型或运行服务,所有操作均在本地完成,数据不会离开您的机器。
安装与配置
提供了多种安装方式,包括 curl、go install、npx 和 brew。安装后,通过 deja install --all 命令即可将工具接入 Claude Code、Codex 和 opencode 等智能体。
使用示例
- 搜索:
deja "jwt refresh token"会返回所有相关会话的摘要,包括来源、项目、日期和匹配内容。 - 上下文管道:
claude "Prior context: $(deja ctx 'database migration')"可将最佳匹配结果以 Markdown 格式注入到提示词中。 - 同步:支持通过共享文件夹(如 Syncthing、iCloud)或 SSH 命令在机器间同步记忆。
工作原理
deja-vu 在本地 ~/.cache/deja 目录下构建一个倒排索引。它会解析 JSONL 或 SQLite 格式的会话存储,对凭证进行脱敏,然后创建索引文件。索引是增量更新的,只处理发生变化的文件。整个索引和搜索过程不涉及任何网络请求。
安全与隐私
- 凭证脱敏:在索引时,AWS 密钥、API 令牌、Bearer Token、JWT、PEM 私钥等敏感信息会被替换为
[redacted:<kind>],但保留周围文本以供搜索。 - 无网络路径:工具的核心代码中没有网络路径,确保数据完全本地化。
支持的智能体
- Claude Code:✅
- Codex CLI:✅
- opencode:✅
- aider, Gemini CLI:计划中
性能表现
- 热搜索:典型耗时 7-9 毫秒,最坏情况约 40 毫秒。
- 冷启动索引:约 10 秒。
- 索引大小:约为原始语料库的 2.4%。
与其他工具的区别
- 与 cass 的区别:cass 功能全面但设置复杂,而 deja-vu 追求极简——单一 Go 二进制文件、纯词法搜索、支持三种智能体、零配置,并提供了自动回忆、脱敏、分享和同步等记忆层功能。
- 与 MemPalace / Mem0 / Letta 的区别:这些是记忆平台,需要主动捕获和记录未来信息。deja-vu 没有捕获步骤,它直接索引智能体已经写入磁盘的历史文件,包括安装前的数据。两者可以共存。
常见问题
- 数据是否离开机器? 不会。同步功能仅将文件写入您指定的目录,传输由您自行控制。
- 如何清除所有数据? 运行
deja uninstall --all并删除~/.cache/deja目录。
许可
MIT 许可。
评论总结
根据评论内容,总结如下:
主要观点与论据:
项目定位与差异化(作者vshulcz,评分None):deja旨在解决AI代理重复调试同一问题的问题,通过索引已有会话记录(Claude Code、Codex等)实现记忆复用。核心差异化在于:零依赖、无LLM调用、纯文本搜索、通过SSH同步。关键引用:"one binary code with zero dependency, no LLM calls, searchable verbatim text instead of generated summaries, and synchronization via your own SSH";"deja sync ssh
moves new memory between machines using the existing SSH setup"。 同类项目比较(作者esafak,评分None):指出deja与ctx.rs等类似,建议突出SSH同步作为差异化。关键引用:"Similar to https://ctx.rs/ and others, I'm sure. I'd lead with your differentiation. Is it the ssh?"
本地化与可编辑性(作者BedVibe_Studios,评分None):赞赏本地化方案,强调记忆系统应便于人工检查和编辑,并询问是否计划支持语义搜索。关键引用:"I like that this stays local instead of depending on a hosted service... memory becomes much more valuable when it's easy to inspect and edit manually";"Are you planning to support semantic search later, or is the goal to keep everything deterministic and text-based?"
通用实现思路(作者catzapd,评分None):提出AI代理记忆系统的核心流程:保存→索引→搜索→注入上下文。关键引用:"Save everything to disk. Index it or store in vectorDB. Search the storage for similarity based on the new prompt. Include any finding with the new prompt as system/user prompt."
个人实践与简化方案(作者arjie,评分None):认为这类系统构建已变得简单,分享了自己的实现(CPU嵌入模型、SQLite存储、S3结构),并强调需要定期整理知识库。关键引用:"I think everyone's ended up building one of these for themselves... The whole setup is pretty trivial and what anyone would come up with from scratch";"You do need a self-reflection/consolidation/dream step in order to periodically consolidate and groom the KB."
实际使用困难(作者hparadiz,评分None):指出代理无法正确读取已保存的记忆,无论本地还是远程。关键引用:"I can't even get my agents to properly read the memories they have saved locally let alone remotely."
系统综述(作者zby,评分None):已自动审查超过140个类似系统,并提供比较列表。关键引用:"I did an automatic review of over 140 such systems. There are comparisons and stuff."
平衡性总结: - 正面评价:本地化、零依赖、SSH同步是亮点;实现思路清晰,社区有类似实践。 - 质疑与挑战:与现有项目区分度需明确;实际使用中代理读取记忆存在困难;是否支持语义搜索待定。 - 中立观察:此类系统构建已趋成熟,但需注意定期整理和人工可编辑性。