🧠 自适应内存引擎
AI助手的语义记忆。可插拔、私有和MCP原生。
](https://nodejs.org/) 
AdaptiveMemoryEngine是一个智能存储系统,可以记住你告诉它的一切。与简单的笔记应用程序不同,它使用 语义嵌入 了解内容的含义,实现智能搜索和人工智能驱动的洞察力。
______________________________________________________________________
✨ 主要特点
| 特性 | 描述 |
|---|---|
| 语义搜索 | 通过意义来寻找记忆,而不仅仅是关键字。问“机器学习”,找到“神经网络”的内容。 |
| 知识图谱 | 自动建立记忆中概念之间的关系。 |
| AI驱动 | 可选的AI功能,用于自动标记、问答和总结。 |
| 隐私第一 | 使用本地AI模型(Ollama)完全离线运行。你的数据永远不会离开你的机器。 |
| MCP本地 | 适用于Claude Desktop、Cline和其他MCP兼容工具。 |
| 多供应商 | 使用OpenAI、谷歌Gemini、Anthropic或当地Ollama——你可以选择。 |
______________________________________________________________________
🚀 快速开始
先决条件
- Node.js≥22.0.0 (用于内置SQLite支持)
- 嵌入提供程序——以下之一:
- 开放人工智能 (推荐) - 谷歌人工智能工作室 - 奥拉玛 100%本地/离线使用
安装
# Clone the repository
git clone https://github.com/rakesh1308/AdaptiveMemoryEngine.git
cd AdaptiveMemoryEngine
# Install dependencies
npm install
# Configure your environment
cp .env.example .env
# Edit .env and add your API key用法
选项1:MCP服务器(适用于Claude Desktop,Cline)
添加到MCP设置中:
窗户:
{
"mcpServers": {
"memory": {
"command": "cmd",
"args": [
"/c",
"cd C:\\path\\to\\AdaptiveMemoryEngine && node server.js"
],
"env": {
"OPENAI_API_KEY": "sk-your-key-here",
"PROVIDER_TYPE": "openai"
}
}
}
}macOS/Linux:
{
"mcpServers": {
"memory": {
"command": "bash",
"args": [
"-c",
"cd /path/to/AdaptiveMemoryEngine && node server.js"
],
"env": {
"OPENAI_API_KEY": "sk-your-key-here",
"PROVIDER_TYPE": "openai"
}
}
}
}注: 这 cd 命令确保Claude使用与CLI相同的数据目录。如果没有它,Claude将创建一个单独的数据文件夹。然后问克劳德:
- “记住,我更喜欢在新项目中使用TypeScript”
- “我对分布式系统了解多少?”
- “总结我关于机器学习的笔记”
选项2:CLI
# Set your API key
export OPENAI_API_KEY="sk-your-key-here" # Linux/Mac
# or
set OPENAI_API_KEY=sk-your-key-here # Windows
# Import files
node cli.js import ./notes.md --tag work
node cli.js import ./docs -r --tag documentation
# Search your memories
node cli.js search "javascript async patterns"
# Ask AI about your memories
node cli.js ask "what projects have I documented?"
# Query knowledge graph
node cli.js graph "machine learning"______________________________________________________________________
📁 CLI和MCP之间的数据共享
是的,CLI和Claude有着相同的回忆!
CLI和MCP服务器使用相同的 DATA_DIR (默认值: ./data).通过CLI导入的内存可立即供Claude使用,反之亦然。
CLI Import ──┐
├──► ./data/memories.db ◄──┬──► Claude (MCP)
MCP Store ───┘ │
./data/knowledge-graph.json工作流程示例:
# 1. Import documents via CLI
node cli.js import ./project-docs --tag myproject
# 2. Ask Claude about them (in Claude Desktop)
# "What documentation do I have for myproject?"
# 3. Claude finds and uses the memories you just imported______________________________________________________________________
🔌 提供者配置
根据您的需求选择您的AI提供商:
OpenAI(推荐)
质量和速度的最佳平衡。
# .env
PROVIDER_TYPE=openai
OPENAI_API_KEY=sk-...
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
OPENAI_CHAT_MODEL=gpt-4o-miniOllama(本地和私人)
100%离线。无API成本。您的数据将保留在本地。
# 1. Install Ollama: https://ollama.com
# 2. Pull models
ollama pull nomic-embed-text
ollama pull llama3.2
# 3. Configure
# .env
PROVIDER_TYPE=ollama
OLLAMA_HOST=http://localhost:11434谷歌双子座(免费版)
慷慨的免费等级。强大的多语言支持。
# .env
PROVIDER_TYPE=gemini
GEMINI_API_KEY=your-key混合供应商
使用不同的提供者进行嵌入与情报。
# OpenAI embeddings + Anthropic intelligence
# .env
PROVIDER_TYPE=openai
OPENAI_API_KEY=sk-...
INTELLIGENCE_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...______________________________________________________________________
📖 CLI命令
node cli.js import [-r] [--tag tag1,tag2] # Import files
node cli.js list [filter] # List all memories
node cli.js search # Semantic + keyword search
node cli.js get # Get memory by ID
node cli.js delete # Delete a memory
node cli.js stats # Show statistics
node cli.js export [file] # Export memories to JSON
node cli.js snapshot # Create backup snapshot
node cli.js graph # Query knowledge graph
node cli.js ask # Ask AI about your memories
node cli.js provider # Show provider configuration支持的文件类型
| 类别 | 扩展 |
|---|---|
| 文件 | .md .mdx .txt .pdf .rst .adoc .tex .csv .tsv .log |
| 代码 | .js .ts .jsx .tsx .py .java .go .rs .c .cpp .h .cs .rb .php .swift .kt .scala .r .sql .sh .bash .ps1 .vue .svelte .html .css .scss 以及更多 |
| 配置 | .json .yaml .yml .xml .ini .conf .env Dockerfile Makefile .gitignore |
______________________________________________________________________
🛠️ MCP工具(用于AI助手)
当通过MCP连接时,Claude可以使用以下工具:
| 工具 | 说明 |
|---|---|
store_memory | 通过自动嵌入和可选的AI自动标记保存内容 |
get_memory | 按键检索内存 |
update_memory | 更新内存内容和/或标签 |
delete_memory | 删除内存 |
search | 语义+关键字混合搜索 |
list_memories | 列出所有记忆,可选择按标签筛选 |
ask | 问一些关于你的记忆的问题(如果智能模型可用,人工智能会回答) |
summarize | 总结某个主题的记忆(如果智能模型可用,则进行人工智能总结) |
query_graph | 探索知识图谱中的概念关系 |
get_stats | 显示系统统计信息 |
backup | 创建JSON快照 |
get_provider_info | 显示当前AI提供程序配置 |
______________________________________________________________________
🏗️ 建筑
┌─────────────────────────────────────────────────────────────┐
│ MCP Server (stdio/HTTP) │
│ or │
│ CLI Tool │
├─────────────────────────────────────────────────────────────┤
│ MemoryEngine │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │
│ │ SQLite │ │ VectorStore │ │ KnowledgeGraph │ │
│ │ (storage) │ │ (embeddings)│ │ (concepts) │ │
│ └─────────────┘ └──────────────┘ └─────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Pluggable Provider Layer │
│ OpenAI ◄──► Ollama ◄──► Gemini ◄──► Anthropic │
└─────────────────────────────────────────────────────────────┘设计原则: 嵌入是 强制性的 (每个记忆都有语义索引)。智能(AI功能,如 ask, summarize,自动标记)是 可选的 --当没有情报提供者可用时,系统会优雅地降级为基于关键字的结果。
______________________________________________________________________
⚙️ 环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
PROVIDER_TYPE | ✅ | openai | 提供商: openai, ollama, gemini |
OPENAI_API_KEY | 如果OpenAI | - | OpenAI API密钥 |
OLLAMA_HOST | 如果Ollama | http://localhost:11434 | Ollama服务器URL |
OLLAMA_EMBEDDING_MODEL | 如果Ollama | nomic-embed-text | Ollama嵌入模型 |
OLLAMA_CHAT_MODEL | 如果Ollama | llama3.2 | Ollama聊天模型 |
GEMINI_API_KEY | 如果Gemini | - | 谷歌人工智能API密钥 |
ANTHROPIC_API_KEY | 如果人类学 | - | 人类学API键 |
INTELLIGENCE_PROVIDER | ❌ | 与嵌入相同 | AI功能的单独提供者 |
DATA_DIR | ❌ | ./data | 数据目录 |
TRANSPORT | ❌ | stdio | stdio 或 http |
PORT | ❌ | 3000 | HTTP模式端口 |
______________________________________________________________________
🧪 测试
# Verify setup
node cli.js provider
# Quick test
node cli.js import ./README.md --tag test
node cli.js search "semantic memory"
node cli.js stats______________________________________________________________________
🤝 贡献
欢迎投稿!感兴趣的领域:
- 其他AI提供商
- 额外的存储后端
- 性能优化
- 文档改进
______________________________________________________________________
📄 许可证
麻省 理工© 拉克什 索纳瓦内
______________________________________________________________________
