来源:GitHub (★637)
URL: https://github.com/vshulcz/deja-vu
精读日期:2026-08-17
模型:DeepSeek V4 Flash(AI 生成,人工未审校)
正文获取:全文

一、核心论点/事实

  • deja-vu 是一个面向编码 Agent 的本地记忆工具,核心思路是“索引已有历史,而非从零记录”——它索引 17 种编码 Agent(Claude Code、Codex、Cursor、Qwen、OpenClaw、Copilot 等)已写入磁盘的会话记录,包括安装前数月的数据。
  • 安装约 10 秒,索引约 10 秒,即可使用;无需 LLM、无需 embeddings,仅一个本地 Go 二进制文件。
  • 通过 MCP recall 机制自动接入所有检测到的 Agent,支持会话开始自动召回(auto-recall),Agent 无需被显式提问即可在会话打开时获知项目历史。
  • 实测数据:在 43 次压缩(compactions)中,摘要保留了 77% 的决策和 0.2% 的命令,deja 能找回其余 99.8% 被摘要丢弃的信息。
  • 索引和搜索完全本地化,网络仅用于安装和更新;凭据(AWS keys、bearer tokens、JWT、PEM 私钥块等)在索引时即被脱敏,值替换为占位符,周围文本保持可搜索。
  • 支持决策状态标记(如 rejected)、过期检测(文件变更后提示)、跨机器同步(append-only,无云端中转)、会话交接(handoff)等功能。

二、方法/架构拆解

  • 数据源:17 种编码 Agent 的本地会话文件(JSONL 等格式),覆盖 Claude Code、Codex、Cursor、Qwen、OpenClaw、Copilot、opencode、Gemini CLI、Antigravity、Kimi Code、pi、Goose、Hermes、Roo Code 等。
  • 索引机制:本地 Go 二进制,无 LLM/embeddings,直接解析会话文件;索引包含:每个文件被打开的记录、命令及其退出状态、编辑替换的精确文本跨度(span)——这些是摘要工具丢弃的关键细节。
  • 召回机制:通过 MCP(Model Context Protocol)接入 Agent;自然语言查询回退到相关性层级(relevance tier),时间作为提示而非过滤条件。
  • 安装与配置curl -fsSL .../install.sh 一键安装;go install github.com/vshulcz/deja-vu/cmd/deja@latest 可试用;Claude Code 等桌面应用可通过 claude plugin marketplace add vshulcz/deja-vu 安装插件。
  • 引导文件写入:为检测到的每个 harness 写入用户级引导文件(guidance file),如 Claude Code、Codex、opencode 等;Cursor 无用户级指令文件,改用 skill 文件(仅在相关内容出现时读取)。
  • 脱敏机制:索引时剥离 keys、tokens、JWTs、PEM 私钥块、URLs 及高熵值(对未知模式也做形状检测),替换为占位符,保留上下文可搜索性。
  • 删除与墓碑deja 支持从重建索引中移除会话并写入 tombstone,防止后续从源历史恢复。
  • 同步与交接sync 在机器间移动记忆(append-only,无云端);handoff 打包实时上下文,支持在另一 Agent 中继续工作。

三、值得注意的局限/争议

作者承认的局限:

  • 脱敏有边界:对未知模式的高熵值仅做形状检测,可能无法覆盖所有敏感信息;脱敏后值被替换,但周围文本仍可搜索,存在推理泄露风险。
  • 过期检测(staleness)在无法判断时保持沉默,不声称任何内容“未变更”——即存在不确定性时不做断言。
  • 项目排除(project exclusions)需手动配置(每行一个 pattern),默认可能索引过多或过少。

AI 判断的局限/争议:

  • 无 LLM/embeddings 的纯文本索引方案,对语义相似但措辞不同的查询召回率可能受限;相关性层级(relevance tier)的“自然语言回退”效果未经大规模评测。
  • 跨 17 种 Agent 的会话格式兼容性:不同 Agent 的日志结构差异大,解析鲁棒性未公开验证,可能存在格式漂移问题。
  • 安全边界:索引本地历史意味着所有历史会话(含敏感讨论)被集中存储,脱敏虽在索引时执行,但原始文件仍存在;多用户机器上权限控制未明确。
  • 自动召回(auto-recall)可能引入上下文污染:旧决策可能不适用于当前代码状态,过期检测虽提示文件变更,但无法判断决策是否仍有效。

四、与 RRLab 研究的关联

  • Harness 工程:deja-vu 展示了“零成本冷启动”的 harness 设计——利用已有磁盘数据而非从零记录,显著降低记忆工具采用门槛;其 MCP 接入和引导文件写入模式可作为 RRLab 多 Agent harness 的参考。
  • 多模型协同:17 种 Agent 共享同一记忆层的思路,与 RRLab 多模型协同方向高度契合——可借鉴其“统一记忆层 + 各 Agent 独立引导”的架构,实现跨模型知识复用。
  • 模型评测:deja-vu 的召回质量(77% 决策保留 vs 0.2% 命令)可作为评测基线;其“摘要丢弃 99.8% 命令”的发现,提示 RRLab 在评测 Agent 时需关注过程数据(命令、编辑跨度)而非仅结果。
  • Agent 落地:自动召回(auto-recall)和会话交接(handoff)是 Agent 长期运行的实用能力;RRLab 可借鉴其“时间作为提示而非过滤”的检索策略,以及脱敏/墓碑机制,保障生产环境安全。
  • AI 原生产品:deja-vu 的“安装即有用”(10 秒安装 + 10 秒索引)和“无需用户主动搜索”的体验设计,是 AI 原生工具的优秀范例;其本地优先、无云依赖的架构,对 RRLab 面向企业客户的私有化部署有直接参考价值。

本笔记由 DeepSeek V4 Flash 自动生成,未经人工审校。原文链接:https://github.com/vshulcz/deja-vu