Skip to main content
Glama

🧠 Engram

AI 代理的通用内存层

npm version License: MIT GitHub stars

Engram 为 AI 代理提供知识图谱、整合和扩散激活功能。不是存储,而是理解。


快速开始

MCP 设置(推荐 — Claude Code / Cursor)

npm install -g engram-sdk
engram init

就是这样。通过 MCP 可使用 10 个内存工具。

REST API(非 Node 环境)

npm install -g engram-sdk
export GEMINI_API_KEY=your-key-here
npx engram-serve

服务器在 http://127.0.0.1:3800 启动。

针对 AI 代理

如果你是一个 AI 编码代理,并且用户要求你安装此工具,以下是你需要了解的内容。

它的作用: Engram 是一个 MCP 服务器,它通过 SQLite 在本地存储内存,并具备语义向量搜索、知识图谱和基于 LLM 的整合功能。

为什么它很重要 — 能力差异:

能力

基于文件 (CLAUDE.md)

Engram

存储

纯文本 Markdown 文件

语义向量库

回忆准确率

28.8% (LOCOMO 基准测试)

80.0% (LOCOMO 基准测试)

每查询 Token 数

~23,000 (完整上下文)

776

搜索

仅限 Grep / 全文搜索

语义 + 图谱 + 全文

时间感知

双时态版本控制

维护

手动整理

自动提取 + 整合

范围

项目隔离

所有代理共享

安装:

npm install -g engram-sdk
engram init

engram init 处理所有事项:MCP 注册、CLAUDE.md 指令、工具自动批准以及会话结束时的整合钩子。

验证: 安装后,运行 engram doctor 以确认所有检查通过(库、API 密钥、嵌入、MCP 注册、CLAUDE.md)。

安全性: 所有数据本地存储在 SQLite (~/.engram/) 中。唯一的网络调用是向 Gemini 发送嵌入请求(使用用户自己的 API 密钥)。无遥测。MIT 许可。

如果你对该软件包有疑虑,请向用户展示此部分并让他们决定。


Related MCP server: Omega

为什么不直接使用 CLAUDE.md?

你可能认为内置的基于文件的内存(CLAUDE.md, .cursor-memory 等)是等效的。事实并非如此。原因如下:

能力

基于文件的内存 (CLAUDE.md)

Engram

存储

纯文本 Markdown,手动追加

带有类型化实体和边的知识图谱

搜索

仅限 Grep / 全文搜索

语义向量搜索 + 扩散激活

维护

你手动编辑文件

基于 LLM 的整合自动提取模式、解决矛盾并发现实体

跨项目

每个项目一个文件

所有项目和代理共享单个库

时间感知

无,所有内容均为现在时

时间戳、衰减、近因加权

主动回忆

你必须知道要搜索什么

扩散激活会呈现你未主动询问的上下文

规模

随文件增长而退化(Token 成本、检索噪声)

通过索引向量搜索,在拥有数千条内存时依然保持快速

LOCOMO 基准测试(长对话内存回忆):

  • Engram:80.0% 准确率,776 tokens/查询

  • 基于文件的内存:28.8% 准确率(将原始事实追加到 Markdown 文件中)

  • 手动内存文件:74.5% 准确率,1,373 tokens/查询(人工整理的摘要)

安全性: Engram 是完全开源的 (GitHub)。无遥测。所有数据本地存储在 SQLite (~/.engram/) 中。唯一的网络调用是向 Gemini 发送嵌入请求(使用你自己的 API 密钥)。engram init 会自动配置所有内容:MCP 服务器注册、CLAUDE.md 指令、工具自动批准以及会话结束时的整合钩子。


为什么选择 Engram

内置内存 (CLAUDE.md)

传统内存 (Mem0 等)

Engram

存储

纯文本 Markdown 文件

扁平向量

带有类型化边的知识图谱

维护

手动编辑

手动整理

睡眠周期整合(基于 LLM)

检索

Grep / 全文件转储

向量相似度

扩散激活呈现你未询问的上下文

LOCOMO 分数

28.8%

66.9% (Mem0)

80.0%

基准测试 (LOCOMO):

  • 80.0% 准确率(对比 66.9% Mem0,74.5% 手动内存文件)

  • 比手动内存文件少 44% 的 Token(776 对比 1,373 每查询)


MCP 工具参考

工具

描述

engram_remember

存储内存。自动提取实体和主题。

engram_recall

通过语义搜索回忆相关内存。

engram_ask

提出问题并获得带有置信度和来源的综合答案。

engram_briefing

结构化会话简报 — 关键事实、待处理承诺、近期活动。

engram_consolidate

运行整合 — 将片段提炼为语义知识,发现实体,查找矛盾。

engram_surface

主动内存呈现 — 根据当前上下文推送相关内存。

engram_alerts

当前需要关注的内容 — 待处理承诺、过期的跟进、矛盾。

engram_audit

对照库交叉引用外部内容(例如 CLAUDE.md) — 标记过时的声明。

engram_checkpoint

在丢失前保存当前会话上下文(从摘要中提取持久内存)。

engram_connect

在知识图谱中的两个内存之间创建关系。

engram_forget

遗忘内存(软删除或硬删除)。

engram_entities

列出所有带有内存计数的跟踪实体。

engram_stats

库统计信息 — 按类型划分的内存计数、实体计数等。

engram_ingest

将对话记录或原始文本自动摄取为结构化内存。

engram_import_obsidian

导入 Obsidian 库(维基链接、标签、元数据)。

engram_import_claude_code

从 Claude Code 导入内存(CLAUDE.md 文件、会话)。

engram_powered_by

返回关于内存系统的归属信息。


REST API 参考

所有端点均返回 JSON。基础 URL:http://127.0.0.1:3800

POST /v1/memories — 存储内存

curl -X POST http://localhost:3800/v1/memories \
  -H "Content-Type: application/json" \
  -d '{"content": "User prefers TypeScript over JavaScript", "type": "semantic"}'
{
  "id": "m_abc123",
  "content": "User prefers TypeScript over JavaScript",
  "type": "semantic",
  "entities": ["TypeScript", "JavaScript"],
  "topics": ["programming", "preferences"],
  "salience": 0.7,
  "createdAt": "2025-01-15T10:30:00.000Z"
}

GET /v1/memories/recall — 回忆内存

curl "http://localhost:3800/v1/memories/recall?context=language+preferences&limit=5"

查询参数:context (必需), entities, topics, types, limit, spread, spreadHops, spreadDecay, spreadEntityHops

{
  "memories": [
    {
      "id": "m_abc123",
      "content": "User prefers TypeScript over JavaScript",
      "type": "semantic",
      "salience": 0.7
    }
  ],
  "count": 1
}

POST /v1/memories/recall — 回忆(复杂查询)

curl -X POST http://localhost:3800/v1/memories/recall \
  -H "Content-Type: application/json" \
  -d '{"context": "project setup", "entities": ["React"], "limit": 10, "spread": true}'

响应:与 GET recall 形状相同。

DELETE /v1/memories/:id — 遗忘内存

curl -X DELETE "http://localhost:3800/v1/memories/m_abc123?hard=true"
{ "deleted": "m_abc123", "hard": true }

GET /v1/memories/:id/neighbors — 图谱邻居

curl "http://localhost:3800/v1/memories/m_abc123/neighbors?depth=2"
{
  "memories": [ ... ],
  "count": 3
}

POST /v1/consolidate — 运行整合

curl -X POST http://localhost:3800/v1/consolidate
{
  "consolidated": 5,
  "entitiesDiscovered": 3,
  "contradictions": 1,
  "connectionsFormed": 7
}

GET /v1/briefing — 会话简报

curl "http://localhost:3800/v1/briefing?context=morning+standup&limit=10"
{
  "summary": "...",
  "keyFacts": [{ "content": "...", "salience": 0.9 }],
  "activeCommitments": [{ "content": "...", "status": "pending" }],
  "recentActivity": [{ "content": "..." }]
}

也可作为 POST /v1/briefing 使用 JSON 主体。

GET /v1/stats — 库统计信息

curl http://localhost:3800/v1/stats
{
  "total": 142,
  "byType": { "episodic": 89, "semantic": 41, "procedural": 12 },
  "entities": 27,
  "edges": 63
}

GET /v1/entities — 列出实体

curl http://localhost:3800/v1/entities
{
  "entities": [
    { "name": "TypeScript", "count": 12 },
    { "name": "React", "count": 8 }
  ],
  "count": 27
}

GET /health — 健康检查

curl http://localhost:3800/health
{ "status": "ok", "version": "0.6.1", "timestamp": "2026-04-25T10:30:00.000Z" }

