Skip to main content
Glama

AI 에이전트를 위한 영구 메모리 — 시간적 지식 그래프, 하이브리드 검색, SQLite 또는 PostgreSQL 지원.

crates.io Docker MCP Registry License

java-ai-memory.dev · 소스 코드 · JamJet 문서 · Discord


Engram은 AI 에이전트를 위한 영구 메모리 계층입니다. 대화에서 사실을 추출하여 시간적 지식 그래프에 저장하고, 단일 SQLite 파일 또는 PostgreSQL 데이터베이스를 기반으로 하이브리드 의미론적 + 키워드 검색을 통해 이를 검색합니다.

이 저장소는 Glama 레지스트리 목록을 호스팅합니다. 소스 코드는 메인 JamJet 저장소에 있습니다.

퀵스타트 — 30초

# Docker — uses local Ollama by default
docker run --rm -i \
  -v engram-data:/data \
  ghcr.io/jamjet-labs/engram-server:0.5.0

또는 crates.io에서 설치:

cargo install jamjet-engram-server
engram serve

Claude Desktop 설정

~/Library/Application Support/Claude/claude_desktop_config.json에 추가:

{
  "mcpServers": {
    "engram": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "engram-data:/data",
        "ghcr.io/jamjet-labs/engram-server:0.5.0"
      ]
    }
  }
}

재시작 후, 11개의 MCP 도구를 모델에서 사용할 수 있습니다.

MCP 도구 (11)

메모리 도구 (7)

도구

설명

memory_add

LLM 기반 사실 추출을 사용하여 대화 메시지에서 사실을 추출하고 저장합니다. 부작용: 구성된 LLM을 호출하여 사실을 파싱한 다음 지식 그래프에 기록합니다. 추출된 사실 ID를 반환합니다. messages 배열과 user_id가 필요합니다.

memory_recall

벡터 유사성을 사용하여 저장된 사실에 대해 의미론적 검색을 수행합니다. 읽기 전용이며 부작용이 없습니다. user_id 및 선택적 org_id로 범위가 지정된 쿼리와 일치하는 순위가 매겨진 사실을 반환합니다. 응답을 생성하기 전에 관련 컨텍스트를 검색하는 데 사용하세요.

memory_recall

계층 인식 사실 선택을 통해 LLM 프롬프트를 위한 토큰 예산이 지정된 컨텍스트 블록을 구성합니다. 읽기 전용입니다. 지정된 토큰 예산 내에서 가장 관련성이 높은 사실의 포맷된 문자열을 반환합니다. 즉시 사용 가능한 프롬프트 스니펫이 필요할 때 memory_recall 대신 사용하세요.

memory_search

전체 텍스트 검색(SQLite FTS5 / Postgres)을 사용하여 사실에 대해 키워드 검색을 수행합니다. 읽기 전용이며 부작용이 없습니다. 정확한 키워드와 일치하는 사실을 반환합니다. memory_recall의 의미론적 유사성보다 정확한 용어 일치가 필요할 때 사용하세요.

memory_forget

선택적 이유와 함께 ID별로 사실을 소프트 삭제합니다. 부작용: 지식 그래프에서 사실을 삭제된 것으로 표시합니다(물리적으로 제거하지는 않음). 이 도구를 통해서는 되돌릴 수 없습니다. 사용자가 특정 정보 삭제를 요청할 때 사용하세요.

memory_stats

총 사실 수, 유효한(삭제되지 않은) 사실 수, 엔티티 수, 관계 수와 같은 집계 통계를 가져옵니다. 읽기 전용이며 부작용이 없습니다. 메모리 저장소의 크기와 상태를 파악하는 데 사용하세요.

memory_consolidate

지식 그래프에 대해 유지 관리 주기를 실행합니다. 오래된 사실을 감쇠시키고, 신뢰도가 높은 사실을 승격하며, 거의 중복되는 항목을 제거하고, 클러스터를 요약합니다. 부작용: 사실 점수를 수정하며 사실을 병합하거나 보관할 수 있습니다. 메모리를 정확하게 유지하기 위해 주기적으로 실행하세요.

