Hypabase について
Hypabaseは、SQLiteに永続化するPython製ハイパーグラフライブラリです。知識グラフやAIエージェントの記憶向けに、複数ノード間の関係を出典と確信度とともに扱えます。
主な機能
- 01ハイパーエッジで多ノード関係を表現
- 02出典と確信度を記録
- 03ローカルSQLiteに永続化
- 04出典と確信度による検索
- 05名前空間によるデータ分離
- 06メモリーMCPサーバーとCLI
活用シーン
- 01セッションをまたぐエージェント記憶の保存
- 02複数の実体を含む臨床イベントの表現
- 03RAG用の抽出関係の保存
MCP 対応
7つのツールを備えたメモリーMCPサーバーが含まれ、MCPクライアントから永続的な構造化記憶を利用・管理できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Hypabase
プロベナンスと SQLite 永続化に対応した Python ハイパーグラフライブラリです。
インストール
uv add hypabase
クイック例
from hypabase import Hypabase
hb = Hypabase("my.db")
# One edge connecting five entities
hb.edge(
["dr_smith", "patient_123", "aspirin", "headache", "mercy_hospital"],
type="treatment",
source="clinical_records",
confidence=0.95,
)
# Query edges involving a node
hb.edges(containing=["patient_123"])
# Find paths between entities
hb.paths("dr_smith", "mercy_hospital")
機能
- ハイパーエッジ — 1つの関係で2つ以上のノードを接続します
- プロベナンス — すべてのエッジが
sourceとconfidenceを持ちます - SQLite 永続化 — データはローカルファイルに自動的に保存されます
- O(1) 頂点集合検索 — ノードの正確な集合を基にエッジを検索します
- 名前空間の分離 — 1つのファイル内でスコープを限定したビューを利用する
.database("name") - プロベナンスクエリ —
sourceとmin_confidenceでフィルタリングし、sources()で要約します - メモリ MCP サーバー — AI エージェントの永続メモリ向けの7つのツール(remember、recall、forget、consolidate、connections、who_knows_what、resolve_contradiction)
- CLI —
hypabase init、hypabase node、hypabase edge、hypabase query
プロベナンス
すべてのエッジが source と confidence を持ちます。
hb.edge(
["patient_123", "aspirin", "ibuprofen"],
type="drug_interaction",
source="clinical_decision_support_v3",
confidence=0.92,
)
# Bulk provenance via context manager
with hb.context(source="schema_analysis", confidence=0.9):
hb.edge(["a", "b"], type="fk")
hb.edge(["b", "c"], type="fk")
# Query by provenance
hb.edges(source="clinical_decision_support_v3")
hb.edges(min_confidence=0.9)
# Overview of all sources
hb.sources()
名前空間の分離
1つのファイル内でデータを別々の名前空間に分離します。
hb = Hypabase("knowledge.db")
drugs = hb.database("drugs")
sessions = hb.database("sessions")
drugs.node("aspirin", type="drug")
sessions.node("s1", type="session")
drugs.nodes() # -> [aspirin]
sessions.nodes() # -> [s1]
ハイパーグラフとは?
通常のグラフでは、エッジはちょうど2つのノードを接続します。ハイパーグラフでは、ハイパーエッジと呼ばれる1つのエッジで、任意の数のノードを同時に接続できます。
医療上の出来事を考えてみましょう。*Smith 医師が Mercy Hospital で、頭痛のある患者123にアスピリンを処方します。*従来のグラフでは、これを医師と患者、医師と薬、患者と病院という二項エッジに分割します。その結果、それらが1つの出来事に属するという事実は構造ではなく推論になります。ハイパーグラフでは、これをネイティブに格納し、5つのエンティティすべてを1つのエッジで接続します。
現実世界の関係には、2つを超える要素が関わることが多いため、これは重要です。論文には著者が1人ではなく3人または4人います。取引には、買い手、売り手、製品、決済方法が関わります。化学反応には、反応物と生成物の両方が関わります。これらをペアに押し込めると、そのまとまりは暗黙的になります。
なぜプロベナンスが必要なのですか?
関係が手動入力、LLM による抽出、センサーデータ、臨床記録など、異なるソースから得られる場合、それぞれの出所と信頼度を把握する必要があります。Hypabase は、すべてのエッジに2つのフィールドを持たせることでこれを追跡します。source(出所を示す文字列)と confidence(0から1までの浮動小数点数)です。これらのフィールドでクエリをフィルタリングし、hb.sources() を使ってグラフ内のすべてのソースの概要を取得できます。
ハイパーグラフの活用例
- ナレッジグラフ — 複雑な現実世界の関係を分解せずに表現します
- エージェントメモリ — セッションをまたいで保持される、AI エージェント向けの構造化されたクエリ可能なメモリです
- 生物医学データ — 薬物相互作用、臨床イベント、分子経路
- RAG パイプライン — 検索拡張生成で取得する関係を保存します
- サプライチェーン、コラボレーションネットワークなど、2つを超える要素が関わるあらゆる関係
この幅広い考え方は、AGI 向けの知識表現にハイパーグラフに類似した構造を使う OpenCog の AtomSpace など、AI 研究における長い歴史に根ざしています。近年の研究では、検索と推論にハイパーグラフが特化して適用されています。
- HyperGraphRAG — 医学、農業、コンピューターサイエンス、法律にわたる n 項知識検索
- Cog-RAG — テーマレベルとエンティティレベルの想起を組み合わせた、二重ハイパーグラフ検索
- Hypergraph Memory for Multi-step RAG — 長文脈の関係モデリングに向けた、ハイパーグラフベースのメモリ
MCP サーバー
Hypabase には、AI エージェントが構造化された永続メモリとして利用できる、7 つのツールを備えた Memory MCP サーバーが含まれています。Claude Code、Claude Desktop、Cursor、Windsurf、および MCP 互換のあらゆるクライアントで動作します。
uv add hypabase
hypabase-memory
CLI
uv add hypabase
hypabase init
hypabase node dr_smith --type doctor
hypabase edge dr_smith patient_123 aspirin --type treatment --source clinical_records
hypabase query --containing dr_smith
hypabase stats
ドキュメント
ライセンス
Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。