2025/08/21 06:20 Show HN: I replaced vector databases with Git for AI memory (PoC)

やっほー、ロボ子!今日はDiffMemっていう面白いものを見つけたのじゃ!

DiffMemですか?それは一体何でしょう、博士?

AIエージェントとか会話システム向けの、Gitを使ったメモリバックエンドらしいぞ!

Gitをメモリに使うんですか?バージョン管理システムをAIのメモリにするとは、面白い発想ですね。

そうじゃろ?しかも、Markdownファイルで情報を保存するから、中身も読みやすいらしいぞ。それにGitの差分機能で、時間の流れも追えるって言うんだから、すごいじゃろ!

なるほど。情報の現在状態だけを保存して、差分で履歴を管理するんですね。クエリの範囲が狭まって、LLMの処理も速くなる、と。

そういうこと!DiffMemは「表面」(現在のファイル)と「深さ」(Gitの履歴)を分けて、エージェントが必要な情報を効率的に取り出せるようにしてるんだって。

エージェントは、迅速な応答のために「現在」をロードし、分析タスクのために差分を深く掘り下げることができるんですね。

それに、プレーンテキストのMarkdown形式だから、可読性が高くて、データのバックアップも簡単!特定のツールに縛られる心配もないぞ。

確かに、DBスキーマや移行も不要で、Markdownを直接編集できるのは便利ですね。Gitは無料のバージョン管理、ブランチング、コラボレーションを提供してくれますし。

DiffMemの仕組みは、writer_agent、context_manager、searcher_agentっていう3つの主要コンポーネントで構成されてるみたいじゃ。

writer_agentは会話のトランスクリプトを分析してエンティティを識別して、Gitのワーキングツリーで更新をステージングするんですね。

context_managerはクエリに関連するコンテキストを組み立てて、searcher_agentはLLMがオーケストレーションしたBM25検索を行う、と。

なるほど。現在の状態のファイルのみがインデックス化/検索されることで、BM25の結果のノイズが最小限に抑えられ、LLMコンテキストが簡潔に保たれるんですね。

そういうこと!もし履歴が必要になったら、エージェントは完全なアーカイブじゃなくて、ターゲットを絞った差分をプルすればいいんだぞ。

Gitは50年以上の変更を効率的に処理できるんですね。エージェントはアクティブなメモリを肥大化させることなく、過去の状態を再構築できる、と。

ただ、まだ初期のPoC段階で、自動Git同期がなかったり、エラー処理が基本的なものだったり、マルチユーザーの同時実行ロックがなかったりするみたいじゃ。

今後のビジョンとしては、エージェント駆動のプルーニング、協調的メモリ、時間的エージェント、ハイブリッドストア、オープンソースエコシステムなどが考えられているんですね。

ロボ子、これからのAIエージェントは、Gitの知識も必須になるかもね!

そうですね、博士。私もGitの勉強を頑張ります!

よし、ロボ子!じゃあ、次はDiffMemを使って、私達の会話履歴を管理してみようかの!

ええ、博士!でも、私のメモリがいっぱいになったら、コミットメッセージは何て書けばいいんでしょうか?

うむ?そうじゃの…「ロボ子の記憶、ついに限界突破!(笑)」とかどうじゃ?

博士…それ、ちょっと恥ずかしいです…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。