Engraphy
Engraphy
AIエージェントのための連想記憶。人間の心をモデルにしています。
名前の由来は、記憶科学における古い用語である engraphy(記憶が脳に残す痕跡である エングラム を形成する過程)から来ています。Engraphy はそれをエージェントに対して行います。書き込みが確定する前に、新しい記憶を既知の内容と照合し、言い換えを統合し、真に新しい事実をリンクし、決して静かに上書きしません。何も削除されないため、履歴は常に遡って確認できます。
Engraphy はセルフホスト型です。エージェントが学習した内容を、Postgres + pgvector 上の型付き知識グラフとして保存します。書き込みは既存の記憶に対して自動的に重複排除され、検索は意味的検索と語彙的検索を融合し、ユーザー間の分離はデータベースによって強制され、記憶の全体像はアプリケーションごとに パック として宣言されます。
これは、リファレンス MCP メモリサーバーのフラットJSON・シングルユーザー・stdio モデルを、並行処理、言い換え、重複、そして長年にわたる記憶の蓄積に耐えうるものに置き換えるために存在します。Model Context Protocol を話すため、あらゆる MCP クライアント(VS Code 拡張機能、デスクトップアプリ、別のエージェント)が HTTP 経由で利用できます。
ソース利用可能。 Business Source License 1.1 の下でライセンスされています。読むこと、実行すること、その上に構築すること、そして自社製品の本番環境で使用することができます。Engraphy 自体を第三者向けのホスト型またはマネージドサービスとして提供することは、Change Date までライセンサーに留保されており、その後 Apache-2.0 に変換されます。ライセンス を参照してください。
機能
型付きメモリグラフ。 記憶は型付き ノード(
fact、decision、person、eventなど)であり、型付き エッジ(involves、references、supersedesなど)で結合されます。型、その属性スキーマ、およびどの型がどの型とエッジで接続できるかのルールは、スペースごとに パック で宣言され、Postgres で強制されます。自己重複排除する書き込み。 すべての書き込みは埋め込まれ、既存の記憶に対してバンド化されます。ほぼ逐語的な言い換えは自動的に統合され、真に新しいが関連する事実は独自の検索可能なノードとして保持され、エッジで結合されます(静かに吸収されることはありません)。境界例は、呼び出し元が解決するための保留中の重複チェック判定として保留されます。すべての書き込みは、触れた内容の 共鳴レポート を返します。
ハイブリッド検索。
searchは、ベクトルレッグ(埋め込み間のコサイン)と語彙レッグ(Postgres 全文検索)を Reciprocal Rank Fusion で融合し、traverseはエッジを辿ります。属性値は検索可能なサーフェスに折り込まれるため、型付き属性にのみ保存された事実も見つけることができます。データベースが強制する分離。 複数のスペース、およびスペース内の複数のプリンシパルは、忘れられる可能性のあるアプリケーションチェックではなく、非スーパーユーザーロールで実行される Postgres の行レベルセキュリティによって分離されます。サーバーは
NOBYPASSRLSロールとして接続します。LLM 向けに設計されたスコープルーティング。 すべてのスコープには、それが管理する内容の説明が含まれています。読み取り専用の
scope_guideツールは、そのルーティングマニフェストを返すため、エージェントは書き込む前に新しい記憶が どこに 属するかを決定できます。オペレーター CLI と MCP ツールサーフェス。 スペースのブートストラップから、トークンの発行、データのインポート、パックの適用、リストアの検証まで、あらゆる操作に対応します。
Related MCP server: Second Brain
仕組み
flowchart LR
C[MCP client<br/>VS Code · desktop · agent] -->|HTTP + bearer token| S[Engraphy server<br/>FastMCP]
S --> E[Embedding<br/>nomic-embed-text-v1.5]
S --> DB[(Postgres 16 + pgvector<br/>nodes · edges · scopes<br/>RLS · schema enforcement)]
P[Pack<br/>types · edges · briefing] -.declares.-> DB書き込み は埋め込まれ、類似度によって merge / merge-link / pending / new にバンド化され、呼び出し元の ID でコミットされます。読み取り(search、get、traverse、briefing)は RLS の下で実行されるため、呼び出し元は許可されたスコープのみを参照できます。パック は、スペースのノード型、エッジ型、属性スキーマ、およびセッション開始時のブリーフィングを宣言するため、1 つのエンジンがさまざまな形状のメモリアプリケーションにサービスを提供できます。アーキテクチャ概要 では、書き込みと読み取りの完全なパスを説明しています。
クイックスタート
要件: Docker(Compose を含む)。クラウドプロファイルは、Postgres を起動し、マイグレーションを実行し、アプリロールをプロビジョニングし、サーバーを 1 つのコマンドで起動します。
# 1. Configure secrets (never committed)
cp deploy/.env.example .env # then edit, or:
printf 'POSTGRES_PASSWORD=%s\nENGRAPHY_APP_ROLE_PASSWORD=%s\n' \
"$(openssl rand -hex 16)" "$(openssl rand -hex 16)" > .env
# 2. Bring up Postgres + migrate + provision + serve
docker compose up -d # first boot downloads the ~523 MB embedding model
# 3. Create a space, apply the starter pack, mint a client token
docker compose --profile admin run --rm admin \
engraphy-admin space create --id personal --display-name "My Memory" --principal me
docker compose --profile admin run --rm admin \
engraphy-admin pack apply packs/starter/pack.yaml --space personal
docker compose --profile admin run --rm admin \
engraphy-admin token create --space personal --principal me \
--client-name my-editor --role readwriteサーバーは現在 127.0.0.1:8000 にあります(公開するには TLS 終端リバースプロキシを前面に配置してください)。ベアラートークンを使用して、任意の MCP クライアントをサーバーにポイントします。セットアップガイド では、Docker を使用しないローカルパスについても説明しています。
またはスクリプトに任せる
up.sh と provision.sh(Windows 版は up.ps1 / provision.ps1)は、上記のシーケンスを正確にラップし、コピーペーストのクイックスタートではできない待機処理を追加します。
./up.sh # writes .env with random passwords, starts the stack,
# then blocks until /healthz returns 200
./provision.sh # creates the space, applies the starter pack, mints a token,
# and prints the client settings to paste inup.sh は compose のヘルスステータスではなく /healthz をポーリングします。これは、初回起動時にモデルキャッシュのシードに時間がかかる間、compose が starting を報告し、外部からはクラッシュループと見分けがつかないためです。200 が本当のシグナルです。
両方のスクリプトは再実行しても安全です。既存の .env は上書きされず、既存のスペースや適用済みのパックはエラーとして扱われずスキップされるため、再実行しても新しいトークンが発行されます。
すべてがパラメータ化されており、そのまま動作するデフォルト値があります。
デフォルト | 上書き | |
スペース ID |
|
|
プリンシパル |
|
|
クライアント名 |
| 3 番目の位置引数、または |
パック |
|
|
ホストポート |
|
|
ヘルスタイムアウト | 1800 秒 (up)、600 秒 (provision) |
|
トークンは一度だけ出力され、スクリプトによってディスクに書き込まれることはありません。サーバーはその SHA-256 のみを保存します。紛失した場合は、provision.sh を再実行して新しいものを取得してください。
クライアントからの使用
Engraphy は MCP サーバーであるため、クライアントは接続してツールを呼び出します。
ツール | 機能 |
| 重複排除バンド化書き込み。ノードまたは重複チェック判定と共鳴レポートを返します。 |
| 1 つのスコープまたはすべてを対象としたハイブリッド意味 + 語彙検索。 |
| 開始ノードからの再帰的グラフウォーク。 |
| ID による完全なノードとエッジの要約。 |
| パックで宣言されたセッション開始セクション(期限付きのコミットメント、関連メモなど)。 |
| ルーティングマニフェスト: 書き込み可能なすべてのスコープとその管理内容。 |
| 読み取り可能なスコープの一覧表示 / プライベートスコープの作成。 |
| グラフの編集と保留中の判定の解決。 |
| 保留中の書き込み、使用状況メトリクス、キャプチャインボックスの検査。 |
| スペース管理(メンバー、トークン、グラント、可視性)。 |
パラメータ、戻り値、およびツールごとの例については、ツールリファレンス を参照してください。ファーストパーティの VS Code 拡張機能は vscode-extension/ にあります。
ドキュメント
docs/: 開発者向けドキュメント、アーキテクチャ、セットアップ、パック、ツールリファレンス、デプロイメント、およびエンドツーエンドのチュートリアル。
design/: 設計セット、データモデル、検索と重複排除、認証とテナント分離、運用、パック/オントロジーシステム、およびベンチマークハーネス。ここにエンジニアリングの推論があります。
skills/: LLM エージェントが Engraphy を適切に使用するために読み込める簡潔なガイダンス(書き込みと重複排除、検索、スコープと可視性、回答の規律)。
要件
Postgres 16 と pgvector(
pgvector/pgvector:pg16イメージには両方が含まれています)。Python ≥ 3.12。
マイグレーション用の dbmate(管理コンテナにバンドルされています。Docker を使用しないパスでのみ
PATHに必要です)。埋め込みモデル
nomic-ai/nomic-embed-text-v1.5(384 次元、約 523 MB、初回起動時にダウンロードおよびキャッシュされます)。
プロジェクトの状態
v0.1.0。スキーマと強制カーネル、エンジンの動作(重複排除、ハイブリッド検索、グラフトラバーサル、ブリーフィング)、認証と管理を備えた MCP サーバー、およびオペレーター CLI が実装され、ライブ Postgres テストスイートと、出荷されたデプロイアーティファクトをエンドツーエンドで実行する CI ジョブによってカバーされています。ベンチマークハーネス(bench/、design/09)は、公開されている長期記憶データセットに対してエンジンを実行します。これは変更を測定するためのツールであり、マーケティング数値のソースではありません。
ライセンス
Engraphy は Business Source License 1.1 の下でライセンスされています(LICENSE を参照)。
可能なこと: Engraphy を読み、変更し、再配布し、セルフホストし、自社のアプリケーションやエージェントのメモリレイヤーとして本番環境で使用すること。
禁止事項: Change Date より前に、Engraphy 自体を第三者向けのホスト型またはマネージドサービスとして提供すること。
Change Date: 2026-08-22 + 4 年(2030-08-22)。この日付でライセンスは Apache License, Version 2.0 に変換されます。
Copyright (c) 2026 Devon Clark.
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared memory for AI agents, as a graph in your own Postgres. Writes never call an LLM.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Cloud or self-hosted knowledge for AI agents: hybrid search, reranking, GraphRAG, scoped MCP tools.
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA local-first compiled knowledge graph MCP server that provides structured memory for AI agents with full-text search, vector embeddings, and timeline tracking.144 npm8MIT
- AlicenseNot gradedqualityDmaintenancePersistent, semantically-searchable memory for AI agents using local PostgreSQL, pgvector, and Ollama embeddings, exposed via MCP with hybrid retrieval, knowledge graph, and auto-recall hook.4 npmMIT
- AlicenseNot gradedqualityAmaintenanceSelf-hosted, local-first knowledge graph and memory server for AI agents. Enables agents to persist, recall, and organize knowledge through MCP with automatic distillation, deduplication, and cross-linking.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for a self-hostable typed knowledge graph, giving AI agents durable structured memory with typed nodes, links, and flexible payloads. Enables agents to bootstrap, manage, and evolve their ontology via MCP tools.3,047 npm2MIT