neo4j-labs/create-context-graph

AI agents with graph based reasoning memory, scaffolded in seconds

Create Context Graph とは?

Create Context Graph は、ドメイン固有の「ナレッジグラフをバックエンドに持つ」AIアプリケーションを雛形生成するコマンドラインウィザードです。ツールに指定するのは次の通りです:

  • 関心のある業界(ヘルスケア、金融、野生生物管理など)
  • 使用したいLLMエージェントフレームワーク(例:Strands、PydanticAI、LangGraph、Claude SDK)
  • ホスト型メモリサービス(NAMS)とセルフホスト型Neo4jインスタンスのどちらを希望するか

CLIは、すぐに実行可能なフルスタックプロジェクトを生成します:

  • FastAPIバックエンド – LLMエージェントが会話コンテキストをNeo4jグラフ(またはNeo4jベースのNAMS)に保存します。
  • Next.js + Chakra UI フロントエンド – チャットウィンドウ、インタラクティブなグラフビュー、ドキュメントブラウザ、意思決定トレースビューアを表示します。
  • Neo4jスキーマ と、選択したドメイン用のオプションのデモデータ。
  • SaaSツール(GitHub、Slack、Notion など)からグラフに実データをインポートするオプションのコネクタ。

これらはすべて数分で生成され、LLMの対話から抽出したエンティティを保存し、それらをドキュメント、ツール、意思決定にリンクするグラフである「コンテキストグラフ」を試すことができます。


誰が使うのか?

対象 役立つ理由
プロダクトチーム(医療記録チャットボットなど、ドメイン特化型AIアシスタントを構築するチーム) バックエンド、フロントエンド、Neo4jスキーマ、データインポートまで、スタック全体をワンクリックで雛形化。
データエンジニア / ナレッジグラフ専門家(既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方) 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築中) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形化。
データエンジニア / ナレッジグラフ専門家(既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方) 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築中) バックエンド、フロントエンド、Neo4jスキーマ、データインポートを含むスタック全体をワンクリックで雛形生成。
データエンジニア / ナレッジグラフ専門家で、既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(例:医療記録チャットボットなど、ドメイン特化型AIアシスタントを構築するチーム) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形生成。
データエンジニア / ナレッジグラフ専門家で、既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントのロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(例:医療記録チャットボットなど、ドメイン特化型AIアシスタントを構築するチーム) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形化。
データエンジニア / ナレッジグラフ専門家で、既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築中) バックエンド、フロントエンド、Neo4jスキーマ、データインポートを含むスタック全体をワンクリックで雛形化。
データエンジニア/ナレッジグラフ専門家で、既存のSaaSデータに対してLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築中) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形化。
データエンジニア / ナレッジグラフ専門家(既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方) 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(医療記録チャットボットなど、ドメイン特化型AIアシスタントを構築するチーム) バックエンド、フロントエンド、Neo4jスキーマ、データインポートを含むスタック全体をワンクリックで雛形化。
データエンジニア / ナレッジグラフ専門家(既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方) 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(例:医療記録チャットボットなど、ドメイン特化型AIアシスタントを構築するチーム) バックエンド、フロントエンド、Neo4jスキーマ、データインポートを含むスタック全体をワンクリックで雛形生成。
データエンジニア / ナレッジグラフ専門家で、既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築中) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形化。
データエンジニア/ナレッジグラフ専門家で、既存のSaaSデータに対してLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形化。
データエンジニア / 知識グラフ専門家で、既存のSaaSデータに対してLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピングします。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築中) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形化。
データエンジニア / ナレッジグラフ専門家で、既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築) バックエンド、フロントエンド、Neo4jスキーマ、データインポートを含むスタック全体をワンクリックで雛形生成。
データエンジニア/ナレッジグラフ専門家(既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方) 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

どのように動作しますか?

  1. ウィザード – create-context-graph がいくつかのプロンプト(ドメイン、フレームワーク、メモリバックエンド、デモデータ、コネクタ)を尋ねます。フラグを使えば非対話式でも実行できます。
  2. ドメインオントロジー – エンティティ型、リレーションシップ、ツール定義を記述したYAMLファイルが選択(または自由文の説明から生成)されます。これがコード生成を駆動します。
  3. テンプレートレンダリング – Jinja2テンプレートがオントロジーを次のものに変換します:
    • Neo4jスキーマ(schema.cypher)
    • FastAPI API用のPydanticモデル
    • エージェント固有のツールラッパー
    • グラフを可視化するフロントエンドコンポーネント。
  4. メモリレイヤー – 生成されたバックエンドは、neo4j-agent-memory ライブラリ(v0.4)を配線します。これは以下と通信できます:
    • NAMS – ホスト型のNeo4jバックアップメモリサービス(デフォルト)。NAMS APIキーのみが必要です。
    • セルフホスト型Neo4j – ローカルまたはAuraインスタンスへのbolt接続で、Cypher、GDS、リレーションシップの全機能を利用できます。
  5. LLM統合 – エージェントはLiteLLM互換のプロバイダ文字列を使用するため、Anthropic、OpenAI、Bedrock、Ollamaなどを接続できます。エンティティ抽出はデフォルトでClaude-haikuまたはGPT-4o-miniを使用します。
  6. フロントエンド – Next.jsアプリは以下を表示します:
    • ストリーミングチャット(Server-Sent Events)
    • リアルタイムのツール呼び出しの可視化
    • インタラクティブなグラフビュー(ノードの展開、ドラッグ/ズーム、プロパティパネル)
    • ドキュメントブラウザと、エージェントの推論ステップのトレースビューア。
  7. データインポート – コネクタを選択した場合、スキャフォールドには、選択したSaaSサービスからNeo4jにデータを取り込むスクリプト(import_data.py)と make import ターゲットが含まれます。

生成されたプロジェクトの中身

my-app/
├─ backend/               # FastAPI サービス
│  ├─ app/main.py        # エントリポイント
│  ├─ app/agent.py       # LLMエージェント(フレームワーク固有)
│  ├─ app/memory.py      # Neo4j または NAMS メモリ統合
│  ├─ app/context_graph_client.py   # Neo4j 用 CRUD ヘルパー
│  ├─ app/gds_client.py  # オプションの Graph Data Science 呼び出し
│  └─ connectors/        # SaaS インポートコード(選択時)
├─ frontend/              # Next.js + Chakra UI の UI
│  ├─ components/ChatInterface.tsx   # ストリーミングチャットUI
│  ├─ components/ContextGraphView.tsx # インタラクティブなグラフ
│  └─ …
├─ data/ontology.yaml     # 生成に使用するドメイン定義
├─ data/fixtures.json     # 合成デモエンティティ(--demo 時)
├─ cypher/schema.cypher   # 制約とインデックス
├─ docker-compose.yml     # セルフホストモード用のオプションの Neo4j コンテナ
├─ Makefile               # install、start、seed、import、test …
└─ README.md              # プロジェクト固有のドキュメント

ホスト型メモリとセルフホスト型メモリのどちらを選ぶか

機能 NAMS(ホスト型) セルフホスト Neo4j
セットアップ Neo4j のインストール不要、APIキーのみ Docker/Aura を実行、bolt URL を設定
書き込み機能 エンティティ作成のみ。リレーションシップは description 内のMarkdownブロックとして保存 完全なCypher書き込み、ネイティブエッジ、GDSアルゴリズム
スケーラビリティ マネージドサービス、Neo4j ベースのREST APIに限定 クラスターサイズ、レプリケーションなどを制御可能
コスト Neo4j Labs メモリサービスで従量課金制 Neo4j のデプロイメントに依存
ユースケース クイックデモ、プロトタイピング、個人ナレッジベース 複雑なグラフクエリや分析を必要とする本番グレードのアプリ

誰が使うのか?

対象 役立つ理由
プロダクトチーム(ドメイン特化型AIアシスタント、例:医療記録チャットボットを構築するチーム) バックエンド、フロントエンド、Neo4jスキーマ、データインポートを含むスタック全体をワンクリックで雛形生成。
データエンジニア / ナレッジグラフ専門家で、既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

誰が使うのか?

対象 役立つ理由
プロダクトチーム(例:医療記録チャットボットなど、ドメイン特化型AIアシスタントを構築するチーム) バックエンド、フロントエンド、Neo4jスキーマ、データインポートなど、スタック全体をワンクリックで雛形化。
データエンジニア / ナレッジグラフ専門家で、既存のSaaSデータでLLM駆動のエンティティ抽出を試したい方 組み込みコネクタがGitHub、Slack、Notion、Linearなどからデータを取得し、自動的にグラフへマッピング。
グラフ拡張LLMエージェントを探求する研究者・学生 既製のデモドメインと合成データにより、インフラの配線ではなくエージェントロジックに集中できます。
「エージェントメモリ」のリファレンス実装を探しているNeo4jユーザー Neo4j、LiteLLM、さまざまなエージェントSDKを本番向けFastAPIサービスで組み合わせる方法を示します。

