关于 In Memoria
In Memoria 是一个 MCP 服务,可从本地代码库中学习模式与架构,并在会话之间保存这些信息,供 AI 编码助手查询。项目采用本地优先设计,代码与数据保存在用户机器上,适合希望减少重复说明上下文的开发者。
主要功能
- 01学习代码库的命名约定与架构模式
- 02项目蓝图:技术栈、入口与结构概览
- 03根据功能需求路由到相关文件
- 04按语义、文本或模式进行代码搜索
- 05记录工作任务与架构决策的跨会话记忆
适用场景
- 01新会话中快速获取项目上下文,无需重复说明架构
- 02将模糊需求(如添加密码重置)映射到具体文件
- 03在 Copilot 等工具中按既有约定审查代码
MCP 相关
该项目是 MCP 服务,向 AI 编码助手提供 analyze_codebase、search_codebase、get_project_blueprint、predict_coding_approach 等 13 个工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
In Memoria
为 AI 编码助手提供真正持久的记忆。
快速演示
观看 In Memoria 的实际演示:学习代码库、提供即时上下文,并将功能请求路由到相关文件。
问题:会话失忆
你一定很熟悉这样的流程:启动 Claude、Copilot 或 Cursor 来协助处理代码库。你解释架构,描述模式,说明约定。AI 理解了,帮你解决问题,一切都很顺利。
然后你关闭窗口。
下次会话呢?完全失忆。你又要解释一遍相同的架构决策、相同的命名约定,以及第十五次重复「不,我们这里不用类,而是用函数式组合」。
每次 AI 编码会话都要从头开始。
这不仅令人烦恼,也效率低下。这些工具每次交互都会重新分析代码库,浪费 token 和时间。它们会给出不符合你风格的泛泛建议,也不记得上次哪些做法奏效、哪些被你否决,或原因是什么。
解决方案:持久智能
In Memoria 是一个 MCP 服务,能够从你的实际代码库中学习,并在不同会话间保留记忆。它会构建关于你代码的持久智能(模式、架构、约定和决策),供 AI 助手通过 Model Context Protocol 查询。
你可以把它想成给 AI 结对程序员配了一个记事本,每次重启会话都不会被清空。
当前版本:0.6.0 - 查看更改内容
功能
- 学习你的模式 - 分析代码,了解命名约定、架构选择和结构偏好
- 即时项目上下文 - 以 <200 个 token 提供技术栈、入口点和架构(无需重新分析)
- 智能文件路由 - 将「添加密码重置」等模糊请求直接路由到相关文件
- 语义搜索 - 根据含义而不仅仅是关键词查找代码
- 工作记忆 - 在不同会话间跟踪当前任务和架构决策
- 模式预测 - 根据你的历史记录,建议你会如何解决类似问题
示例工作流
# First time: Learn your codebase
npx in-memoria learn ./my-project
# Start the MCP server
npx in-memoria server
# Now in Claude/Copilot:
You: "Add password reset functionality"
AI: *queries In Memoria*
"Based on your auth patterns in src/auth/login.ts, I'll use your
established JWT middleware pattern and follow your Result<T>
error handling convention..."
# Next session (days later):
You: "Where did we put the password reset code?"
AI: *queries In Memoria*
"In src/auth/password-reset.ts, following the pattern we
established in our last session..."
无需重复解释。没有泛泛的建议。只有持续且能理解上下文的协助。
快速开始
安装
# Install globally
npm install -g in-memoria
# Or use directly with npx
npx in-memoria --help
连接到你的 AI 工具
Claude Desktop - 添加到配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"in-memoria": {
"command": "npx",
"args": ["in-memoria", "server"]
}
}
}
Claude Code CLI:
claude mcp add in-memoria -- npx in-memoria server
GitHub Copilot - 请参阅下方的 Copilot 集成部分
学习你的代码库
# Analyze and learn from your project
npx in-memoria learn ./my-project
# Or let AI agents trigger learning automatically
# (Just start the server and let auto_learn_if_needed handle it)
npx in-memoria server
工作原理
In Memoria 基于 Rust + TypeScript 构建,使用 Model Context Protocol 将 AI 工具连接到持久的代码库智能。
架构
┌─────────────────────┐ MCP ┌──────────────────────┐ napi-rs ┌─────────────────────┐
│ AI Tool (Claude) │◄──────────►│ TypeScript Server │◄─────────────►│ Rust Core │
└─────────────────────┘ └──────────┬───────────┘ │ • AST Parser │
│ │ • Pattern Learner │
│ │ • Semantic Engine │
▼ │ • Blueprint System │
┌──────────────────────┐ └─────────────────────┘
│ SQLite (persistent) │
│ SurrealDB (in-mem) │
└──────────────────────┘
核心组件
Rust 层 — 快速的原生处理:
- 使用 Tree-sitter AST 解析 12 种语言(TypeScript、JavaScript、Python、PHP、Rust、Go、Java、C/C++、C#、Svelte、SQL)
- 蓝图分析器(检测项目结构、入口点和架构模式)
- 模式学习器(对你的编码风格进行统计分析)
- 语义引擎(理解代码关系和概念)
TypeScript 层 — MCP 服务与编排:
- 面向 AI 助手的 13 个专用工具(分为 4 类)
- 使用 SQLite 存储结构化数据,使用 SurrealDB 和 SurrealKV 持久化向量嵌入
- 文件监视,用于增量更新
- 智能路由,将功能映射到文件
存储 — 本地优先:
- 所有数据都保留在你的设备上
- 使用 SQLite 存储模式和元数据
- 使用 SurrealDB 和 SurrealKV 后端持久化向量嵌入
- 使用本地 transformers.js 生成嵌入(Xenova/all-MiniLM-L6-v2)
与众不同之处
这不只是又一个 RAG 系统或静态规则引擎:
- 从实际代码中学习 — 不是手动定义规则,而是从你的真实代码库中提取统计模式
- 预测你的处理方式 — 根据你之前解决类似问题的方式进行预测
- 节省 Token — 优化响应以尽量减少大模型上下文用量(项目上下文少于 200 个 Token)
- 路由到文件 — “添加登录” → 自动建议
src/auth/login.ts - 记住上下文 — 跟踪工作会话、任务和架构决策
- 多模式搜索 — 语义(含义)、文本(关键词)或基于模式的搜索
v0.5.x 新功能
我们最近完成了实施路线图的第 1 至第 4 阶段:
🗺️ 项目蓝图(第 1 阶段)
无需完整学习即可立即获取项目上下文。询问代码库相关问题,即可在 200 个 Token 以内获得技术栈、入口点、关键目录和架构信息。
💼 工作上下文系统(第 2 阶段)
AI Agent 现在可以跟踪工作会话、维护任务列表并记录架构决策。准确地从上次停止的位置继续工作。
🧭 智能文件路由(第 3 阶段)
跨 10 个类别(身份验证、API、数据库、UI 等)建立功能到文件的映射。像“添加密码重置”这样的模糊请求会自动路由到具体文件。
⚡ 流畅的进度跟踪(v0.5.3)
不再有恼人的控制台刷屏。进度条会原地更新,刷新频率稳定为 500 ms。
面向 AI 助手的 MCP 工具
In Memoria 提供 13 个专用工具,供 AI 助手通过 MCP 调用。它们分为 4 类(第 4 阶段整合了冗余工具,数量从 16 个减少到 13 个):
🎯 核心分析(2 个工具)
analyze_codebase— 使用概念、模式和复杂度分析文件/目录(第 4 阶段:现在同时支持文件和目录)search_codebase— 多模式搜索(语义/文本/模式)
🧠 智能功能(7 个工具)
learn_codebase_intelligence— 深度学习,以提取模式和架构get_project_blueprint— 立即获取包含技术栈和入口点的项目上下文 ⭐(第 4 阶段:包含学习状态)get_semantic_insights— 查询已学习的概念和关系get_pattern_recommendations— 获取模式及相关文件,以保持一致性predict_coding_approach— 提供实现指导并路由到文件 ⭐get_developer_profile— 获取编码风格和工作上下文contribute_insights— 记录架构决策
🤖 自动化(1 个工具)
auto_learn_if_needed— 带过期检测的智能自动学习 ⭐(第 4 阶段:包含快速设置功能)
📊 监控(3 个工具)
get_system_status- 健康检查get_intelligence_metrics- 已学习模式的分析数据get_performance_status- 性能诊断
第 4 阶段整合:为了改善 AX(Agent 体验,哈哈),三个工具已合并到现有工具中:
get_file_content→ 已合并到analyze_codebaseget_learning_status→ 已合并到get_project_blueprintquick_setup→ 已合并到auto_learn_if_needed
面向 AI Agent:请参阅
AGENT.md,了解完整的工具参考,包括使用模式和决策树。
GitHub Copilot 集成
In Memoria 通过自定义指令和聊天模式与 GitHub Copilot 配合使用。
设置
此仓库包含:
.github/copilot-instructions.md- 为 Copilot 提供自动指导.github/chatmodes/- 三种专用聊天模式:- 🔍 inmemoria-explorer - 智能代码库导航
- 🚀 inmemoria-feature - 使用模式实现功能
- 🔎 inmemoria-review - 检查一致性的代码审查
GitHub Copilot 集成(VS Code)
In Memoria 通过 MCP + 自定义 Agent(以前称为 聊天模式)与 GitHub Copilot Chat 集成。 这些 Agent 可让 Copilot 在 Agent 模式下工作时查询 In Memoria 的持久化智能。
⚠️ 重要:只有在聊天处于 Agent 模式(而非 Ask 或 Edit 模式)时,Copilot 才会调用 MCP 工具。
要求
- VS Code 1.106+
- 已启用 GitHub Copilot Chat
- 已配置并运行 In Memoria MCP 服务
MCP 服务设置(必需)
在工作区中创建或编辑以下文件:
.vscode/mcp.json
{
"servers": {
"in-memoria": {
"command": "npx",
"args": ["in-memoria", "server"]
}
}
}
在 VS Code 中打开此文件,并在出现提示时点击 Start,或手动启动。
Copilot 指令(自动)
此仓库包含:
.github/copilot-instructions.md
VS Code 会自动加载此文件,并将其中的指导应用于 Copilot Chat。 无需进行其他设置。
自定义 Agent(以前称为“聊天模式”)
此仓库为 Copilot 提供 三个自定义 Agent:
| Agent | 用途 |
|---|---|
| 🔍 inmemoria-explorer | 智能代码库导航 |
| 🚀 inmemoria-feature | 使用已学习的模式实现功能 |
| 🔎 inmemoria-review | 基于一致性和模式的代码审查 |
Agent 文件位置
⚠️ VS Code 已将 聊天模式 重命名为 自定义 Agent
为确保兼容当前版本的 VS Code:
-
创建文件夹:
.github/agents/ -
移动或复制以下位置中的文件:
.github/chatmodes/到:
.github/agents/ -
重命名每个文件:
*.chatmode.md → *.agent.md
示例:
inmemoria-feature.chatmode.md → inmemoria-feature.agent.md
在 VS Code 中使用 Agent
- 打开 Copilot Chat
- 直接从下拉菜单中选择自定义 Agent(例如,inmemoria-featurename)。
如果 Agent 未显示:
- 重新加载窗口
- 确保文件位于
.github/agents/
使用示例
Where is the authentication logic?
→ Copilot 查询 In Memoria 的语义索引
Add password reset functionality
→ Copilot 检索:
- 文件路由
- 架构模式
- 先前的身份验证决策
Review this code for consistency
→ Copilot 根据已学习的约定进行比较
常见问题
- ❌ 使用 Ask/Edit 模式 → MCP 工具会被忽略
- ❌ MCP 服务未运行
- ❌ Agent 文件仅留在
.github/chatmodes/中 - ❌ VS Code 版本低于 1.106
VS Code 术语说明
| 旧名称 | 当前名称 |
|---|---|
| 聊天模式 | 自定义 Agent |
Chat: Configure Chat Modes… | Chat: Configure Custom Agents |
.github/chatmodes/ | .github/agents/ |
VS Code 仍能识别旧版文件,但建议今后使用 .github/agents/*.agent.md 格式。
语言支持
通过 tree-sitter 进行原生 AST 解析,支持:
- TypeScript 和 JavaScript(包括 JSX/TSX)
- Python
- PHP
- Rust
- Go
- Java
- C 和 C++
- C#
- Svelte
- SQL
会自动过滤构建产物(node_modules/、dist/、.next/ 等)。
状态:进行中
坦诚地说:In Memoria 仍处于早期阶段。它可以运行,但还不够完善。
运行良好的功能
- ✅ 从真实代码库中学习模式
- ✅ 跨概念语义搜索
- ✅ 生成项目蓝图
- ✅ 与 Claude Desktop/Code 集成 MCP
- ✅ 跨平台支持(Linux、macOS、Windows)
- ✅ 节省 Token 的响应
已知限制
- ⚠️ 大型代码库(10 万个以上文件)首次分析可能较慢
- ⚠️ 代码库的一致性越高,模式准确度就越高
- ⚠️ 不同语言的 tree-sitter 支持程度各不相同
- ⚠️ 文档仍有待完善
我们需要你的帮助
这是用于 AI 辅助开发的开源基础设施。目前由 @pi22by7 独自开发,但我们不仅欢迎贡献,更离不开大家的参与。
贡献代码前,请先:
- 查看 GitHub Projects 看板,了解计划中的工作
- 加入 Discord 讨论你的想法(@pi_22by7)
- 提交 issue,讨论功能或修复
- 较大的贡献请发送邮件至 [email protected]
参与贡献的方式:
- 🐛 报告 Bug——发现了问题?提交 issue
- 💡 建议功能——有想法?在 Discord 或 GitHub Discussions 上讨论
- 🔧 提交 PR——我们始终欢迎代码贡献(请先讨论!)
- 📖 完善文档——帮助大家更轻松地理解项目
- 🧪 在你的代码库中测试——试用并告诉我们哪些地方出问题
- 💬 加入社区——通过 Discord 参与实时讨论
有关开发环境配置和指南,请参阅 CONTRIBUTING.md。
技术对比
与 GitHub Copilot 的记忆功能相比:
- Copilot:基础事实存储,不学习模式
- In Memoria:语义分析 + 模式学习 + 架构智能 + 工作上下文
与 Cursor 的规则相比:
- Cursor:静态规则,需手动定义
- In Memoria:从实际代码中动态学习 + 智能文件路由 + 项目蓝图
与自定义 RAG 相比:
- RAG:检索相关代码片段
- In Memoria:理解模式 + 预测解决方法 + 路由至文件 + 跟踪工作上下文
团队使用
In Memoria 既适用于个人开发者,也适用于团队:
个人:
- 学习你的个人编码风格
- 记住你做出的架构决策
- 提供感知上下文的建议
团队:
- 共享
.in-memoria.db文件,分发已学习的模式 - 通过预先学习的代码库智能帮助新开发者上手
- 确保团队内的 AI 建议保持一致
从源代码构建
git clone https://github.com/pi22by7/in-memoria
cd in-memoria
npm install
npm run build
要求:
- Node.js 18+
- Rust 1.70+(从源代码构建所需)
- 至少 2GB RAM
开发:
npm run dev # Start in development mode
npm test # Run test suite (98.3% pass rate)
npm run build:rust # Build Rust components
质量指标:
- 120 项单元测试中有 118 项通过(98.3%)
- 23 项 MCP 集成测试全部通过(100%)
- Rust 代码没有 clippy 警告
- 已验证无内存泄漏
常见问题
问:这会取代我的 AI 编码助手吗? 答:不会,而是增强它们。In Memoria 提供记忆和上下文,让 Claude、Copilot 和 Cursor 等工具能够给出更好的建议。
问:会收集哪些数据? 答:所有数据都保留在本地。没有遥测,也不会向外部服务器发送数据。你的代码绝不会离开你的设备。所有嵌入都使用 transformers.js 模型在本地生成。
问:模式学习的准确性如何? 答:准确性会随着代码库规模和一致性的提升而提高。与规模较小或不一致的代码库相比,具有成熟模式的项目效果更好。系统会从频率和重复中学习。
问:对性能有什么影响? 答:影响极小。初次学习需要一些时间(与代码库规模成正比),但后续查询速度很快。文件监视可实现增量更新。智能过滤会自动跳过构建产物。
问:如果分析失败或结果异常怎么办? 答:请附上详细信息提交问题。内置超时机制和熔断器可以处理大多数边缘情况,但现实中的代码库往往很复杂,我们需要你的反馈来改进。
问:可以在生产环境中使用吗? 答:可以,但请记住,这还是 v0.5.x 版本。可能存在一些不完善之处。请充分测试并报告问题。我们正在努力提升稳定性,但目前还未达到目标。
问:为什么选择 Rust + TypeScript? 答:Rust 用于对性能要求较高的 AST 解析和模式分析。TypeScript 用于 MCP 服务和编排。两者各有优势:核心快速,集成层灵活。
问:其他 AI 工具(非 Claude/Copilot)能用吗? 答:任何支持 MCP 的工具都可以使用 In Memoria。我们已在 Claude Desktop、Claude Code 和 GitHub Copilot 上进行测试。其他工具应该也能使用,但可能需要进行配置。
路线图
我们采用分阶段推进的方式:
- ✅ 阶段 1:项目蓝图系统(v0.5.0)
- ✅ 阶段 2:工作上下文与会话记忆(v0.5.0)
- ✅ 阶段 3:智能文件路由(v0.5.0)
- ✅ 阶段 4:工具整合(v0.5.0)
- 🚧 阶段 5:增强型向量搜索与嵌入
- 📋 阶段 6:多项目智能
- 📋 阶段 7:协作功能
详细进度请查看 GitHub Projects。
社区与支持
项目维护者: @pi22by7
- 💬 Discord:discord.gg/6mGsM4qkYm - 加入社区、提问并讨论改进建议(@pi_22by7)
- 📧 电子邮件:[email protected] - 用于私人咨询或较大型的贡献讨论
- 🐛 问题反馈:GitHub Issues - 报告错误并申请功能
- 💡 讨论:GitHub Discussions - 常规讨论与问答
- 📖 文档:查看 AGENT.md,了解 AI Agent 使用说明
- 🤝 贡献:查看 CONTRIBUTING.md,了解开发指南
贡献前须知:开始开发重要功能前,请先在 Discord、通过电子邮件或在问题讨论中交流你的想法。这有助于确保与项目方向一致,并避免重复劳动。
许可证
MIT - 详见 LICENSE
由 @pi22by7 为 AI 辅助开发社区倾心打造 ❤️
试用:npx in-memoria server
最新版本:v0.6.0 - 流畅的进度跟踪,阶段 1 至 4 已完成
In memoria:意为“在记忆中”。因为你的 AI 助手应该记住。
有问题或想法? 欢迎加入我们的 Discord,或通过 [email protected] 联系我们
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。