메시지 저장소 도구 (4)

도구

설명

messages_save

ID별로 대화 메시지를 저장합니다. 부작용: 메시지를 저장소에 기록하고 선택적으로 사실 추출을 트리거합니다(--extract-on-save로 제어). 추출된 사실과 함께 전체 대화 기록을 유지하는 데 사용하세요.

messages_get

ID별로 대화의 모든 메시지를 검색합니다. 읽기 전용이며 부작용이 없습니다. 정렬된 메시지 배열을 반환합니다. 과거 대화를 재생하거나 검사하는 데 사용하세요.

messages_list

메시지 저장소의 모든 대화 ID를 나열합니다. 읽기 전용이며 부작용이 없습니다. 대화 ID 문자열 배열을 반환합니다. messages_get으로 검색하기 전에 어떤 대화가 저장되어 있는지 확인하는 데 사용하세요.

messages_delete

ID별로 대화의 모든 메시지를 삭제합니다. 부작용: 저장소에서 대화 메시지를 영구적으로 제거합니다. 되돌릴 수 없습니다. 추출된 사실에는 영향을 주지 않습니다. 이를 위해서는 memory_forget을 사용하세요.

모든 메모리 도구는 (org_id, user_id, session_id)로 범위가 지정됩니다. org가 가장 포괄적이고, session이 가장 세부적입니다.

LLM 제공자

제공자 독립적. 단일 바이너리, ENGRAM_LLM_PROVIDER=...를 설정하고 실행하세요:

제공자

환경 변수 값

참고

Ollama

ollama (기본값)

로컬, 무료, API 키 불필요

OpenAI 호환

openai-compatible

OpenAI, Azure, Groq, Together, Mistral, DeepSeek, vLLM, LM Studio 등

Anthropic

anthropic

Messages API를 통한 Claude

Google

google

generateContent를 통한 Gemini

쉘 명령

command

외부 스크립트로 파이프

Mock

mock

결정론적, 테스트 전용

# Example: use Groq instead of Ollama
docker run --rm -i \
  -e ENGRAM_LLM_PROVIDER=openai-compatible \
  -e ENGRAM_OPENAI_BASE_URL=https://api.groq.com/openai/v1 \
  -e OPENAI_API_KEY=gsk_... \
  -v engram-data:/data \
  ghcr.io/jamjet-labs/engram-server:0.5.0

왜 Engram인가?

문제

Engram의 답변

모든 에이전트 메모리 라이브러리가 Python 우선임

네이티브 Python, Java 및 MCP 클라이언트를 갖춘 Rust 코어

시도하기 위해 Postgres + Qdrant + Neo4j가 필요함

단일 SQLite 파일(인프라 제로) 또는 필요 시 Postgres

대화 기록은 지식 메모리가 아님

사실 추출 파이프라인 — 메시지에서 구조화된 사실 추출

오래된 사실이 표류하고 모순됨

충돌 감지 + 통합 — 감쇠, 승격, 중복 제거, 요약

메모리 회상은 의미론적 또는 키워드 방식 중 하나임

하이브리드 검색 — 단일 쿼리에서 벡터 검색 + FTS5

MCP 지원이 부차적임

MCP 네이티브 — 단일 바이너리로 11개 도구 노출

사용자 또는 테넌트별로 메모리를 격리할 수 없음

일급 범위(First-class scopes) — 모든 쿼리에 내장된 org / user / session

클라이언트 SDK

언어

패키지

설치

Python

jamjet (EngramClient 포함)

pip install jamjet

Java

dev.jamjet:jamjet-sdk (EngramClient 포함)

Maven Central

Spring Boot

dev.jamjet:engram-spring-boot-starter

Maven Central

Rust

jamjet-engram (직접 임베드)

cargo add jamjet-engram

관련 항목

라이선스

Apache 2.0 — LICENSE 참조.


-
security - not tested
A
license - permissive license
-
quality - not tested

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/jamjet-labs/engram-mcp-server'

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