MegaMemory
Persistent project knowledge graph for coding agents.
______________________________________________________________________
一 主控程序 让您的编码代理构建和查询概念、架构和决策图的服务器——因此 跨会话记忆.
LLM是索引器。无AST解析。无静态分析。你的代理读取代码,用自己的语言编写概念,并在未来的任务之前查询它们。图表存储 概念 --特征、模块、模式、决策——而不是代码符号。
循环
understand → work → update
- 会话开始 --客服电话
list_roots自我定位 - 任务前 --客服电话
understand使用自然语言查询(或get_concept用于精确的ID查找) - 任务完成后 --客服电话
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 --keep left # keep the left version
megamemory resolve --keep right # keep the right version
megamemory resolve --keep both # keep both as separate concepts人工智能辅助分辨率
当AI代理运行时 /merge,它叫 list_conflicts,根据当前源文件验证两个版本,然后调用 resolve_conflict 和 resolved: {summary, why?, file_refs?} 加上验证 reason它不会盲目地选择一方;它解析为代码库当前反映的内容。
______________________________________________________________________
