見出し画像

Cogneeを試す — 人間とAIが「忘れない」ために


導入:なぜ記憶は重要なのか


毎週、新しいAIツールを試して記事にする。その過程で気づいたことがある。人間もLLMも、同じように忘れるということだ。

Fabricというフレームワークを使って、GitHubのREADMEからテーマと指示を与えると、article.mdという記事の下書きが自動生成される。ここまでは完全に自動化できる。でも、その下書きだけでは、むみま|道具道の読者に届ける記事にはならない。

なぜなら、「なぜこのツールが今ここにあるのか」「既存の選択肢とどう違うのか」という系譜と動機づけが足りないからだ。

だから必ず、一度 Claude との対話を挟む。そこで「困り」を補充し、「系譜」を編み直し、「試す価値」を再評価する。その対話の中で、私たちは学んでいるはずだ。

「困り」を補充し、「系譜」を編み直し、「試す価値」を再評価する。

Claude との対話を挟む


ところが、その学んだことが、次の記事を書く時に完全には残らない。前の週に Cognee について気づいたことを、次に Node-RED を扱う時に自動的に参照できない(人間は普通に忘れる)。LLM も同じで、別の conversation に切り替わると、前の文脈はリセットされる(AIも)。



この「繋ぎの喪失」を埋めるのが、Cogneeという選択肢だ。

AIが賢くなるほど長い作業がやれるのだが、人はご飯を食べたり散歩をしないとよい状態を保てない。人がやるには中断と再開のパターンが増えるのだ。cognee を手元に置き、「前回のつづきを思い出したい」と頼めるから、思い出しの手掛かり系として便利である。セルフホストすればローカルで使える。



困りの系譜:なぜセッション記憶では足りないのか

既存の RAG(Retrieval Augmented Generation)システムやエージェントフレームワーク(LangChain、LlamaIndex)は、「このセッションの中」では完璧に動く。ドキュメントを読み込んで、質問に答える。レファレンスを検索して生成する。
しかし、セッションが終わると、すべてがリセットされる。ユーザーとのやり取りの履歴も失われる。エージェントが前回学んだことも忘れられる。


AIエージェント開発の世界では、これは本当に大きな課題だった。チャットボットが「昨日のあなたの好みは?」と聞いてくる。前のセッションの情報を持っていない。


複数ステップのワークフロー自動化ツール(Node-REDや Dify)を使っていても、各ステップが生み出した中間成果物や試行錯誤の記録が、次の実行時に参照できない。
つまり、AIエージェントは「永続的な記憶」を持っていない。人間が経験から学ぶように、より複雑な推論と意思決定ができない。




技術的系譜:知識グラフ+ベクトルDBの統合へ

Cognee の面白さは、この問題に対して「知識グラフ」と「ベクトルデータベース」を組み合わせる選択肢を提示したことだ。

従来の RAG は、ドキュメントを意味的に似た断片に分割し、ベクトル化して、「質問に近い意味の断片」を検索する。これは十分に機能するが、断片と断片の関係性は保たれない
一方、知識グラフはタテ・ヨコの関係性を明示する。「ツール A は ツール B の前身である」「この機能と あの機能は矛盾している」といった、意味的な繋ぎを表現できる。


Cognee がこの両者を統合するのは、単なる「ハイブリッド」ではなく、「意味的な理解」と「関係性の理解」の両立を狙ったものだ。
さらに興味深いのは、Postgres という単一インスタンスで動くという設計だ。多くの企業向けAIシステムは、グラフDB、ベクトルDB、リレーショナルDBを別々に運用する。それぞれの保守が複雑になる。Cognee は PGVector をPostgres の拡張として活用することで、インフラの簡素化を実現している。
これは「なぜこのツールが今ここにあるのか」という系譜を示唆している——「複数DBの運用負荷」という困りに対する解としてのデザインだ。




Cogneeの本体:4つのコマンド

Cognee の API は、シンプルな4つの動詞で構成されている。

python
await cognee.remember(...)   # 覚える
await cognee.recall(...)     # 思い出す
await cognee.improve(...)    # より良く理解する
await cognee.forget(...)     # 忘れる

このシンプルさが、実は最大の特徴だ。技術的には複雑な知識グラフ構築と ベクトル検索が動いているのに、インターフェースは「人間が日々やっている認知プロセス」そのものになっている。

  • remember:新しい情報に出会ったら、それを記憶する

  • recall:必要になったら、過去の情報を想起する

  • improve:試した結果、より良い理解が生まれたら、記憶を洗練させる

  • forget:もう不要な情報は手放す

これは、心理学でいう「スペーシング効果」や「インターリーブ学習」の自然な体現でもある。人間が学ぶ時のリズムをツール化している。



4つのコマンド


重要な発見:「人間が最初に認知すべき」という段階性

Cognee を試す中で、最も重要な気づきが生まれた。


LLM も人間も、本質的には同じ構造を持っている。「流れの中では保持する、が、流れを離れるとリセットされる」という課題だ。
従来のツール評価では、「このツールをLLMと繋ぐとどう便利か」という視点から始まる。だが、Cognee はそうではない。人間が先に、remember / recall / improve / forget という4つの操作を意識的に体験する必要がある
なぜなら、その体験こそが、「LLM との協働」を成立させるための基盤だからだ。


