Open1
memary: Open-Source Longterm Memory for Autonomous Agents
なぜmemaryを使うのか?
エージェントは現在、有限のコンテキストウィンドウに制約されたLLMを使用している。memaryは、エージェントがナレッジグラフに大規模な情報コーパスを保存し、我々のメモリモジュールを通してユーザーの知識を推測し、意味のある応答のために関連する情報だけを取り出すことを可能にすることで、この制約を克服している。
特徴
- ルーティングエージェント: ReActエージェントを活用して、多くのツール間でクエリをルーティングする。
- ナレッジグラフの作成と検索: Neo4jを活用し、エージェントの応答を保存したナレッジグラフを作成し、後で検索できるようにする。
- メモリストリーム: エンティティ抽出を使用して、ナレッジグラフに格納されたすべてのエンティティを追跡する。このストリームは、ユーザの知識の幅を反映する。
- エンティティ知識ストア: メモリストリーム内のすべてのエンティティをグループ化し、順序付けし、上位N個のエンティティをコンテキストウィンドウに渡す。この知識ストアは、ユーザーの知識の深さを反映する。
仕組み
memaryの現在の仕組みは、下図に詳しく示されている。
refered from https://github.com/kingjulio8238/memary/blob/main/diagrams/system.png上記のプロセスには、ルーティング・エージェント、ノウレッジ・グラフ、メモリ・モジュールが含まれ、これらはすべて
src/agent
ディレクトリにあるChatAgent
クラスに統合されている。これらのコンポーネントの生のソースコードも、ベンチマーク、ノートブック、アップデートを含むそれぞれのディレクトリにある。