どのように動作しますか?

  1. ウィザード – create-context-graph がいくつかのプロンプト(ドメイン、フレームワーク、メモリバックエンド、デモデータ、コネクタ)を尋ねます。フラグを使えば非対話式でも実行できます。
  2. ドメインオントロジ – エンティティ型、リレーションシップ、ツール定義を記述したYAMLファイルが選択(または自由文の説明から生成)されます。これがコード生成を駆動します。
  3. テンプレートレンダリング – Jinja2テンプレートがオントロジーを次のものに変換します:
    • Neo4jスキーマ(schema.cypher)
    • FastAPI API 用の Pydantic モデル
    • エージェント固有のツールラッパー
    • グラフを可視化するフロントエンドコンポーネント。
  4. メモリレイヤー – 生成されたバックエンドは、neo4j-agent-memory ライブラリ(v0.4)を配線します。これは以下と通信できます:
    • NAMS – ホスト型 Neo4j バックアップのメモリサービス(デフォルト)。NAMS API キーのみが必要です。
    • Self-hosted Neo4j – ローカルまたは Aura インスタンスへの bolt 接続。完全な Cypher、GDS、リレーションシップのサポートを提供します。
  5. LLM 統合 – エージェントは LiteLLM 互換のプロバイダー文字列を使用するため、Anthropic、OpenAI、Bedrock、Ollama などを接続できます。エンティティ抽出はデフォルトで Claude‑haiku または GPT‑4o‑mini を使用します。
  6. フロントエンド – Next.js アプリが以下を表示します:
    • ストリーミングチャット(Server‑Sent Events)
    • リアルタイムのツール呼び出しの可視化
    • インタラクティブなグラフビュー(ノードの展開、ドラッグ/ズーム、プロパティパネル)
    • ドキュメントブラウザと、エージェントの推論ステップのトレースビューア。
  7. データインポート – コネクタを選択した場合、スキャフォールドには、選択したSaaSサービスからNeo4jにデータをプルするためのスクリプト(import_data.py)と make import ターゲットが含まれます。

生成されたプロジェクトの内部構造

my-app/
├─ backend/               # FastAPI サービス
│  ├─ app/main.py        # エントリポイント
│  ├─ app/agent.py       # LLMエージェント(フレームワーク固有)
│  ├─ app/memory.py      # Neo4j または NAMS メモリ統合
│  ├─ app/context_graph_client.py   # Neo4j 用 CRUD ヘルパー
│  ├─ app/gds_client.py  # オプションの Graph Data Science 呼び出し
│  └─ connectors/        # SaaS インポートコード(選択時)
├─ frontend/              # Next.js + Chakra UI の UI
│  ├─ components/ChatInterface.tsx   # ストリーミングチャットUI
│  ├─ components/ContextGraphView.tsx # インタラクティブなグラフ表示
│  └─ …
├─ data/ontology.yaml     # 生成に使用するドメイン定義
├─ data/fixtures.json     # 合成デモエンティティ(--demo 時)
├─ cypher/schema.cypher   # 制約とインデックス
├─ docker-compose.yml     # セルフホストモード用のオプションの Neo4j コンテナ
├─ Makefile               # install、start、seed、import、test …
└─ README.md              # プロジェクト固有のドキュメント

ホスト型メモリとセルフホスト型メモリのどちらを選ぶべきか

機能 NAMS(ホスト型) セルフホスト Neo4j
セットアップ Neo4j のインストール不要、APIキーのみ Docker/Aura を実行し、bolt URL を設定
書き込み機能 エンティティ作成のみ。リレーションシップは description 内のマークダウンブロックとして保存 完全なCypher書き込み、ネイティブエッジ、GDSアルゴリズム
スケーラビリティ マネージドサービス、Neo4j ベースのREST APIに限定 クラスターサイズ、レプリケーションなどを制御可能
コスト Neo4j Labs メモリサービスで従量課金制 Neo4j のデプロイメントに依存
ユースケース クイックデモ、プロトタイピング、個人用ナレッジベース 複雑なグラフクエリや分析を必要とする本番グレードのアプリ

クイックスタート例(Python、NAMS)

uvx create-context-graph my‑app \
  --domain healthcare \
  --framework strands \
  --nams‑api‑key sk‑nams‑…

cd my‑app
make install          # pip install + npm install
make start            # launches FastAPI + Next.js

http://localhost:3000 でUI、http://localhost:8000/docs でAPIにアクセスできます。


制限事項と注意点

  • NAMSバックエンドは、ネイティブなNeo4jリレーションシップを作成したり、任意のCypherを実行したりできません。生成されたアプリは、エッジをマークダウンでエンコードすることでこれを回避しています。
  • 高度なGraph Data Science(GDS)機能の一部は、セルフホストモードでのみ利用できます。
  • デフォルト以外のメモリプロバイダーを使用するには、LiteLLM文字列と場合によってはAPIキーを指定する必要があります。
  • このプロジェクトは実験的です。Neo4j Labs によってメンテナンスされていますが、公式サポートはありません。

結論

Create Context Graph は、いくつかの選択(ドメイン、エージェントフレームワーク、メモリバックエンド)を、数分で完全に機能するAI拡張グラフアプリケーションに変えます。LLMエージェントがNeo4jナレッジグラフ上でどのように保存・推論できるかを、配線をゼロから書かずに試したい人に最適です。


便利なリンク(リポジトリより)

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト