开发与工程 mcp-serversession-historyagent-memorylocal-searchgo-binarycodex-cliredaction

deja-vu

让 Claude Code、Codex、Cursor 等 23 个编码代理共享同一份记忆——直接索引磁盘上已有的会话历史,无需 LLM,只需一个本地 Go 二进制。

FollowAgents 评估 · FARS-2.1
推荐
75/ 100 五分制 3.8 / 5
1 2 3 4 5 6
1信任安全21 / 29 · 3.6/5

证据显示:本地索引、无网络监听,网络操作仅限 update/sync/doctor 版本检查;SECURITY.md 与 SECURITY-MODEL 文档化数据流与信任假设;go.mod 无第三方依赖且 CI 含 govulncheck、go mod verify、CodeQL。扣分点:核心 Go 源码未在证据中提供,'无监听器'仅为文档断言,无法静态核实;sensitive_data_handling 的脱敏实现同样只见文档,且文档自己承认'模式匹配不等于秘密检测',故不给满分。user_confirmation 得 1 分:`deja install --auto` 默认向 22+ 个 harness 的用户级配置文件写入引导内容,embed 功能还会自动探测 localhost:11434/1234,虽提供 --no-guidance 和 DEJA_EMBED_OFF 退出开关,但默认行为缺少逐项确认。external_effects 2 分:写入多个 harness 配置文件、注入 PreToolUse/PostToolUse hook 的影响范围有文档说明但范围偏广。rollback 2 分:tombstone/--unforget/promote --state 提供记忆回滚,cosign 签名支持发布校验,但客户端默认不验证签名(文档明言),且未见到配置写入的自动回滚机制。source_attribution 2 分:作者署名(LICENSE)、按 harness 标注的检索结果来源清晰,但发布者身份未经注册表验证,按规则不加分不扣分。

2可靠稳定9 / 14 · 3.2/5

证据显示:README 内部高度自洽(矩阵、FAQ、基准数字互不矛盾),CI 有覆盖率下限与召回率回归底线、weekly canary;测试文件展示了对边界情况的系统性处理(argv 终结符、guarded 注册、空结果缓存重试)。扣分点:全部为静态阅读,未执行任何测试或基准;依赖可用性仅 2 分——sqlite3/zstd 等外部依赖在矩阵中已逐项标注但实际解析失败路径未验证;failure_messages 2 分:doctor/`not-wired` 报告设计合理,但核心二进制错误信息实现未在证据中。

3适用触发16 / 18 · 4.4/5

证据显示:25 个 harness 的支持矩阵含逐项能力标注(✅/—/✕/⚠/?),⚠ 明确标注'上游 bug 阻塞';多安装路径(brew/go install/npx/scoop/mcpb/插件市场)覆盖不同用户;Windows、XDG_CONFIG_HOME、DEJA_*_ROOT、每 agent 的重定位变量均有说明。audience_and_scenarios、capability_boundaries、environment_fit 给满。trigger_precision 2 分:auto-recall 在会话开始/工具执行前后触发的行为描述详细,但实际触发精度属执行期表现,静态无法验证。

4规范维护16 / 18 · 4.4/5

