Pyforge-memory – AIエージェント向け3層メモリシステム
Pyforge-memoryは、AIエージェント向けの3層メモリシステムです。逐語層、キーワード層、ダイジェスト層により、コンテキストウィンドウを約3000文字から約1000文字に削減し、エージェントのアイデンティティプロンプトが切り捨てられるのを防ぎます。
Pyforge-memoryは、Forged Logicが開発したオープンソースのPythonライブラリで、長期間の対話におけるAIエージェントのコンテキストウィンドウオーバーフロー問題を解決します。従来のメモリツールはすべての会話をそのままコンテキストに詰め込むため、約50回のやり取り後にはエージェントのアイデンティティプロンプトが静かに切り捨てられ、汎用アシスタントに退化します。Pyforge-memoryは3層メモリアーキテクチャでコンテキストを効率的に管理し、すべての文字が最大限の価値を発揮するようにします。
3層のメモリは次の通りです。逐語層(Verbatim)は最近N回の生の会話を約400文字で保持し、流れを維持します。キーワード層(Keyword)は現在のメッセージ内のキーワードに一致するメモリエントリを約300文字で検索し、関連性の高い想起を提供します。ダイジェスト層(Digest)は古い会話の圧縮された要約を約300文字で生成し、継続性を保ちます。合計コンテキストは約3000文字から約1000文字に削減されます。
このライブラリには、毒検出(Poison filtering)機能が含まれており、汎用的なAIスクリプト出力がメモリを汚染するのをブロックします。すべての設定はカスタマイズ可能で、禁止用語、ストップワード、メモリ制限を設定できます。ストレージはJSONLファイルベースで、データベースやAPIキーは不要で、任意の環境で動作します。知識ディレクトリでは、テキストファイルをキーワード検索してドメインコンテキストを提供できます。フレームワークに依存せず、Ollama、OpenAI、ClaudeなどのLLM APIと互換性があります。
インストールはpip install pyforge-memoryで簡単に行えます。使用時にはMemoryEngineをインポートし、memory_dirとknowledge_dirを設定し、LLM呼び出し関数を定義します。engine.build_contextにユーザーメッセージ、システムプロンプト、クエリ関数を渡してコンテキストを構築し、LLMに送信した後、対話を保存します。ワークフローは以下の通りです。ユーザーメッセージが到着すると、キーワードを抽出し、毒検出と重複検出を経た逐語層を取得し、メモリと知識ファイルからキーワード一致を検索してスコアリングし、メモリが10件を超えると自動的にダイジェストを生成し、システムプロンプト+逐語層+キーワード層+ダイジェスト層+ユーザーメッセージの完全なコンテキストを組み立てます。
毒検出はforbidden_termsを設定することでカスタマイズでき、例えば「私はAIアシスタントです」などのフレーズを禁止できます。engine.is_poisoned()でテキストをチェックします。知識ベースは、知識ディレクトリにテキストファイルを配置するだけで自動的にインデックスされます。作者は、3層設計が不可欠であると強調しています。逐語層のみでは古い会話のコンテキストが失われ、キーワード層のみでは現在の会話の流れが失われ、ダイジェスト層のみでは圧縮されすぎて詳細が欠落します。3層を組み合わせることで、最新性、関連性、圧縮性が実現されます。
Pyforge-memoryはMITライセンスの下で提供され、コードはGitHubで公開されています。長時間の記憶を必要とするAIエージェントを構築する開発者にとって、実用的で効率的なソリューションです。