実際、今週のこの記事を書く過程を思い返してみると:

  1. Fabric が生成した article.md を読む(= remember

  2. 「既存フレームワークとの違いが曖昧だ」と感じる(= recall の不完全さを体験)

  3. Claude に「Cognee は LangChain と補完関係か競合か」と聞く

  4. Claude の回答を「自分たちの言葉」で咀嚼する(= improve

  5. 前の Node-RED や Dify 評価の記憶と照らし合わせて、不要な論点を削ぎ落とす(= forget


この一連のプロセスは、まさに Cognee が実装している4つのコマンドと同じ構造だ。
つまり、Cognee を「使いこなす」とは、最初のフェーズでは「自分たちの思考プロセスを外部化する」ことなのだ。




パイプラインの2段階性

私たちのツール評価の過程は、当初 Fabric という自動化フレームワークだけでは完成しなかった。

Fabric(自動化)→ article.md
         ↓
    [人間が介入]
         ↓
    Claude との対話
         ↓
    note 記事

Fabric(自動化)しても、
なんか普通の自動化になる

この「人間が介入」する部分が、実は最も価値の高い層だ。ここでこそ、系譜が編まれ、試す価値が判定される。
Cognee をこの間に挿入すると、パイプラインが高度になる。


Fabric → article.md
    ↓
[remember]「Cognee の記事の困りはここだ」
    ↓
[recall]「あ、前のエージェント系の記事では何が課題だったっけ?」
    ↓
Claude と対話
    ↓
[improve]「新しい理解が生まれた。記憶に加える」
    ↓
[recall]「次の Node-RED 記事で、前の学習を参照する」
    ↓
note 記事

Cognee をどこに挿入するのか
その位置を
真剣に考える

この仕組みがあると、各記事がただの「単発の評価」ではなく、「ツール生態系の理解の深化」として繋がっていく




試す価値:ハーネス設計の強化

むみま|道具道では、「ハーネス設計」という言葉を大事にしている。AIの自動化に人間の判断軸をしっかり組み込む設計思想だ。


Cognee は、このハーネス設計を強化する可能性を持っている。
なぜなら、記憶が外部化されることで、「人間の判断軸」が可視化され、蓄積されるからだ。
例えば、このシリーズで Cognee を評価した際の「困り」を Cognee 自身に記憶させておけば、次に LLM-based エージェントフレームワークを評価する時、自動的にその判定基準が参照される。

「あ、前回は『既存フレームワークとの違い』が課題だった。今回も同じ視点で見ておこう」

「あ、前回は『既存フレームワークとの違い』が課題だった。今回も同じ視点で見ておこう」と。


これは単なる「ツール機能」ではなく、「評者としての一貫性」「学習の可視化」を実現する行為だ。


また、Node-RED や Dify、Ollama といった、既に試してきたノードベース自動化ツールや、ローカル AI 基盤と、Cognee の関係性も自然に浮かび上がってくる。

「Cognee は『記憶層』に特化し、これらのツールは『実行エンジン』だ」という位置付けが、忘れられずに保持される。




まとめ:「忘れない」という人間的な営み

Cognee の本当の価値は、技術的な優れさよりも、「人間の認知プロセスを尊重している」という思想にあると感じる。


セッション記憶と永続記憶の階層化。意味検索と関係性検索の統合。これらは、結局のところ「人間が学ぶ時のやり方」を実装しているのだ。
そして、最も重要なのは、「人間が先に、この4つの操作を自覚する」ことの価値だ。


自動化ツール(Fabric)と LLM(Claude)の間に、人間の「忘れない」という営みを挿入することで、初めて「道具」が「相棒」になる。単なる効率化ではなく、思考の深化が始まるのだ。
Cognee を試すことは、結果として、自分たちのツール評価プロセスそのものを改善することになった。



スコア:A(即手元で動かす)
理由は単純だ。人間とLLMの協働の不完全性を、最も自然な形で埋めるツールだから。ただし、導入の最初のフェーズでは、「LLM との連携」ではなく、「自分たちの思考をどう記憶させるか」という問いから始めることをお勧めする。その体験を経た後なら、LLM との組み合わせの力を、最大限に引き出せるだろう。




最初の一歩

bash

uv pip install cognee

その後、Python で以下を試してみる。

import os
os.environ["LLM_API_KEY"] = "YOUR_OPENAI_API_KEY"

import cognee
import asyncio

async def main():
    # フェーズ1:人間の思考プロセスを記憶させる
    await cognee.remember(
        "新しいツールを試した時の困りポイント:既存ツールとの違いが不明確だった",
        session_id="my_tool_review"
    )
    
    # フェーズ1.5:思い出す(意識的な想起)
    results = await cognee.recall("ツール評価の困り")
    print("困りの想起:", results)
    
    # フェーズ2:Claude との対話後、理解を洗練させる
    await cognee.improve(
        dataset="tool_reviews",
        insight="このツールは『記憶層』に特化。既存のエージェントフレームワークと補完関係"
    )
    
    # フェーズ3:次の記事の参考にする
    prev_learning = await cognee.recall("エージェント系ツールの評価軸", session_id="my_tool_review")
    print("前の学習:", prev_learning)

if __name__ == '__main__':
    asyncio.run(main())


実際に動かしながら、「覚える」「思い出す」「より良く理解する」「忘れる」という4つの行為を体験する。
その時点で、Cognee の本当の価値が見えてくるはずだ。




#Cognee #AIメモリ #永続記憶 #知識グラフ #ハーネス設計
#AIエージェント #ツール評価 #人間とAIの協働 #むみま道具道



いいなと思ったら応援しよう!

むみま|道具道 ここまで読んでいただけるとは✨チップはnote創作に使わせていただきます🤗