证据显示:信息架构优秀——README→docs 站点→SECURITY-MODEL→JSON 输出文档分层清晰;安装说明详尽含 Windows 退出信息与替代方案;FAQ 直接回答隐私、性能、差异对比;已知限制诚实(redaction 局限、⚠ 阻塞项、CI 注释中公开的历史事故 #1229/#838)。license 3 分(MIT 完整文本)。扣分点:naming_stability 2 分——六旧工具名仍可用是向后兼容的好实践,但'一个工具加 mode'的重构说明迁移期仍在;versioning_changelog 2 分——package. 0.20.5 与 release 徽章存在,但证据中未见 CHANGELOG 文件;maintenance_responsibility 2 分——72 小时漏洞响应承诺与活跃 CI 维护迹象良好,但仅最新版本获修复的承诺是明确的支持范围限制,且单人维护者(未验证发布者)。

5有效结果9 / 13 · 3.5/5

证据显示:输出面向 agent 可用(4KB 上限、--、ctx Markdown 摘要、tier/total 字段在 SKILL.md 中说明);marginal_value 有明确差异化主张(回溯性记忆、无需 LLM);cost_benefit 给出具体数字(~0.4ms、索引约为语料 3%、200x token 对比)。扣分点:所有性能与召回数字均为作者自报,bench 工具虽随仓库发布但静态评审无法执行;output_usability 2 分——输出契约文档化良好但实际可用性未验证。

6证据核验4 / 8 · 2.5/5

证据显示:claim_traceability 2 分——基准 harness 随仓库发布、CI 以 floor 形式固定召回率与覆盖率,README 邀请读者自行运行('Audit what relevant means before trusting any figure, ours included');fact_inference_separation 2 分——文档区分'测量值'与'设计意图'(CI 注释明言 measured, not assumed),并诚实标注 redaction 非完备。扣分点:cross_source_corroboration 1 分——85.3%/69.6% 等外部基准数字、1,551 会话的真实商店测量均为单方自报,证据集中无独立来源交叉印证;核心代码不在证据中,多项声明停留在文档层。

证据充分度: 评估于 2026年9月8日 审查版本 7aa3ed222dce
使用前请注意
  • `deja install --auto` 会默认写入 20 多个 agent 的用户级配置文件并注入 hook,安装前请确认是否接受这一范围,或使用 `--no-guidance` / `--all` 精确控制。
  • 脱敏是基于模式的索引期处理,未知形态的密钥可能穿透到索引、share 与 sync 输出;含有高敏感代码或凭据的项目建议先用 `~/.config/deja/exclude` 排除。
  • 语义召回默认自动探测 localhost:11434/1234(Ollama/LM Studio);若不需要请设置 DEJA_EMBED_OFF=1,避免请求发往未预期的端点。
  • `deja update` 只校验 sha256,不校验 cosign 签名;对供应链有要求的用户应按 SECURITY.md 手动验证。
  • 发布者身份未经独立验证,且仅最新版本获得修复;生产环境采用前请自行评估维护风险。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

deja-vu 是一个本地 Go 工具,它把 Claude Code、Codex CLI、Cursor 等 23 种编码代理已经写在磁盘上的会话记录(JSONL、SQLite 等)建成本地倒排索引,并通过 MCP 服务器、钩子和 CLI 供所有代理查询。它的核心差异化在于“回溯性”:安装后立即可以搜索几个月前甚至安装之前的会话,而不像 Mem0、Letta 等记忆工具那样从零开始记录。召回会话开场时自动注入、编辑文件前(PreToolUse 钩子)、命令失败后(PostToolUse 钩子)均可触发。索引时自动脱敏密钥、令牌和 JWT,全部索引与检索都在本地完成,不联网。在 LongMemEval-S 上 hit@1 为 85.3%,在真实 5.2 GB 历史上中位检索约 0.4 毫秒,索引体积约为语料 3%。

deja 解析各代理的会话存储(如 ~/.claude/projects 的 JSONL、~/.codex/sessions、Cursor 的 state.vscdb),在 ~/.cache/deja 建立增量倒排索引(records.bin + token buckets + manifest.gob),索引时脱敏 AWS 密钥、api_key=、token=、JWT、PEM 私钥块及高熵值。CLI 提供 deja <query> 全文检索、deja blame <path> 查文件决策史、deja fix <error> 查历史错误后操作、deja how <tool> 查真实调用方式、deja ctx 生成 Markdown 摘要、deja promote 提炼决策笔记、deja sync 跨机同步、deja forget 删除并写墓碑。deja install --auto 自动为检测到的代理配置 MCP 服务器(deja mcp,单工具 deja 按 mode 分发:recall/context/blame/fix/how/remember)、会话开场召回与 PreToolUse/PostToolUse 钩子。可选 deja embed 接本地 Ollama/LM Studio 或 OpenAI 兼容端点实现语义召回。

  1. 同时使用多个编码代理(如 Claude Code + Codex)的开发者,希望在一个代理里的修复方案在另一个代理的会话开场就自动出现
  2. 经常遭遇会话压缩丢失细节的人——deja 可以归还压缩丢掉的 99.8% 命令记录
  3. 接手旧项目时想检索‘这台机器上以前是怎么解决某个报错的’,包括安装 deja 之前的历史
  4. 在意隐私、不希望会话数据上云的团队:索引、检索、脱敏全部本地完成
  5. 想给同事分享某个会话结论的人,用 deja share 输出已脱敏的会话摘要

这个 Agent 有哪些优点和局限?

优点
  • 回溯性记忆:立即可索引并搜索安装前的全部历史,而 Mem0/Letta/engram 等记录型工具从零开始
  • 无需 LLM 或嵌入密钥:纯本地词法索引,中位检索约 0.4 毫秒,几乎不增加代理延迟
  • 自动脱敏:AWS 密钥、JWT、PEM 私钥等在索引时替换为 [redacted:<kind>],摘要和导出可安全外发
  • 召回点覆盖全:会话开场、PreToolUse、PostToolUse(报错后)都会自动提供历史决策
  • 提供可复现基准:仓库自带 LongMemEval-S 和 LoCoMo 评测工具,85.3% hit@1 可自行验证
局限
  • 默认词法检索对改写式提问命中率有限,语义召回需额外配置本地 Ollama/LM Studio 或 OpenAI 兼容端点
  • 部分集成有外部依赖:Cursor、Zed、opencode 等需要 sqlite3,Zed 和 DeepSeek Harness 还需 zstd
  • Windows 支持存在但成熟度低于 macOS/Linux,官方明确表示后者是久经考验的路径
  • 模式匹配不等于真正的密钥检测——未知形态的秘密仍可能穿透索引
  • aider 的 MCP 召回、Roo Code 的 auto-recall 等功能受上游 bug 阻塞(表格中标记 ⚠)

如何安装或部署这个 Agent?

macOS/Linux:curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh && deja install --auto(约 10 秒安装、约 10 秒建首次索引)。其他方式:brew install deja-vu;go install github.com/vshulcz/deja-vu/cmd/deja@latest;npx @vshulcz/deja-vu "query" 免安装试用;Windows 用 scoop install deja-vu 或从 GitHub Releases 下载 deja.exe 放入 PATH。Claude Code 还可用:claude plugin marketplace add vshulcz/deja-vu && claude plugin install deja-vu@deja-vu。

如何使用这个 Agent?

安装后开一个新的代理会话,直接提问历史问题(如"我们之前处理过 jwt refresh 轮换吗?查一下你的记忆");开启 auto-recall 的话开场即自动召回。CLI 常用命令:deja "查询词" 搜索全部历史;deja blame <path> 查文件相关会话;deja fix <error> 查历史报错后的有效操作;deja ctx <query> 生成可粘贴进提示词的 Markdown 摘要;deja doctor 自检(--deep 校验索引);卸载用 deja uninstall --all && rm -rf ~/.cache/deja。纯二进制安装时 MCP 未接线,可用 deja mcp 手动配置。

这个 Agent 与同类方案有什么区别?

README 明确对比了三类方案:记忆平台(Mem0、Letta、memU)需要 LLM/嵌入密钥且从空库开始记录;会话搜索工具(cass)同样可回溯但不会在被询问前主动召回;记录型工具 engram 是该类中最强者但仍只记得代理主动保存的内容。deja 的差异点是无捕获步骤、无 LLM 依赖、且在会话开场和工具调用前后自动召回。

常见问题

数据会离开我的机器吗?
默认不会。索引和检索完全本地,网络仅用于 deja update、deja sync ssh 和 doctor 的版本检查;即使配置嵌入端点,发送的也是脱敏后的文本而非原始文件。
日志里已有的密钥怎么办?
已知形态(AWS 密钥、api_key=/token= 赋值、Bearer 令牌、JWT、PEM 块、高熵值)在索引时即被脱敏,但模式匹配不是真正的密钥检测,未知形态可能穿透。
会拖慢我的代理吗?
召回是对本地索引的词法查询,中位约 0.4 毫秒;钩子额外增加进程启动和新鲜度检查,几 GB 存储上为几十毫秒量级。
Claude Code 删除了 30 天前的会话记录怎么办?
只要 deja 在清理前索引过,即使源文件被删除,会话仍然可搜索,因为索引独立于源历史存在。
只装二进制不跑 deja install 行吗?
可以。二进制本身支持索引、搜索、show、ctx、blame、-- 和脱敏;deja install 只负责为代理接线 MCP 和会话开场召回,属可选增强。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents