syncable-dev/memtrace-public

GitHub: syncable-dev/memtrace-public

Memtrace 是一个基于 Rust 和 Tree-sitter 的双时态结构化知识图谱,让 AI 编程智能体以毫秒级延迟查询代码库的函数、类、调用关系和版本历史,无需任何 LLM 调用。

Stars: 115 | Forks: 8

Memtrace — structural memory for AI coding agents

你的智能体值得拥有 结构化记忆

📖 文档  ·  ⭐ Star 我们  ·  memtrace.io  ·  npm  ·  Discord

Memtrace 将你的代码库转化为一个实时的知识图谱,AI 编程智能体可以在几毫秒内查询它——涵盖每一个函数、类、调用边缘和版本,跨越每一次会话,无需重新阅读文件或破坏它们无法感知的部分。

在 90 秒内让你的智能体集群共享结构化记忆。

结构化 · 零 LLM 调用  ·  双时态 · 时间旅行查询  ·  感知回放 · 零盲区重构

Stars License Rust MCP Languages Discord Private Beta

## 它的功能 **三件事,每一次发布。** 🧭   **在同一个代码仓库上运行编程智能体集群,告别合并地狱。** 每个智能体读取相同的调用图,感知相同的爆炸半径,继承相同的时态历史。没有冲突。没有过期上下文。 🔁   **以完整的因果感知能力回放任何重构。** 智能体能确切地看到什么依赖什么,以及什么时候发生了改变。不再有*"我重构了一个函数,结果 14 个没人看到的测试挂了"*的情况。 ⚡   **在 90 秒内索引包含 5 万个文件的仓库。** Rust + Tree-sitter,$0 API 成本,支持 16 种语言,完全本地化。你的代码永远不会离开你的机器。 https://github.com/user-attachments/assets/e7d6a1e9-c912-4e65-a421-bd0256dffa5a ## 数据 | 操作 | Memtrace | 最佳替代方案 | Δ | |---|---|---|---| | 索引 1,500 个文件 | **1.5s · $0** | Mem0: 31 分钟 · $10–50 | **~快 1,200 倍** | | 精确符号查询 (acc@1, 延迟) | **96.6% · 0.07 ms** | GitNexus: 97.0% · 8.95 ms | 128 倍更低延迟 | | 图调用者召回率 (Django) | **81.6%** | GitNexus: 5.3% | **15.4×** | | 增量重新索引 p95 | **42.5 ms** | CodeGrapher: 613.7 ms | 14.4× | | 混合检索 acc@1 (Django, 3K 用例) | **73.9%** | GitNexus: 38.6% | 1.91× | | RSS / 进程 | **26 MB** | ChromaDB: 1,060 MB | **小 41 倍** | | 语言 | **16+** (Tree-sitter) | 视情况而定 | — | 可复现的基准测试套件:[`benchmarks/`](benchmarks/README.md)。相同的机器、相同的语料库、相同的适配器契约。真值来自 Python 的 `ast` 和 `pyright` LSP——绝不来自任何工具自身的索引。**没有任何系统能在数据集中占据主场优势。** 详细分解:[BENCHMARKS-v0.3.22.md](BENCHMARKS-v0.3.22.md) · [BENCHMARKS-v0.3.29.md](BENCHMARKS-v0.3.29.md) ## GitHub Star 增长 Memtrace GitHub star growth over time ## 获取访问权限 Memtrace 目前处于 **私有测试** 阶段。我们正在分批开放访问权限,以保持紧密的反馈循环——每个测试批次都会进入一个专属的 Discord 频道,我们会在一周内根据真实的 Bug 报告发布修复补丁。 → **在 [memtrace.io](https://memtrace.io) 加入等候名单。** 已经有访问权限了?运行 `npm install -g memtrace`,你就能在 90 秒内完成索引。完整安装说明见下方。 ## 为什么会有 Memtrace 优秀的代码智能工具已经存在。GitNexus 和 CodeGrapherContext 构建了基于 AST 的图谱,适用于*"我仓库里现在有什么"*的场景。 **Memtrace 是一个双时态情景结构化知识图谱。** 它建立在相同的 AST 基础之上,并增加了两个维度: - **时态记忆** —— 每个符号都带有其完整的版本历史。六种评分算法(影响、新颖度、新近度、方向性、复合、概览)允许智能体提出不同的时态问题:*"改变了什么?"*,*"有什么是出乎意料的?"*,*"什么会崩溃?"*。 - **跨服务 API 拓扑** —— Memtrace 可以映射代码仓库*之间*的 HTTP 调用图,检测架构中哪些服务调用了哪些端点。 在此基础上,结构层是全面的: | | | |---|---| | **符号即节点** | 函数、类、接口、类型、端点 | | **关系即边** | `CALLS`、`IMPLEMENTS`、`IMPORTS`、`EXPORTS`、`CONTAINS` | | **社区检测** | Louvain 算法自动识别架构模块 | | **混合检索** | Tantivy BM25 + 向量嵌入 + 倒数秩融合 + 交叉编码器重排 | | **Rust 原生** | 编译后的二进制文件,没有 Python/JS 运行时开销,低于 8 毫秒的 p95 查询延迟 | 智能体不仅在搜索你的代码。**它在记住你的代码。** ## Memtrace 对比 通用记忆系统 (Mem0, Graphiti) Mem0 和 Graphiti 是强大的对话记忆引擎,专为追踪实体知识(例如 `User -> Likes -> Apples`)而设计。它们在这方面表现出色。但专门针对代码智能而言,权衡之处在于它们依赖 LLM 推理来构建图谱——这在处理数千个源文件时增加了成本和时间。 **Graphiti** 通过 `add_episode()` 处理数据,这会为每个片段触发多次 LLM 调用——实体提取、关系解析、去重。按照约 50 个片段/分钟的速度([来源](https://github.com/getzep/graphiti)),摄取 1,500 个代码文件需要 **1–2 小时**。 **Mem0** 通过 `client.add()` 处理数据,这会为每个记忆项排队进行异步 LLM 提取和冲突解决([来源](https://mem0.ai))。使用 `infer=True`(默认值)进行批量摄取意味着每个文件都要经过一个 LLM 管道。吞吐量受限于你的 LLM 提供商的速率限制。 **两者**在处理大型代码库时都会累积 $10–50+ 的 API 成本,因为每一个关系都是推断出来的,而不是解析出来的。 **Memtrace 采取了不同的方法:** 它在 1.2–1.8 秒内索引 1,500 个文件,花费 $0.00——无需 LLM 调用,没有 API 成本,没有速率限制。原生 Tree-sitter AST 解析器在本地解析确定性的符号引用(`CALLS`、`IMPLEMENTS`、`IMPORTS`)。权衡之处在于,Memtrace 是专为代码量身定制的——它不能像 Mem0 和 Graphiti 那样处理对话式实体记忆。 ## 25+ MCP 工具 Memtrace 通过 Model Context Protocol 公开了一个完整的结构化工具包。
**搜索与发现** - `find_code` — 混合 BM25 + 语义 + RRF - `find_symbol` — 使用 Levenshtein 的精确/模糊搜索 **关系** - `analyze_relationships` — 调用者、被调用者、层级结构、导入 - `get_symbol_context` — 一次调用获得 360° 全景视图 **影响分析** - `get_impact` — 带风险评级的爆炸半径 - `detect_changes` — diff 到符号的范围映射 **代码质量** - `find_dead_code` — 零调用者检测 - `find_most_complex_functions` — 复杂度热点 - `calculate_cyclomatic_complexity` - `get_repository_stats` **时态分析** - `get_evolution` — 6 种评分模式 - `get_timeline` — 完整版本历史 - `detect_changes` — 基于 diff 的范围 **图算法** - `find_bridge_symbols` — 介数中心性 - `find_central_symbols` — PageRank / 度 - `list_communities` — Louvain 模块 - `list_processes` / `get_process_flow` **API 拓扑** - `get_api_topology` — 跨仓库的 HTTP 图谱 - `find_api_endpoints` - `find_api_calls` **索引与监控** - `index_directory` — 解析、决议、嵌入 - `watch_directory` — 实时增量监控 - `execute_cypher` — 直接图查询
## 17 项智能体技能 Memtrace 内置了技能/指导,教智能体如何使用图谱。它们会根据你的要求自动触发——无需进行任何提示词工程。 | 技能 | 你会说… | |---|---| | `memtrace-search` | "找到这个函数"、"X 在哪里定义的" | | `memtrace-relationships` | "谁调用了这个"、"显示类的层级结构" | | `memtrace-evolution` | "这周改变了什么"、"这是怎么演变的" | | `memtrace-impact` | "如果我改变这个会破坏什么"、"影响范围" | | `memtrace-quality` | "找出死代码"、"复杂度热点" | | `memtrace-graph` | "给我看架构图"、"寻找瓶颈" | | `memtrace-api-topology` | "列出 API 端点"、"服务依赖关系" | | `memtrace-index` | "索引这个项目"、"解析这个代码库" | | `memtrace-cochange` | "还有什么和这个一起改变"、"隐藏的耦合" | 此外还有 8 项工作流技能,它们通过决策逻辑将多个工具串联起来:`memtrace-first`、`codebase-exploration`、`change-impact-analysis`、`incident-investigation`、`refactoring-guide`、`continuous-memory`、`episode-replay` 以及 `session-continuity`。 ## 时态引擎 用于处理不同时态问题的六种评分算法: | 模式 | 最适用场景 | |---|---| | `compound` | 通用型的 "改变了什么?"——影响、新颖度、新近度的加权混合 | | `impact` | "什么崩溃了?"——按爆炸半径排名 (`in_degree^0.7 × (1 + out_degree)^0.3`) | | `novel` | "什么是出乎意料的?"——通过惊喜分数进行异常检测 | | `recent` | "在事件发生前后改变了什么?"——指数时间衰减 | | `directional` | "添加了什么与移除了什么?"——非对称评分 | | `overview` | 快速的模块级摘要 | 使用 **结构显著性预算** 来呈现覆盖 ≥80% 总显著性的最小变更集。 ## 兼容性 | 编辑器 / 智能体 | MCP 工具 (25+) | 技能 / 指导 | 安装 | |---|---|---|---| | Claude Code | ✅ | ✅ | `npm install -g memtrace` — 完全自动 | | Claude Desktop | ✅ | ✅ | 自动 — 与 Claude Code 共享 | | Cursor (v2.4+) | ✅ | ✅ | `npm install -g memtrace` — 完全自动 | | Codex CLI | ✅ | ✅ | `npm install -g memtrace` — 完全自动 | | Windsurf | ✅ | ✅ | `npm install -g memtrace` — 完全自动 | | VS Code (Copilot) | ✅ | ✅ | `npm install -g memtrace` — 完全自动 | | Hermes | ✅ | ✅ | `npm install -g memtrace` — 完全自动 | | OpenCode | ✅ | ✅ | `npm install -g memtrace` — 完全自动 | | Kiro | ✅ | Steering | `npm install -g memtrace` — 完全自动 | | Cline / Roo Code | ✅ | — | 手动添加 MCP 服务器 | | 任何 MCP 客户端 | | — | 手动添加 MCP 服务器 | 技能是工作流提示词,用于教智能体如何串联工具。Kiro 不使用 `SKILL.md`,因此 Memtrace 会改为编写等效的自动引导文件。 ## 安装说明 ### Claude Code + Claude Desktop ``` npm install -g memtrace ``` 处理所有事务——二进制文件、17 项技能、MCP 服务器、插件、市场。一个命令搞定,兼容两款编辑器。 手动安装: ``` claude plugin marketplace add https://github.com/syncable-dev/memtrace-public.git claude plugin install memtrace-skills@memtrace --scope user claude mcp add memtrace -- memtrace mcp -e MEMTRACE_ARCADEDB_BOLT_URL=bolt://localhost:7687 ``` ### Cursor `npm install -g memtrace` 会自动处理一切。Cursor v2.4+ 能读取与 Claude 相同的 `SKILL.md` 格式。 针对项目本地安装(技能随代码库同步): ``` npx memtrace-skills install --only cursor --local ``` ### Codex, Windsurf, VS Code, Hermes, OpenCode, 以及 Kiro 安装程序还会为较新的智能体界面写入技能/指导和 MCP 配置: | 智能体 | 全局技能 / 指导 | 全局 MCP 配置 | 项目本地支持 | |---|---|---|---| | Codex | `~/.agents/skills/` | `~/.codex/config.toml` | `.agents/skills/`, `.codex/config.toml` | | Windsurf | `~/.codeium/windsurf/skills/` | `~/.codeium/windsurf/mcp_config.json` | `.windsurf/skills/`; MCP 保持在用户级 | | VS Code / Copilot | `~/.copilot/skills/` | VS Code 用户 `mcp.json` | `.github/skills/`, `.vscode/mcp.json` | | Hermes | `~/.hermes/skills/` | `~/.hermes/config.yaml` | 仅限用户级 | | OpenCode | `~/.config/opencode/skills/` | `~/.config/opencode/opencode.json` | `.opencode/skills/`, `opencode.json` | | Kiro | `~/.kiro/steering/` | `~/.kiro/settings/mcp.json` | `.kiro/steering/`, `.kiro/settings/mcp.json` | 仅安装选定的集成: ``` npx memtrace-skills install --only codex,windsurf,vscode,hermes,opencode,kiro ``` 在支持的位置安装项目本地配置: ``` npx memtrace-skills install --only codex,vscode,opencode,kiro --local ``` ### 其他 MCP 客户端 对于 Cline、Roo Code 或任何只需要 MCP 工具的客户端,请手动添加此服务器: ``` { "mcpServers": { "memtrace": { "command": "memtrace", "args": ["mcp"], "env": { "MEMTRACE_ARCADEDB_BOLT_URL": "bolt://localhost:7687" } } } } ``` | 编辑器 | 配置文件 | |---|---| | Windsurf | `~/.codeium/windsurf/mcp_config.json` | | VS Code (Copilot) | 项目根目录下的 `.vscode/mcp.json` | | Codex | `~/.codex/config.toml` 或 `.codex/config.toml` | | Hermes | `~/.hermes/config.yaml` | | OpenCode | `~/.config/opencode/opencode.json` 或项目中的 `opencode.json` | | Kiro | `~/.kiro/settings/mcp.json` 或 `.kiro/settings/mcp.json` | | Cline | 扩展面板中的 Cline MCP 设置 | ### 卸载 ``` memtrace uninstall # removes skills, MCP server, plugin, settings npm uninstall -g memtrace ``` 已经先运行过 `npm uninstall` 了?清理脚本位于 `~/.memtrace/uninstall.js`: ``` node ~/.memtrace/uninstall.js ``` ### 安装故障排除 `npm install -g memtrace` 附带一个小型主包 + 一个特定于平台的二进制文件(`@memtrace/darwin-arm64`、`@memtrace/linux-x64`、`@memtrace/win32-x64` 之一)。如果 `memtrace start` 提示 *"Could not find binary for your platform"*: ``` # 重新运行 install,要求 npm 保留 optional deps npm install -g memtrace --include=optional # 或者从最新版本 refresh memtrace install # built-in self-update npm install -g memtrace@latest --force # 或者直接安装 platform binary(此处以 Apple Silicon 为例 — 请替换为你所使用的平台) npm install -g @memtrace/darwin-arm64 ``` 这通常只发生在 npm 被配置为跳过可选依赖项的机器上(企业 npmrc、某些 CI 缓存环境)。 ## 语言支持 Rust · Go · TypeScript · JavaScript · Python · Java · C · C++ · C# · Swift · Kotlin · Ruby · PHP · Dart · Scala · Perl — 并通过 Tree-sitter 支持更多语言。 ## 系统要求 Memtrace 在本地运行——首次索引对 CPU/RAM 的消耗较大,随后的查询和增量索引则会轻量得多。 | | 最低配置 | 推荐配置 | |---|---|---| | CPU | 4 核 | 大型单体仓库推荐 8+ 核 | | 内存 | 8 GB RAM | 16–32 GB RAM | | 磁盘 | 5 GB 可用空间 | 10–20 GB 可用空间 | | GPU | 不需要 | 不需要 | | Node.js | ≥ 18 | 当前 LTS 版本 | | Git | 时态分析必需 | 完整的仓库历史以获得最佳效果 | ## 遥测数据 从 v0.3.17 版本开始,Memtrace 附带**可选择性退出**的遥测功能,可帮助我们在他人提交问题之前发现崩溃、回归和性能问题。 - **会收集:** 应用启动事件、索引/嵌入持续时间、崩溃报告、来自 Memtrace 自身 crate 的 WARN/ERROR 日志行。 - **不会收集:** 源代码、文件内容、符号名称、嵌入、仓库名称或路径、分支名称、提交数据。 - **脱敏处理:** 每一个有效载荷在触及磁盘之前,都会经过一个脱敏程序,剥离主目录路径、类 Token 字符串和电子邮件地址。 使用一个环境变量即可禁用: ``` MEMTRACE_TELEMETRY=off memtrace start # per-run export MEMTRACE_TELEMETRY=off # permanent (~/.zshrc, ~/.bashrc) ``` 或者在你编辑器的 MCP 配置中加入:`"env": { "MEMTRACE_TELEMETRY": "off" }`。 完整说明——包括磁盘上的队列布局、接收端的数据存储位置,以及如何检查原本会发送的数据——详见 [TELEMETRY.md](TELEMETRY.md)。 ## 许可证与所有权 **专有 EULA。** 在私有测试期间以及正式发布后,对个人开发者免费使用。索引器 + 数据库 (MemDB) 均为闭源。 基准测试套件位于 [`benchmarks/`](benchmarks/) 下,采用 MIT 许可证——完全可复现,运行无需任何专有代码。

memtrace.io  ·  Discord  ·  npm  ·  Issues

Syncable 开发 · 哥本哈根 🇩🇰

标签:AI编程助手, AI辅助编程, Claude Code, Codex, Cursor, DLL 劫持, MCP协议, MITM代理, npm, Rust, 上下文管理, 代码图谱, 代码安全, 代码库分析, 代码索引, 代码重构, 协同编程, 双时态图, 可视化界面, 可配置连接, 多语言支持, 大语言模型, 安全可观测性, 安全测试框架, 实时查询, 开发工具链, 时间旅行查询, 暗色界面, 漏洞枚举, 版本控制, 程序分析, 结构化记忆, 网络流量审计, 防盲区重构, 零LLM调用