MF Blogs 便利ツール
濃紫の背景で、中心のノードから6つの端末アイコンへ線が伸びるネットワーク状のイラスト

記事

Hugging Face、コーディングエージェント向け記憶レイヤー「funes」公開——セッションを超えて推論を引き継ぐ

Hugging Faceは公式ブログで、コーディングエージェントのセッションログを検索可能な記憶へ変換するオープンソースツール「funes」を公開しました。Claude CodeやCodexなど複数のエージェントが同じ記憶を共有できる設計です。

0:00 0:00

Hugging Faceは公式ブログで、コーディングエージェント向けの記憶レイヤー「funes」を公開しました。エージェントのセッションログを検索可能な索引データへ変換し、過去の判断や調査結果を新しいセッションからでも呼び出せるようにするオープンソースツールです。Claude CodeCodexなど、複数のコーディングエージェントが同じ記憶を共有できる設計になっています。

エージェントは毎回「記憶ゼロ」から始まる問題

現状のコーディングエージェントは、新しいセッションを始めるたびに過去の文脈を失い、いわば「記憶ゼロ」の状態から作業を再開せざるを得ません。過去にどんな設計判断をしたか、どのアプローチを試して失敗したかといった情報は、セッションが終わると失われてしまいます。人間が手作業でコンテキストをコピーして引き継ぐ運用も可能ですが、手間がかかるうえに漏れが生じがちです。funesは、この「毎回ゼロから」という前提そのものを変えることを狙ったツールです。

Claude Code、Codex、Pi、Hermesに対応

funesはClaude Code、Codex、Pi、Hermesという複数のコーディングエージェントに対応しています。いずれのエージェントも同じ標準化されたデータ構造へ書き込む仕組みになっており、あるエージェントで積み上げた推論の履歴を、別のエージェントに切り替えたあとも参照できます。プロジェクトの途中でツールを乗り換えても、それまでの経緯を説明し直す必要がなくなる点は、日常的に複数のエージェントを使い分ける開発者にとって実用的な利点と言えるでしょう。

古めかしい図書館を舞台に、象の姿をしたキャラクターが「funes」と書かれた装置を操作し、金魚鉢を頭に載せたロボットたちが作業するイラスト

画像引用元: Hugging Face Blog

ローカル完結の索引化とLanceデータセット

funesの内部では、決定的なパイプラインがエージェントのトレースを解析し、「ターンとブロック」という統一形式へ変換したうえでチャンク分割し、ローカルに固定した埋め込みモデルでベクトル化します。データはローカルの追記専用データベースであるLanceデータセットに保存され、初期状態では索引化も埋め込み処理もすべて手元のマシン内で完結し、外部への通信は発生しません。検索時にはベクトル検索とBM25検索を組み合わせ、両者のランキングを統合したうえでクロスエンコーダーによる再順位付けを行い、さらに新しさに応じて重み付けを調整し、関連する前後のチャンクも合わせて取得する仕組みです。

recall・get・askという3つのツール

エージェントが記憶にアクセスする際には、recallというツールを自律的に呼び出して過去の推論を参照します。取得した内容の前後にある完全な文脈を開きたい場合にはgetを使い、エージェントへの統合なしに単体で記憶を検索したい場合はaskという独立したツールが用意されています。導入もシンプルで、funes add claudeのような1行のコマンドを実行するだけで初期索引の構築、recallとget用ツールのセットアップ、そして今後のセッション向けの増分索引化までが一括で完了します。

Hugging Faceデータセットを介した記憶共有

デフォルトではローカル完結の運用ですが、funes add codex acme/funes-memoryのようなコマンドで、記憶を自分が所有・管理するHugging Faceのデータセットへ公開することも可能です。公開前には認証情報の自動的な削除処理が行われ、記憶はデフォルトで非公開のまま保たれつつ、チーム内で共有したり一般公開したりする選択肢も用意されています。新しいセッションが増えるたびに全履歴を再度埋め込み直すのではなく、新しいターンだけを追加し、古い内容は段階的にバックフィルする増分索引化の仕組みも採用されており、検索結果には要約ではなく元のテキストが、エージェントの種類やタイムスタンプ、セッションID、ターン番号といった出典情報付きで返される点も特徴です。

ベンチマークでは要約より最大8倍安く

Hugging Faceが示したベンチマークでは、長いセッションを扱う際の3つの手法を比較しています。標準的なエージェントの挙動である「圧縮」は文脈を要約しますが重要な詳細を失うリスクがあり、「書き起こしによる引き継ぎ」は明確だがコストがかかります。これに対してfunesの「recall」による検索は、あるタスクでは書き起こしによる引き継ぎより8倍、別のタスクでは4倍安く済んだとされています。さらに重要な点として、圧縮方式は一方のベンチマークタスクで正しい結果をまったく出せなかったのに対し、recallは両方のタスクで成功したとのことです。funes自体はGitHub上でオープンソース公開されており、ローカルの埋め込みモデルやLanceデータベース、Hugging Face Hubといった既存のオープンソース基盤の上に構築されています。

セッションをまたぐたびに文脈を説明し直す作業は、複数のエージェントを併用する開発者にとって地味ながら大きな手間でした。funesはその手間を、検索可能な記憶という形で解消しようとする試みです。エージェント運用が本格化するチームでは、コードレビューの申し送りやプルリクエストの説明を書く手間を減らす手段として、導入を検討する価値がありそうです。