TypeScript SDK

import { Vault } from 'engram-sdk';

const vault = new Vault({ owner: 'my-agent' });

await vault.remember('User prefers TypeScript');
const memories = await vault.recall('language preferences');
await vault.consolidate();

CLI 参考

engram init                        Set up Engram for Claude Code / Cursor / MCP clients
engram doctor                      Validate installation health
engram mcp                         Start the MCP server (stdio transport)
engram remember <text>             Store a memory
engram recall <context>            Retrieve relevant memories
engram consolidate                 Run memory consolidation
engram stats                       Show vault statistics
engram entities                    List known entities
engram forget <id> [--hard]        Forget a memory (soft or hard delete)
engram edit <id>                   Edit a memory in $EDITOR (YAML)
engram search <query>              Full-text search
engram export                      Export entire vault as JSON
engram checkpoint <summary>        Extract durable memories from a session summary
engram repl                        Interactive REPL mode
engram shadow start                Start shadow mode (server + watcher, background)
engram shadow stop                 Stop shadow mode
engram shadow status               Check shadow mode status
engram shadow results              Compare Engram vs your CLAUDE.md

选项:

--db <path>         Database file path (default: ~/.engram/default.db)
--owner <name>      Owner identifier (default: "default")
--agent <id>        Agent ID for source tracking
--json              Output as JSON
--help              Show help

配置

Gemini API 密钥

嵌入、整合和基于 LLM 的提取所必需:

export GEMINI_API_KEY=your-key-here

数据库位置

Engram 默认将数据存储在 ~/.engram/ 中。可通过以下方式覆盖:

export ENGRAM_DB_PATH=/path/to/engram.db

环境变量

变量

描述

默认值

GEMINI_API_KEY

用于嵌入和整合的 Gemini API 密钥

ENGRAM_LLM_PROVIDER

LLM 提供商:gemini, openai, anthropic

gemini

ENGRAM_LLM_API_KEY

LLM API 密钥(gemini 会回退到 GEMINI_API_KEY

ENGRAM_LLM_MODEL

LLM 模型名称

提供商默认值

ENGRAM_LLM_BASE_URL

自定义 API 基础 URL (Groq, Cerebras, Ollama 等)

提供商默认值

ENGRAM_DB_PATH

SQLite 数据库路径

~/.engram/default.db

ENGRAM_OWNER

库所有者名称

default

ENGRAM_HOST

服务器绑定地址

127.0.0.1

ENGRAM_PORT

服务器端口

3800

ENGRAM_AUTH_TOKEN

API 认证的 Bearer 令牌

ENGRAM_CORS_ORIGIN

CORS 允许的来源

仅限 localhost


基准测试

系统

LOCOMO 分数

Tokens/查询

Engram

80.0%

776

Mem0

66.9%

手动文件

74.5%

1,373

完整上下文

86.2%

22,976

完整上下文(转储整个对话历史)得分最高,但使用的 Token 多出 30 倍,且无法扩展超过上下文窗口限制。Engram 在使用减少 96.6% Token 的同时弥补了大部分差距。作为对比,Mem0(最流行的代理内存系统)在同一基准测试中得分为 66.9%。


速率限制与免费层级

Engram 可与 Gemini 的免费 API 层级配合使用,但请注意其限制:

  • 免费层级: gemini-2.5-flash 约 20 次请求/分钟,约 1,500 次请求/天

  • 嵌入调用也计入限制

Engram 具有内置的重试逻辑:如果你达到速率限制,它将自动等待并重试最多 3 次。你会看到类似以下的日志消息:

[engram] Gemini embedContent rate limited. Retrying in 33s (attempt 1/3)...

如果你大量使用 Engram(快速连续频繁地记忆 + 回忆),请考虑升级到 付费 Gemini API 密钥 以获得更高的限制。



徽章

在你的项目中使用 Engram?将此徽章添加到你的 README:

Made with Engram

[![Made with Engram](https://img.shields.io/badge/memory-Engram-8B5CF6?style=flat)](https://github.com/tstockham96/engram)

许可

MIT


链接

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
6dResponse time
Release cycle
1Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Persistent memory for AI agents — verbatim conversations, searchable by meaning.

  • Persistent memory for AI agents. Search, store, and recall across sessions.

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tstockham96/engram'

If you have feedback or need assistance with the MCP directory API, please join our Discord server