先日、LangChainが長期メモリ機能を公開しました。ユーザーとの対話内容をインデックスストアとして蓄積することで、複数回の対話でも記憶を保持できる仕組み、すなわち「long-term memory」が実現できるとのことです。そして、つい数日前にこの機能がリリースされ、「LangMem」として提供されるようになりました。今回は、このLangMemについて簡単にご紹介します。
まず、使い方の詳細は以下のドキュメントに記載されています。
簡単にまとめると、LangGraphで作成したAgentに、LangMemで新たに定義された2つのツールを追加するだけで機能が実現します。ひとつは、ユーザーからの入力内容を管理するためのツール「create_manage_memory_tool」(データベースの作成、保存、削除などを担当)、もうひとつは、そのデータベース内を検索するためのツール「create_search_memory_tool」です。これらを組み合わせることで、基本的な長期メモリ機能が完成します。
あと今回のリリースでは、LangChainがLLMの記憶内容を、以下の3種類に分類するという新しい視点を提示しました。
Agentは各情報がどのタイプに該当するかを判断し、適切なプロンプトの場所へ配置します。最終的には、これらの記憶情報がプロンプトとして活用されます。例えば、"semantic"などの事実情報はsystem promptに利用し、"episodic"などの事例情報はfew-shot promptに組み込まれる、といった具合に運用される仕組みです。
興味ある方: