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_context

階層を意識した事実選択を行い、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プロバイダー

プロバイダー非依存。 バイナリは1つ。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が主流

Rustコア、ネイティブPython、Java、MCPクライアントを提供

試すためにPostgres + Qdrant + Neo4jが必要

単一のSQLiteファイル(インフラ不要)、必要に応じてPostgresへ移行可能

会話履歴はナレッジメモリではない

事実抽出パイプライン — メッセージから構造化された事実を抽出

古い事実が漂流し矛盾する

競合検出 + 統合 — 減衰、昇格、重複排除、要約

メモリの取得はセマンティックかキーワードのどちらか

ハイブリッド検索 — ベクトル検索 + FTS5を1つのクエリで実行

MCPサポートは後付け

MCPネイティブ — 単一バイナリで11個のツールを公開

ユーザーやテナントごとにメモリを分離できない

ファーストクラスのスコープ — 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