Repolode
getzep

getzep/graphiti

AIエージェントのメモリやコンテキストとして、時間の経過に伴う事実の変化を追跡する時系列ナレッジグラフを構築するPythonフレームワーク。

スター
32,066
フォーク
3,294
未解決の Issue
488
最終コミット
10 時間前

これは何?

Graphitiは、会話、構造化レコード、非構造化テキストからAIエージェント向けのコンテキストグラフを構築します。各事実は、有効期間を持つエンティティ-関係-エンティティのエッジとして保存されるため、情報が変わったときは古い事実を削除せず無効化し、現在と過去の状態の両方を照会できます。派生した事実にはすべて、その根拠となった元のエピソードへのリンクが保持されます。

バッチ処理を前提とするGraphRAGパイプラインとは異なり、新しいエピソードはグラフ全体を再計算することなく、段階的に統合されます。検索では、セマンティック埋め込み、BM25キーワード検索、グラフ探索を組み合わせます。開発者はPydanticモデルでエンティティ型やエッジ型を定義することも、データから構造を自動的に形成させることもできます。

GraphitiはグラフバックエンドとしてNeo4j、FalkorDB、Amazon Neptune、Kuzu(非推奨)に対応し、デフォルトではOpenAIを利用します。また、Anthropic、Gemini、Groq、Azure OpenAI、OllamaなどのOpenAI互換エンドポイントにも対応しています。認証を追加しない限り、本番環境での利用を想定していないリファレンス実装のMCPサーバーとRESTサーバーが含まれています。

主な機能

  • 01事実の有効期間を追跡し、古くなった事実を削除せず無効化する
  • 02派生した事実から、根拠となった元のエピソードまでの来歴を保持する
  • 03グラフ全体を再計算せずに段階的に更新できる
  • 04埋め込み、BM25キーワード検索、グラフ探索を組み合わせたハイブリッド検索
  • 05Pydanticモデルでカスタムのエンティティ型やエッジ型を定義できる
  • 06Neo4j、FalkorDB、Amazon Neptuneなど、プラグイン可能なバックエンドに対応する

ユースケース

  • 時間とともに変化するユーザーの好みを、チャットボットやエージェントの長期記憶として保持する
  • 構造化レコードと文書を統合し、履歴も保持するナレッジベースを構築する
  • 「前四半期には何が事実だったか」といった、特定時点に関する質問に回答する
  • OpenAI互換エンドポイント経由でローカルモデルを使い、時系列グラフRAGのプロトタイプを作る

クイックスタート

  1. 1

    pipでライブラリをインストールします

    pip install graphiti-core
  2. 2

    OPENAI_API_KEY環境変数を設定します(GraphitiはデフォルトでOpenAIを使用します)

  3. 3

    クイックスタートでは、Docker経由でFalkorDBなどのグラフデータベースを起動します

    docker run -p 6379:6379 -p 3000:3000 -it --rm falkordb/falkordb:latest
  4. 4

    examples/quickstartディレクトリからクイックスタートの例を実行します

使う前に知っておきたいこと

  • Neo4j、FalkorDB、NeptuneなどのグラフデータベースとLLM APIキーが必要なため、セットアップには相応の手間がかかります。
  • セルフホストのみ対応しており、このプロジェクトによるマネージドホスティングはありません。
  • 構造化出力に対応したLLMで最もよく動作します。小型モデルではデータ取り込みに失敗する場合があります。
  • レート制限を避けるため、デフォルトの同時実行数は少なく設定されています。そのため、調整するまではデータ取り込みに時間がかかることがあります。

トピック

よくある質問

graphiti とは?
AIエージェントのメモリやコンテキストとして、時間の経過に伴う事実の変化を追跡する時系列ナレッジグラフを構築するPythonフレームワーク。 Graphitiは、会話、構造化レコード、非構造化テキストからAIエージェント向けのコンテキストグラフを構築します。各事実は、有効期間を持つエンティティ-関係-エンティティのエッジとして保存されるため、情報が変わったときは古い事実を削除せず無効化し、現在と過去の状態の両方を照会できます。派生した事実にはすべて、その根拠となった元のエピソードへのリンクが保持されます。
graphiti は無料で使えますか?ライセンスは?
graphiti は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
graphiti は今もメンテナンスされていますか?
活発にメンテナンス中。graphiti の最終コミットは 2026年10月20日 です。
graphiti は何に使えますか?
時間とともに変化するユーザーの好みを、チャットボットやエージェントの長期記憶として保持する 構造化レコードと文書を統合し、履歴も保持するナレッジベースを構築する 「前四半期には何が事実だったか」といった、特定時点に関する質問に回答する OpenAI互換エンドポイント経由でローカルモデルを使い、時系列グラフRAGのプロトタイプを作る
graphiti のインストール方法は?
pipでライブラリをインストールします: pip install graphiti-core OPENAI_API_KEY環境変数を設定します(GraphitiはデフォルトでOpenAIを使用します) クイックスタートでは、Docker経由でFalkorDBなどのグラフデータベースを起動します: docker run -p 6379:6379 -p 3000:3000 -it --rm falkordb/falkordb:latest examples/quickstartディレクトリからクイックスタートの例を実行します
graphiti はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/getzep/graphiti

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト