AI记忆服务器

Engram是一款MCP服务器,为AI提供持久性个人记忆,支持混合搜索(BM25 + 语义嵌入 + 知识图谱)、基于艾宾浩斯遗忘曲线的时间衰减和记忆巩固功能,适用于Claude等MCP客户端。

  • by 199-biotechnologies
  • TypeScript
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 199-biotechnologies/engram

使用说明

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压缩旧记忆,如将睡眠体验转化为长期存储:

  1. 与群体相关的低重要性记忆
  2. 创建人工智能生成的摘要(摘要)
  3. 标记矛盾信息
  4. 将原件归档

存储保持精简,但没有什么重要的东西丢失。

隐私

你的记忆留在你的机器上。万物皆有生命 ~/.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