「6行で実現」AIエージェントに"長期記憶"を持たせる方法:topoteretes/cognee徹底解説
topoteretes/cognee は、AIエージェントに「記憶(Memory)」を持たせるためのオープンソースフレームワークです。特に注目すべきは、開発元が謳っているように、「6行のコードでAIエージェントの記憶を実現」というシンプルさと手軽さです。
これは、エージェントが過去の対話や処理した情報を保持し、それを基に次の行動を決定したり、より文脈に沿った応答を生成したりできるようにするための基盤を提供します。
このライブラリは、特にAIエージェントを扱うアプリケーションを開発するエンジニアにとって、非常に大きな利点があります。
開発速度の向上
複雑な記憶管理を抽象化
記憶の保存、検索、更新といった複雑な処理をライブラリが担ってくれるため、エンジニアはエージェントのコアロジック(「何をさせるか」)に集中できます。
導入の手軽さ
謳い文句の通り、わずかなコードで記憶機能を実現できるため、プロトタイピングやPoC(概念実証)を非常に迅速に進められます。
より賢いAIエージェントの実現
文脈の維持 (Contextual Awareness)
過去の情報を参照できるため、エージェントは長期的な会話の文脈を理解し、一貫性のある、より自然な応答や行動が可能になります。
情報の活用
一度取り込んだ知識やドキュメントを、エージェントがいつでも「思い出す」ことができるようになります。
Pythonのパッケージ管理ツールであるpipを使って、簡単にインストールできます。
Python環境がセットアップされていることを確認してください。
ターミナルやコマンドプロンプトで以下のコマンドを実行します。
pip install cognee
補足
cogneeは、内部でベクターデータベースなどのコンポーネントを使用する可能性がありますが、このシンプルなインストールで必要な依存関係が一緒に導入されます。
「6行のコードで記憶を実現」というコンセプトに基づいた、最もシンプルな利用例を見てみましょう。この例では、AIエージェントに特定の情報(知識)をインプットし、後でそれを活用させる流れをシミュレーションします。
from cognee.root_directory import get_root_directory
from cognee.storage.vector import get_vector_storage
# 1. 記憶の場所を設定(プロジェクトのルートディレクトリなどを指定)
ROOT_DIR = get_root_directory()
print(f"Using root directory: {ROOT_DIR}")
# 2. Vector Storageのインスタンスを取得
# このストレージがエージェントの「記憶」を担います。
vector_storage = get_vector_storage()
# 3. 知識を記憶にインプット (データのロード)
# ここではシンプルなテキストを例としますが、実際にはドキュメントファイルなどをロードします。
document_id = vector_storage.add_document(
"当社の主力製品は「スマートウォッチX」で、健康管理と決済機能が特徴です。"
)
print(f"Document added with ID: {document_id}")
# 4. 記憶から関連情報を検索 (エージェントが「思い出す」行為)
query = "主力製品は何ですか?機能も教えてください。"
results = vector_storage.retrieve(query)
# 5. 検索結果を表示
print("\n--- 検索結果 (エージェントの記憶) ---")
for result in results:
print(f"Score: {result['score']:.4f}, Content: {result['text']}")
# 6. (応用) この結果をLLMへのプロンプトに含めて回答を生成させる...
get_root_directory()
cogneeがファイルを保存したり、設定を読み込んだりするベースとなるディレクトリを指定します。
get_vector_storage()
ベクターデータベースのインスタンスを取得します。これがエージェントの「長期記憶」となり、インプットされたデータを意味に基づいて保存・検索します。
vector_storage.add_document(...)
エージェントに知識を教え込む行為です。テキストがベクトル化され、ストレージに保存されます。
vector_storage.retrieve(...)
エージェントが過去の記憶を検索する行為です。入力された質問(query)と意味的に近い記憶を取り出してくれます。
実際のAIエージェント実装では、このresults(検索結果)をGPTやClaudeなどの大規模言語モデル(LLM)へのプロンプトに含めることで、LLMがその情報を参照して回答を生成できるようになります。(これは RAG (Retrieval-Augmented Generation) と呼ばれる一般的なパターンです)
topoteretes/cognee は、このRAGのような複雑な記憶管理の土台を、非常にクリーンで少ないコードで提供してくれるツールというわけです。
ぜひ、このシンプルなコードを試して、あなたのAIエージェントに記憶力を持たせてみてくださいね!