使用说明
Engram-全局存储系统
基于Cloudflare的全局内存系统,使用模型上下文协议(MCP)在AI助手和会话之间提供持久的语义内存。
由克里斯蒂安·博蒙特(@chrisbe42)建造-2025年11月
什么是Engram?
Engram是一个无服务器存储系统,允许AI助手跨不同会话、平台和提供商记住信息。在Claude Code中保存内存,在Claude Chat中回忆它。将偏好保存在一个会话中,未来的每次AI交互都会知道这些偏好。
主要特点:
- 🌍 通用存储器:适用于所有启用MCP的客户端(Claude Code、Claude Chat、Cursor等)
- ⚡ 边缘性能:在全球Cloudflare Workers上运行,延迟<50ms
- 🔍 语义搜索:基于向量的搜索,使用嵌入进行智能召回
- 🚀 异步处理:生成背景嵌入的即时响应
- 💰 性价比高的:在Cloudflare慷慨的免费套餐上运行+队列每月5美元
建筑
┌─────────────────┐
│ MCP Client │ (Claude Code, Claude Chat, etc.)
│ (save_memory) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Cloudflare │
│ Worker (SSE) │ ← Instant "Ack" response
└────────┬────────┘
│
▼
┌─────────────────┐
│ Cloudflare │
│ Queue │ ← Async processing
└────────┬────────┘
│
▼
┌────────────────────┐
│ Queue Consumer │
│ - Generate Vector │
│ - Store Memory │
└─────┬──────────────┘
│
┌─────┴─────┬──────────┐
▼ ▼ ▼
┌────────┐ ┌──────────┐ ┌────┐
│Vectorize│ │Workers AI│ │ D1 │
│(Search) │ │(Embedder)│ │(DB)│
└─────────┘ └──────────┘ └────┘
技术栈
- Cloudflare员工:边缘无服务器计算
- Cloudflare矢量化:用于语义搜索的矢量数据库
- Cloudflare D1:用于元数据和分析的SQLite数据库
- Cloudflare队列:异步消息处理
- Cloudflare人工智能:BGE-base-en-v1.5嵌入模型
- MCP-SDK:用于AI工具集成的模型上下文协议
部署
先决条件
- Cloudflare帐户与工人付费计划($5/月-队列需要)
- 已安装Node.js和npm
- Wrangler CLI(包含在项目中)
安装说明
- 克隆和安装依赖关系:
git clone https://github.com/Foundation42/engram.git
cd engram
npm install
- 登录Cloudflare:
npx wrangler login
- 创建基础设施:
# Create D1 database
npx wrangler d1 create memory-db
# Create Vectorize index (768 dimensions for BGE embeddings)
npx wrangler vectorize create memory-index --dimensions=768 --metric=cosine
# Create Queue
npx wrangler queues create memory-ingest
- 更新wrangler.json:
更换 database_id 在 wrangler.jsonc 使用步骤3中的ID:
{
"d1_databases": [
{
"binding": "DB",
"database_name": "memory-db",
"database_id": "YOUR_DATABASE_ID_HERE"
}
]
}
- 初始化数据库架构:
npx wrangler d1 execute memory-db --remote --command "CREATE TABLE IF NOT EXISTS memories (
id TEXT PRIMARY KEY,
text TEXT NOT NULL,
tags TEXT,
created_at INTEGER NOT NULL,
source_app TEXT,
session_id TEXT
);"
- 部署:
npm run deploy
您的内存系统将部署到: https://memory-mcp.YOUR-SUBDOMAIN.workers.dev
用法
MCP工具
Engram通过模型上下文协议公开了两个工具:
1. save_memory
将信息保存到全局内存。
参数:
text(必填):要记住的文本context_tags(可选):用于分类的标签数组(例如。,["coding", "preferences"])source_app(可选):此内存来自的应用程序session_id(可选):会话标识符
例子:
save_memory({
text: "Christian prefers TypeScript over JavaScript for production code",
context_tags: ["preferences", "coding"],
source_app: "Claude Code"
})
2. search_memory
使用语义向量搜索来搜索记忆。
参数:
query(必填):搜索什么limit(可选):结果数量(默认值:5)filter_tags(可选):按特定标签筛选
例子:
search_memory({
query: "What are Christian's coding preferences?",
limit: 3
})
连接到MCP客户端
克劳德代码
claude mcp add --transport sse engram https://memory-mcp.YOUR-SUBDOMAIN.workers.dev/sse
克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"engram": {
"transport": {
"type": "sse",
"url": "https://memory-mcp.YOUR-SUBDOMAIN.workers.dev/sse"
}
}
}
}
其他MCP客户端
使用SSE端点: https://memory-mcp.YOUR-SUBDOMAIN.workers.dev/sse
发展
本地开发
npm run dev
这将通过热重新加载启动本地开发服务器。
查看日志
npx wrangler tail --format pretty
查询D1数据库
# Local
npx wrangler d1 execute memory-db --command "SELECT * FROM memories LIMIT 10;"
# Remote
npx wrangler d1 execute memory-db --remote --command "SELECT * FROM memories LIMIT 10;"
存储结构
每个内存都存储有:
矢量化(用于语义搜索):
id:UUIDvalues:768维嵌入向量metadata:text:内存内容tags:JSON标签数组created_at:ISO时间戳source_app:它从哪里来的session_id:会话标识符
D1数据库(用于分析):
id:UUIDtext:内存内容tags:JSON字符串created_at:Unix时间戳source_app:应用程序名称session_id:会话标识符
记忆管理员
Engram包括 自主记忆管理员 它每天运行,以保持你的记忆干净高效。
它的作用:
- 每天运行于UTC凌晨2点 通过Cloudflare Cron触发器
- 检测重复项 使用向量相似度(相似度得分>0.95)
- 智能整合 使用Llama 3.3 70B的相似记忆
- 保存重要信息 同时消除冗余
- 更新D1和Vectorize 与巩固的记忆
- 每次运行最多处理10个组 避免超时
它是如何工作的:
1. Query all memories from D1
2. For each memory, search Vectorize for similar ones
3. Group memories with >95% similarity
4. Use LLM to create consolidated version
5. Update original memory with consolidated text
6. Delete duplicate memories
7. Log consolidation results
策展人使用 Llama 3.3 70B说明书 智能合并内存,确保信息不丢失,同时减少噪声和冗余。
未来的增强功能
要添加的潜在功能:
- 记忆下降:陈年的旧记忆
- 分析仪表盘:随着时间的推移,可视化内存模式
- 高级过滤:按日期范围、来源等进行复杂查询。
- 内存导出:批量导出功能
- 记忆合成:从集群中创建更高级别的摘要记忆
- 访问控制:具有权限的多用户支持
- 插件架构:web、API、数据库的统一搜索界面
成本估算
基于适度使用(100个记忆/天):
- 工人:免费套餐(10万次请求/天)
- 向量化:免费套餐(每月1000万次查询)
- 第1天:免费层(5GB存储空间)
- 工人AI:免费套餐(1万次请求/天)
- 队列:$5/月(需要工人带薪计划)
总计:约$5/月
许可
该项目采用双重许可模式:
- MIT许可证 -个人、教育和社区项目免费
- 商业许可证 -用于专有或创收用途
如果您的组织在产品、服务或平台中使用Engram,请联系: license@foundation42.org
看 许可证 和 许可证-麻省理工学院 了解详情。
作者
建造于 克里斯蒂安·博蒙特 (@chrisbe42) Entrained AI研究所创始人 英国西约克郡Liversedge
链接
- github:https://github.com/Foundation42/engram
- Cloudflare员工:https://workers.cloudflare.com
- 模型上下文协议:https://modelcontextprotocol.io
印痕是印在物理物质中的认知信息单位,理论上是存储记忆的手段
