Hugging Face、コーディングエージェント用の記憶層funesを公開
Give Your Coding Agents a Memory You Own
Hugging Faceは、Claude Code、Codex、pi、Hermesの過去セッションを索引化し、エージェントが自ら検索できるオープンソースの記憶層funesを公開した。埋め込みとリランキングはローカルで動作し、希望すれば自分のHugging Face datasetに非公開で同期できる。handoff-vs-recall benchmarkでは、recallが書面の引き継ぎより一方のタスクで8x、もう一方で4x低コストだった。
funesは単一バイナリで、`funes add claude`(codex、pi、hermesも可)を実行すると最初の索引作成、recallとgetのツール追加、完了した各ターンを索引化する自動処理の設定までが行われる。索引は増分で、古い内容は区切って後から埋め戻せる。recallは要約ではなく元のテキストを返し、エージェント、タイムスタンプ、セッション、ターンを示す。各結果にはgetコマンドが付き、前後の文脈も開ける。
内部では各トレースを同じターンとブロックの形式に変換し、チャンク化して固定されたローカルモデルで埋め込み、ローカルのLance datasetに書き込む。検索はベクトル検索とBM25を組み合わせて順位を統合し、cross-encoderでリランキングし、新しさで重み付けして隣接チャンクを付ける。書き込み時に事実へ蒸留せず、インデックス用にホスト型モデルへセッションを送ることもない。
共有する場合は `funes add codex acme/funes-memory` のようにHugging Face datasetを指定する。datasetは自分が所有し、既定では非公開である。索引化時に認証情報は伏せ字化され、公開前にも全チャンクを再走査して秘密情報らしきものは除外される。別のマシンで同じコマンドを実行すれば同じ記憶を使え、チームでは新メンバーのエージェントが過去の判断や行き詰まりの経緯を参照できる。公開メモリは `--memory` で誰でも読め、funesタグが付く。
`funes ask` は読み取り専用で質問を1つ投げるコマンドで、該当箇所をエージェントに渡し、出典付きの回答を返す。根拠が足りなければその旨を答える。funesの開発記録は `huggingface/funes-memory` として公開されている。
長いセッションの対処法として、圧縮、引き継ぎ文書、recallをhandoff-vs-recall benchmarkで比較した。圧縮は一方のタスクでは答えに到達したが、もう一方では要約で重要な知見が潰れて到達しなかった。recallは両タスクで最も安価だった。funesはGitHubのhuggingface/funesで公開されており、ローカルで動く埋め込みモデルとLanceのappend-onlyなdatasetを土台にしている。
出典: Hugging Face Blog · huggingface.co