使用说明
Give your AI a memory that actually works.
Every conversation your AI has disappears the moment it ends. Names, preferences, context -- gone. Engram is an MCP server that gives your AI persistent personal memory with hybrid search (BM25 + semantic embeddings + knowledge graph), temporal decay modeled on the Ebbinghaus forgetting curve, and memory consolidation. Local-first. Works with Claude, Claude Code, and any MCP client.
Install • Quick Start • How It Works • Features • Configuration • Contributing • License
为什么存在
你告诉你的AI一些重要的事情。一个名字,一种过敏,一个截止日期。下一次谈话——它被遗忘了。你重复一遍。你重新解释上下文。你承担着人工智能应该为你承担的认知负荷。
Engram为你的AI提供了一个真正的记忆系统。说一次:
“我的同事Sarah对贝类过敏,更喜欢靠窗的座位。她正在领导第一季度的产品发布。”
几周后,问:
“我正在预订团队午餐和场外航班——我应该知道什么?”
Engram将这些点连接起来。它记得莎拉、过敏、座位偏好和工作量。你的人工智能会建议没有贝类的餐馆,给她订一个靠窗的座位,并标记她可能已经被发布会淹没了。
这不是关键字匹配。这是理解。
印痕是印在物理物质中的认知信息单位,是记忆的生物学基础。
安装
npm install -g @199-bio/engram
需要Node.js 18+。
快速开始
使用Claude Desktop(或任何MCP桌面客户端)
添加到MCP配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"engram": {
"command": "npx",
"args": ["-y", "@199-bio/engram"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}
使用克劳德代码
claude mcp add engram -- npx -y @199-bio/engram
就是这样。你的AI现在会记住了。
运作原理
Engram并行运行三种搜索方法并融合结果:
┌─────────────────┐
│ Your Query │
└────────┬────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────────┐
│ BM25 │ │ Semantic │ │ Knowledge │
│ Keyword │ │Embedding │ │ Graph │
│ Search │ │ Search │ │ Lookup │
└────┬─────┘ └────┬─────┘ └──────┬───────┘
│ │ │
└──────────────┼─────────────────┘
│
┌─────────▼─────────┐
│ Reciprocal Rank │
│ Fusion │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Temporal Decay │
│ + Salience Score │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Ranked Results │
└───────────────────┘
BM25 通过SQLite FTS5查找名称和短语的精确关键字匹配。
语义搜索 通过Transformers.js使用MongoDB LEAF嵌入查找概念上相关的内容(BEIR上小型模型的第一名,~1ms/query,在Node.js中本地运行)。
知识图谱 通过实体关系扩展结果——询问Sarah和她的公司、项目和偏好。
结果与互易秩融合合并,然后通过时间衰减(艾宾浩斯遗忘曲线)和显著性进行评分。新鲜的记忆首先浮现。重要的记忆不会褪色。
特性
感觉真实的记忆
事物逐渐消逝。 六个月前你从未重温过的记忆变得更难找到。但重要的事情——名字、生日、偏好——即使随着时间的推移,也会变得触手可及。
召回加强。 每次记忆出现,它都会变得更加持久。你经常思考的事情是你的AI不会忘记的事情。
万物相连。 人们链接到地点,地点链接到事件,事件链接到细节。知识图谱使你的世界保持连贯。
MCP工具
您的AI通过模型上下文协议获得这些功能:
| 工具 | 它做什么 |
|---|---|
remember |
存储具有重要性和情感权重的新信息 |
recall |
查找按相关性和最近度排序的相关记忆 |
forget |
删除特定内存 |
create_entity |
将人、地点或概念添加到知识图中 |
observe |
记录一个实体的事实 |
relate |
连接两个实体(例如,“工作”、“已婚”) |
query_entity |
了解某人或某事的一切 |
list_entities |
查看所有被跟踪的实体 |
stats |
查看内存统计信息 |
consolidate |
压缩旧记忆并检测矛盾 |
engram_web |
启动视觉记忆浏览器 |
记忆巩固
使用API密钥,Engram压缩旧记忆,如将睡眠体验转化为长期存储:
- 与群体相关的低重要性记忆
- 创建人工智能生成的摘要(摘要)
- 标记矛盾信息
- 将原件归档
存储保持精简,但没有什么重要的东西丢失。
隐私
你的记忆留在你的机器上。万物皆有生命 ~/.engram/.唯一的外部调用是可选的--如果您提供API密钥,Engram可以将旧记忆压缩为摘要。核心功能脱机工作。
演出
在M1 MacBook Air上:
| 操作 | 时间 |
|---|---|
| 记住 | ~100ms |
| 召回 | ~50ms |
| 图形查询 | ~5ms |
| 合并 | 每批2~5秒 |
存储空间:每个内存约1KB。
配置
环境变量:
| 变量 | 目的 | 默认值 |
|---|---|---|
ENGRAM_DB_PATH |
在哪里存储数据 | ~/.engram/ |
ANTHROPIC_API_KEY |
启用内存整合 | 无(可选) |
MAX_MEMORY_CACHE |
内存缓存大小 | 1000 |
RETRIEVAL_TOP_K |
初始检索池大小 | 50 |
RERANK_TOP_K |
重新排名后的最终结果 | 10 |
ENGRAM_TRANSPORT |
运输方式(stdio 或 http) |
stdio |
PORT |
用于远程部署的HTTP端口 | 3000 |
从源头构建
git clone https://github.com/199-biotechnologies/engram.git
cd engram
npm install
npm run build
npm install -g .
语义搜索通过Transformers.js使用MongoDB LEAF(mdbr LEAF-ir),Transformers.js是BEIR上1亿参数以下模型的首选检索模型。不需要Python或外部依赖。
路线图
- [x] 混合搜索(BM25+语义嵌入)
- [x] 具有实体关系的知识图
- [x] 记忆衰退和强化(艾宾浩斯曲线)
- [x] 通过矛盾检测进行整合
- [x] 用于视觉记忆浏览的Web界面
- []进出口
- []计划合并
贡献
欢迎捐款。看 贡献.md 作为指导方针。
许可证
麻省理工学院 --版权所有(c)2025 Boris Djordjevic,199生物技术
Built by Boris Djordjevic at 199 Biotechnologies | Paperfoot AI
