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은 의미론적 벡터 검색, 지식 그래프, LLM 기반 통합 기능을 갖춘 SQLite 로컬 메모리 저장 MCP 서버입니다.

중요성 — 성능 차이:

기능

파일 기반 (CLAUDE.md)

Engram

저장소

일반 마크다운 파일

의미론적 벡터 볼트

회상 정확도

28.8% (LOCOMO 벤치마크)

80.0% (LOCOMO 벤치마크)

쿼리당 토큰

~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

저장소

일반 마크다운, 수동 추가

유형화된 엔티티와 엣지가 있는 지식 그래프

검색

Grep / 전체 텍스트 전용

의미론적 벡터 검색 + 확산 활성화

유지 관리

수동 파일 편집

LLM 기반 통합이 패턴 추출, 모순 해결, 엔티티 자동 발견

프로젝트 간 공유

프로젝트당 파일 하나

모든 프로젝트와 에이전트가 공유하는 단일 볼트

시간 인식

없음, 모든 것이 현재 시제

타임스탬프, 감쇠, 최신성 가중치

선제적 회상

무엇을 grep할지 알아야 함

확산 활성화가 요청하지 않은 컨텍스트를 표면화

확장성

파일이 커질수록 성능 저하 (토큰 비용, 검색 노이즈)

인덱싱된 벡터 검색으로 수천 개의 메모리에서도 빠른 속도 유지

LOCOMO 벤치마크 (장기 대화 메모리 회상):

  • Engram: 80.0% 정확도, 776 토큰/쿼리

  • 파일 기반 메모리: 28.8% 정확도 (마크다운 파일에 원시 사실 추가)

  • 수동 메모리 파일: 74.5% 정확도, 1,373 토큰/쿼리 (사람이 큐레이션한 요약)

안전: Engram은 완전한 오픈 소스입니다(GitHub). 텔레메트리는 없습니다. 모든 데이터는 로컬 SQLite(~/.engram/)에 저장됩니다. 유일한 네트워크 호출은 임베딩을 위한 Gemini 호출(본인의 API 키 사용)뿐입니다. engram init은 MCP 서버 등록, CLAUDE.md 지침, 도구 자동 승인, 세션 종료 시 통합 후크 등 모든 것을 자동 구성합니다.


왜 Engram인가

내장 메모리 (CLAUDE.md)

기존 메모리 (Mem0 등)

Engram

저장소

일반 마크다운 파일

일반 벡터

유형화된 엣지가 있는 지식 그래프

유지 관리

수동 편집

수동 큐레이션

수면 주기 통합 (LLM 기반)

검색

Grep / 전체 파일 덤프

벡터 유사도

확산 활성화가 요청하지 않은 컨텍스트 표면화

LOCOMO 점수

28.8%

66.9% (Mem0)

80.0%

벤치마크 (LOCOMO):

  • 80.0% 정확도 (Mem0 66.9%, 수동 메모리 파일 74.5% 대비)

  • 수동 메모리 파일 대비 44% 적은 토큰 (쿼리당 776 vs 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 회상과 동일한 형태.

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 점수

토큰/쿼리

Engram

80.0%

776

Mem0

66.9%

수동 파일

74.5%

1,373

전체 컨텍스트

86.2%

22,976

전체 컨텍스트(전체 대화 기록 덤프)가 가장 높은 점수를 기록하지만 30배 더 많은 토큰을 사용하며 컨텍스트 창 제한을 넘어서 확장할 수 없습니다. Engram은 96.6% 더 적은 토큰을 사용하면서 대부분의 격차를 해소합니다. 비교를 위해, 가장 인기 있는 에이전트 메모리 시스템인 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