AIエージェントの「忘れっぽい」を解決!funesで記憶を永続化する方法

AIエージェントの「忘れっぽい」はもう終わり!
Web制作やAI開発の現場で、複数のマシンやエージェントを使い分けていると、AIエージェントが「前回の作業内容を忘れている」という問題に直面したことはありませんか?「先週火曜日のあの議論、どこ行った?」なんてこと、日常茶飯事ですよね。セッションが終わると、前回までの思考プロセスや試行錯誤の記録が消え去り、新しいエージェントは毎回ゼロからスタート。これは非効率的です。
しかし、実はAIエージェントは作業中に多くの記録を残しています。コードベースの検索、アプローチの試行、エラー発生、ドキュメント参照、方向転換など、これらすべてが「何が変わり、なぜ変わったのか」という濃密な記録として残されています。問題は、これらの記録が単なる「アーカイブ」になってしまっていること。数万回に及ぶ会話ログの中から、「なぜストリーミングパーサーをやめたんだっけ?」とgrepで探し出すのは至難の業です。
そこで登場するのが、AIエージェントに「耐久性のある記憶層」を提供するfunesです。funesは、エージェントが生成するこれらの「潜在的な記憶」を、実際に活用できる「使える記憶」へと変貌させます。
funesで何ができるのか?
funesは、AIエージェントが生成するセッションログを、単なるアーカイブではなく、活用可能な「記憶」として機能させるためのツールです。具体的には、以下の機能を提供します。
- 記憶のインデックス化と検索: エージェントのセッションログを自動的にインデックス化し、必要な情報を素早く検索できるようにします。
- ランキングと取得: 検索された情報を関連性に基づいてランキングし、最も適切な記憶をエージェントが取得できるようにします。
- 正確な出所表示: 取得した記憶がどのエージェント、どのタイムスタンプ、どのセッション、どのターンから来たものかを正確に示します。
- ローカルでの動作: MLランタイムの依存関係がなく、埋め込みと再ランキングはすべてローカルマシンで行われます。
- 既存エージェントへの組み込み: Claude Code、Codex、pi、Hermesといった既存のAIエージェントに簡単に記憶機能を追加できます。
- Hugging Faceデータセットへの保存: 必要に応じて、ユーザー所有のプライベートなHugging Faceデータセットに記憶を保存することも可能です。
funesは、エージェントがコードベースを探索し、アプローチを試し、エラーに遭遇し、ドキュメントを読み、方向転換する過程で残す「なぜそうしたのか」という濃密な記録を、失うことなく活用できるようにします。
どう使えるのか?具体的な活用例
funesを導入することで、AIエージェントとの開発ワークフローが劇的に改善されます。
- 過去の意思決定の参照: エージェントが過去のセッションで下した意思決定や、その根拠を忘れることなく、現在のタスクに活かせます。例えば、「なぜこのストリーミングパーサーをやめたのか」という疑問に対し、エージェント自身が過去の会話ログからその理由と関連情報を検索し、提示してくれます。
- 効率的な問題解決: 過去のエラーや試行錯誤の記録が記憶として残るため、同じ問題に直面した際に、エージェントが過去の解決策や回避策を自ら参照し、より効率的に問題解決にあたることができます。
- コンテキストの引き継ぎ不要: 開発者が古いセッションの内容を覚えていたり、手動で新しいセッションにコンテキストを貼り付けたりする必要がなくなります。エージェントが会話の中で自ら記憶にアクセスし、必要な情報を引き出してくれます。
- 正確な情報源の確認: エージェントが提示する情報が、どのセッションのどのターンで生成されたものか、元のテキストと共に正確に表示されるため、情報の信頼性が向上します。
funesは、単一のバイナリとして提供され、デフォルトの推論バックエンドはMLランタイムの依存関係がありません。埋め込みと再ランキングはすべてローカルマシンで完結するため、手軽に導入できるのが魅力です。
まずはここから試してみよう!
funesの導入は非常にシンプルです。たった2つのステップで、あなたのAIエージェントに永続的な記憶を与えることができます。
1. インストール:
curl -fsSL https://huggingface.co/buckets/huggingface/funes/resolve/install.sh | sh2. エージェントへの追加:
funes add claude # または: codex, pi, hermesこのaddコマンドを実行すると、最初のインデックスが構築され、エージェントにrecallとgetツールが提供されます。さらに、完了したターンごとにインデックスを作成する自動化がインストールされます。インデックス作成は差分で行われ、新しい実行では履歴全体を再度埋め込むのではなく、新しいターンが追加されます。これにより、過去の深いコンテンツも段階的にバックフィルされます。
あとは、いつも通り作業するだけです。過去の意思決定、根拠、発見にタスクが触れると、エージェントは自らrecall機能を使って記憶にアクセスします。あなた自身が古いセッションを覚えていたり、そのコンテキストを新しいセッションに貼り付けたりする必要はありません。funesが追加されていれば、記憶の呼び出しは会話の中で行われます。エージェントは自ら記憶にアクセスし、その回答の背景にあるセッション名を教えてくれます。recallは要約ではなく元のテキストを返し、それがどこから来たのか(エージェント、タイムスタンプ、セッション、ターン)を正確に示します。各結果には、完全なターンとその周囲のコンテキストを開くgetコマンドが含まれています。
内部では、funesはサポートされているすべてのトレースを同じターンとブロックの形に解析し、チャンクに分割し、固定されたローカルモデルで埋め込み、ローカルのLanceデータセットに書き込みます。クエリはベクトル検索とBM25検索を組み合わせ、そのランキングを融合し、クロスエンコーダで候補を再ランキングし、再重み付けします。
AIエージェントの「忘れっぽい」問題に悩まされていた開発者やWeb制作者の皆さん、ぜひfunesを試して、より効率的でスマートな開発ワークフローを体験してください!
