持久化项目知识图谱服务

MegaMemory是一个为编码代理设计的持久化项目知识图谱服务,能够跨会话构建和查询概念、架构和决策的图谱。

  • by 0xK3vin
  • TypeScript
  • 本地部署
  • 729 星标
  • 更新于
在 GitHub 查看 0xK3vin/MegaMemory

使用说明

MegaMemory

Persistent project knowledge graph for coding agents.


一 主控程序 让您的编码代理构建和查询概念、架构和决策图的服务器——因此 跨会话记忆.

LLM是索引器。无AST解析。无静态分析。你的代理读取代码,用自己的语言编写概念,并在未来的任务之前查询它们。图表存储 概念 --特征、模块、模式、决策——而不是代码符号。

循环

understand → work → update

  1. 会话开始 --客服电话 list_roots 自我定位
  2. 任务前 --客服电话 understand 使用自然语言查询(或 get_concept 用于精确的ID查找)
  3. 任务完成后 --客服电话 create_concept 或 update_concept 记录它建造的东西

所有内容都保存在每个项目的SQLite数据库中 .megamemory/knowledge.db.


安装

npm install -g megamemory

[!注意] 需要Node.js>=18。首次使用时,嵌入模型(约23MB)会自动下载。

快速开始

megamemory install

运行交互式安装程序并选择编辑器:

[!注意] 安装程序仅在成功读取/合并后更新配置文件,并且不会覆盖现有的插件/命令文件,除非它们已经标记为MegaMemory托管。

随着 开源代码

megamemory install --target opencode

一个命令配置:

  • MCP服务器中 ~/.config/opencode/opencode.json
  • 中的工作流说明 ~/.config/opencode/AGENTS.md
  • 技能工具插件位于 ~/.config/opencode/tool/megamemory.ts
  • Bootstrap命令 /user:bootstrap-memory 对于初始图群体
  • save命令 /user:save-memory 坚持会话知识

运行安装后重新启动opencode。

随着 克劳德代码

megamemory install --target claudecode

配置:

  • MCP服务器中 ~/.claude.json
  • 中的工作流说明 ~/.claude/CLAUDE.md
  • 命令在 ~/.claude/commands/

随着 反重力

megamemory install --target antigravity

配置:

  • MCP服务器中 ./mcp_config.json (工作空间级别)

随着 法典

megamemory install --target codex

配置:

  • MCP服务器中 ~/.codex/config.toml
  • 中的工作流说明 ~/.codex/AGENTS.md

与其他MCP客户端

添加兆内存作为stdio MCP服务器。命令只是 megamemory (没有争论)。它读/写 .megamemory/knowledge.db 相对于工作目录,或设置 MEGAMEMORY_DB_PATH 以覆盖。

{
  "megamemory": {
    "type": "local",
    "command": ["megamemory"],
    "enabled": true
  }
}

MCP工具

工具 说明
understand 知识图上的语义搜索。返回具有子项、边和父上下文的匹配概念。
get_concept 按概念的确切ID查找概念。返回完整上下文,包括子项、边、传入边和父项。
create_concept 添加一个具有可选边和文件引用的新概念。
update_concept 更新现有概念的字段。自动重新生成嵌入。
link 在两个概念之间创建类型化关系。
remove_concept 软删除一个有理由的概念。历史保存。
list_roots 列出所有具有直接子项的顶级概念。
list_conflicts 按合并组列出未解决的合并冲突。
resolve_conflict 通过基于当前代码库提供经过验证的正确内容来解决合并冲突。

概念种类: feature · module · pattern · config · decision · component

关系类型: connects_to · depends_on · implements · calls · configured_by

知识图谱


Web资源管理器

在浏览器中可视化知识图:

megamemory serve
  • 节点按种类着色,按边数确定大小
  • 虚线边缘显示父子链接;实心边显示关系
  • 单击任何节点以检查摘要、文件和边
  • 搜索支持高亮/暗淡过滤
  • 中频端口 4321 如果被选中,系统将提示您选择另一个
megamemory serve --port 8080   # custom port

运作原理

src/
  index.ts       CLI entry + MCP server (9 tools)
  tools.ts       Tool handlers (understand, get_concept, create, update, link, remove, list_conflicts, resolve_conflict)
  db.ts          SQLite persistence (libsql, WAL mode, schema v3)
  embeddings.ts  In-process embeddings (all-MiniLM-L6-v2, 384 dims)
  merge.ts       Two-way merge engine for knowledge.db files
  merge-cli.ts   CLI handlers for merge, conflicts, resolve commands
  types.ts       TypeScript types
  cli-utils.ts   Colored output + interactive prompts
  install.ts     multi-target installer (opencode, Claude Code, Antigravity, Codex)
  web.ts         HTTP server for graph explorer
plugin/
  megamemory.ts  Opencode skill tool plugin
commands/
  bootstrap-memory.md  /user command for initial population
  save-memory.md       /user command to save session knowledge
web/
  index.html     Single-file graph visualization (d3-force + Canvas)
  • 嵌入 --正在处理中 Xenova/全迷你LM-L6-v2 (ONNX,量化)。没有API密钥,并且在第一个模型下载后没有网络调用。
  • 存储 --SQLite具有WAL模式、软删除历史记录和模式迁移(当前为v3)。
  • 搜索 --节点嵌入上的暴力余弦相似性;对于节点数小于10k的图来说,速度足够快。
  • 合并 --双向融合,通过概念ID进行冲突检测,通过MCP工具进行人工智能辅助冲突解决。

CLI命令

命令 描述
megamemory 启动MCP stdio服务器
megamemory install 配置编辑器/代理集成
megamemory serve 启动web图形浏览器
megamemory merge 合并两个knowledge.db文件
megamemory conflicts 列出未解决的合并冲突
megamemory resolve 解决合并冲突
megamemory --help 显示帮助
megamemory --version 显示版本

合并知识图

当分支分叉时,每个分支都可能更新 .megamemory/knowledge.db 独立地。由于SQLite文件不能通过git自动合并,megamarce提供了专用的合并命令。

合并两个数据库

megamemory merge main.db feature.db --into merged.db

概念按ID进行比较:相同的节点被去重,冲突的节点被保留为 ::left/::right 一个合并组UUID下的变体。使用 --left-label 和 --right-label 用分支名称替换默认侧标签。

megamemory merge main.db feature.db --into merged.db --left-label main --right-label feature-xyz

查看冲突

megamemory conflicts            # human-readable summary
megamemory conflicts --json     # machine-readable output
megamemory conflicts --db path  # specify database path

手动解决冲突

megamemory resolve <merge-group-uuid> --keep left    # keep the left version
megamemory resolve <merge-group-uuid> --keep right   # keep the right version
megamemory resolve <merge-group-uuid> --keep both    # keep both as separate concepts

人工智能辅助分辨率

当AI代理运行时 /merge,它叫 list_conflicts,根据当前源文件验证两个版本,然后调用 resolve_conflict 和 resolved: {summary, why?, file_refs?} 加上验证 reason它不会盲目地选择一方;它解析为代码库当前反映的内容。


许可证

麻省理工学院