mcpField
M
memfs-search

memfs-search

github.com/letta-aiエージェントワークフロー152115 回インストール4 週間前に更新
リポジトリ

memfs-search について

memfs-search は、キーワード・セマンティック・ハイブリッド検索でメモリファイルシステムを検索するスキルです。Markdown の記憶ファイルから関連情報を探し、該当文書を取得したいエージェントに適しています。

主な機能

  1. 01キーワード、セマンティック、ハイブリッド検索
  2. 02パス指定または一括で文書を取得
  3. 03JSON、ファイル一覧、全文を出力
  4. 04インデックスの作成と更新

活用シーン

  1. 01記憶からトピック関連の情報を探す
  2. 02曖昧な説明から内容を検索
  3. 03記憶ファイルの追加前に既存内容を確認
  4. 04記憶を一括変更した後に再インデックス

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/letta-ai/skills --skill memfs-search

インストール後、Claude Code で/memfs-searchを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
references/
qmd-setup.md
scripts/
memfs-search.sh

詳細

MemFS Search

メモリファイルシステムをセマンティック検索します。Grep だけでは不十分な場合、たとえば概念的に関連するブロックを見つけたり、忘れていた参照ファイルを発見したり、メモリ全体から「X について何を知っているか」に答えたりするのに役立ちます。

セットアップ

初回のみ実行します。セットアップスクリプトを実行して、インデックスを作成し、埋め込みを生成します。

bash <SKILL_DIR>/scripts/memfs-search.sh setup

これにより、$MEMORY_DIR に対する QMD コレクションが作成され、コンテキスト注釈が追加され、すべての .md ファイルが埋め込まれます。初回実行時には、ローカルの GGUF モデル(約 2 GB)が ~/.cache/qmd/models/ にダウンロードされます。

インストール方法、埋め込みモデルの選択肢、トラブルシューティングについては、references/qmd-setup.md を参照してください。

検索

3 つの方法があります。クエリについてわかっていることに応じて選択してください。

わかっていること使用する方法コマンド速度
正確な用語やフレーズキーワードsearch約 0.3 秒
漠然とした概念(「X について何を知っているか」)セマンティックvsearch初回は約 2 秒、2 回目以降は 1 秒未満
手がかりがなく、最適な結果が必要ハイブリッドquery初回は約 3 秒、2 回目以降は 1 秒未満
S="bash <SKILL_DIR>/scripts/memfs-search.sh"

# Keyword — fast, use first
$S search "lettabot architecture"

# Semantic — conceptual, use when keyword misses
$S vsearch "how does the user feel about code reviews"

# Hybrid — best quality, uses keyword + vectors + reranking
$S query "projects cameron is working on"

必ずキーワード検索から始めてください。 見つからない場合にのみ、次の方法に進んでください。ハイブリッド検索はキーワード検索より 10 倍遅くなります。

出力形式

すべてのコマンドでは、QMD に引き渡す出力フラグを指定できます。

$S search "topic" --json       # structured (for processing)
$S search "topic" --files      # file paths only (pipe into Read)
$S search "topic" --full       # full document, not snippet
$S search "topic" -n 15        # more results (default: 5)

--json は、file、score、snippet、context フィールドを持つオブジェクトの配列を返します。

取得

検索せずに、特定のファイルまたは複数のファイルを取得します。

# Single file
qmd get "system/human/identity.md" -c memory --full

# Batch by glob
qmd multi-get "reference/projects/*" -c memory

積極的に検索するタイミング

依頼されるのを待たずに、次の場合はメモリを検索してください。

  1. 新しいメモリファイルを作成する前 — そのトピックがすでに存在するか確認します。$S search "topic" --files を実行すれば、すぐにわかります。
  2. ユーザーから「X について知っていますか」と聞かれたとき — 知らないと答える前に検索します。最近読み込んでいない参照ファイルに記載されている可能性があります。
  3. /init の実行中やメモリの再編成中 — 網羅性を確認します。重要な概念を検索し、どこかに保存されていることを確認します。
  4. 「これについて話したはずです」という問題のデバッグ中 — ユーザーはあなたが何かを知っているはずだと思っています。メッセージ履歴に頼る前に、メモリを検索してください。

メンテナンス

メモリを一括変更した後(例:/init の実行後、再編成後、多数のファイルの作成後)に実行します。

bash <SKILL_DIR>/scripts/memfs-search.sh reindex

インデックスの状態を確認します。

bash <SKILL_DIR>/scripts/memfs-search.sh status

使用しない場合

  • 正確な文字列の一致を探す場合 — Grep を使用します。
  • 名前やパターンでファイルを探す場合 — Glob を使用します。
  • パスがわかっているファイルを読む場合 — Read を使用します。
  • メッセージ履歴を検索する場合 — searching-messages スキルを使用します。
  • クエリが、文字どおり一致する単語 1 つの場合 — キーワード Grep のほうが高速です。

コメント