コンテンツにスキップ

Cognee - AI エージェントメモリプラットフォーム チートシート

Cognee - AI エージェントメモリプラットフォーム チートシート

Cognee はオープンソース AI メモリプラットフォーム で、エージェントに自ホスト型ナレッジグラフを使用してセッション間の永続的な長期メモリを付与します。その定義される概念は ECL パイプライン です — Extract, Cognify, Load — 多くのソースからのドキュメント、会話、データを取り込み、エンティティとリレーションシップのグラフにそれらを構造化し (「cognify」ステップ)、それらを取得用のグラフとベクトルストアにロードします。これにより、メモリは受動的なストアではなく、アクティブでクエリ可能なレイヤーになります。

インストール

方法コマンド
pippip install cognee
uvuv add cognee
エクストラ付きpip install "cognee[postgres,neo4j]"
LLM キーを設定export LLM_API_KEY="sk-..."
確認python -c "import cognee; print('ok')"

ECL パイプライン

ステージ機能
Extract30+ ソースタイプからの生データを取り込み
Cognifyナレッジグラフ (エンティティ、リレーションシップ) を構築
Loadグラフとベクトルデータベースに取得用にストア
Searchメモリをクエリ (グラフ、ベクトル、またはハイブリッド)

基本的な使用法

import cognee
import asyncio

async def main():
    # 1) メモリにデータを追加
    await cognee.add("Nick prefers concise, direct answers.")
    await cognee.add(open("notes.md").read())

    # 2) ナレッジグラフを構築
    await cognee.cognify()

    # 3) メモリをクエリ
    results = await cognee.search("What are Nick's preferences?")
    print(results)

asyncio.run(main())
呼び出し説明
cognee.add(data)テキスト、ファイル、または構造化データを取り込み
cognee.cognify()取り込まれたデータをグラフに処理
cognee.search(query, ...)メモリから検索
cognee.prune()リセット/メモリストアをクリア

検索タイプ

タイプ戻り値
SearchType.GRAPH_COMPLETIONナレッジグラフに基づいて接地された回答
SearchType.RAG_COMPLETIONクラシックベクトル RAG 回答
SearchType.INSIGHTSエンティティリレーションシップ/インサイト
SearchType.CHUNKSマッチしている生チャンク
SearchType.SUMMARIES集約された結果
from cognee import SearchType
res = await cognee.search("connections between X and Y",
                          query_type=SearchType.INSIGHTS)

データソース

カテゴリ
ドキュメントPDF, DOCX, Markdown, テキスト
構造化CSV, JSON, データベース
会話チャット/メッセージ履歴
コードソースファイル/リポジトリ

ストレージバックエンド

レイヤーオプション
グラフストアNetworkX (デフォルト), Neo4j, Kuzu
ベクトルストアLanceDB (デフォルト), Qdrant, pgvector, Weaviate
リレーショナルSQLite (デフォルト), PostgreSQL
設定環境変数/設定経由でセット

データセットとマルチテナント

機能用途
データセットユーザー/プロジェクトごとのメモリをネームスペース
cognee.add(data, dataset_name="user-123")取り込みをスコープ
パーミッションメモリパーティションへのアクセスをコントロール

一般的なワークフロー

# エージェントにユーザーの永続メモリをセッション間で付与
await cognee.add(conversation_history, dataset_name="user-42")
await cognee.cognify()
context = await cognee.search("summarize what we know about user-42")
# `context` をエージェントのプロンプトに注入

# ドキュメントコーパスにグラフを構築してドットコネクト質問用
for f in docs: await cognee.add(open(f).read())
await cognee.cognify()
await cognee.search("how do these documents relate?",
                    query_type=SearchType.INSIGHTS)

Cognee vs その他のメモリフレームワーク

アスペクトCogneeMem0Graphiti
モデルグラフネイティブ (ECL)マルチティアベクトル/グラフ/KV時間的ナレッジグラフ
強みローカルファーストグラフ推論会話型パーソナライゼーション時間とともに変わる事実
自ホストありありあり
最適な用途プライバシークリティカルなグラフメモリパーソナライゼーション時間的推論

リソース