mcpField
R
recall

recall

github.com/davepoonエージェントワークフロー3.7k58 回インストール1 日前に更新
リポジトリ

recall について

自然言語のクエリでOriginのメモリーを検索するスキルです。クエリの拡張、MCP検索、結果の再順位付けを行い、必要に応じて改訂情報も提示します。

主な機能

  1. 01自然言語でのメモリー検索
  2. 02エージェント側でのクエリ拡張
  3. 03関連度に基づく再順位付け
  4. 04改訂情報の表示

活用シーン

  1. 01過去の決定や好みの確認
  2. 02作業再開前の事実確認

MCP 対応

`recall` MCPツールを呼び出してメモリーを検索します。範囲やメモリー種別による絞り込みも指定できます。

インストール

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

$npx skills add https://github.com/davepoon/buildwithclaude --skill recall

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

詳細

/recall

自然言語クエリでOriginのメモリーを検索します。一致するメモリーをベクトル検索とFTSを組み合わせた検索で順位付けし、その後、必要に応じてエージェントが並べ替えます。

2つのフェーズ

ローカルモデルまたはAPIキーが設定されている場合、デーモンはサーバー側で再順位付けとクエリの拡張を行えます。ローカルメモリーモードでは行えません。どちらのモードでも良好な結果を得られるよう、このスキルは常にエージェント側でクエリの拡張と再順位付けを行います。処理の負荷も軽く済みます。

フェーズ1 — クエリを拡張する(エージェント側)

recallを呼び出す前に、ユーザーのクエリを書き換えて、検索しやすい形にします。

  • 代名詞を指示対象に置き換えます(「それ」→ 実際の対象)。
  • 埋め込みモデルが認識しにくい略語を展開します。
  • 元の語句の範囲が狭すぎる場合は、わかりやすい同義語を追加します(例:「auth」→「auth OR authentication」)。

過度に拡張しないでください。クエリがすでに具体的なら、そのままにします。/recallの呼び出し1回につきrecallの呼び出しも1回にします。重複した呼び出しは埋め込み処理の負荷を倍増させ、結果の統合処理を行う価値はほとんどありません。複数クエリを扱う場合は、デーモン独自のsearch_memory_expandedを使用してください。このエンドポイントが必要な場合は、ここで並列呼び出しを行うのではなく、そちらを使用します。

フェーズ2 — MCPツールを呼び出す
recall(query="<expanded query>", space=<inferred>, memory_type=<inferred>)

推測して補う項目(ユーザーには質問しないでください):

  • space:現在の作業ディレクトリ(例:~/Repos/origin/... → "origin")、話題になっているトピック、または直近のやり取りで言及された任意のスペースです。対象範囲がわかっている場合は必ず指定します。不確かな場合は、後でlist_spacesを実行するか(PR-C後)、省略します。
  • memory_type:クエリ自体で種類が指定されている場合に限ります(「Xに関する決定」「Yについての教訓」「Zの好み」など)。それ以外の場合は省略し、ハイブリッド検索の順位付けに任せます。
  • limit:デフォルトは10です。手早く検索する場合は3〜5件、調査する場合は10〜20件を使用します。
フェーズ3 — 再順位付けする(エージェント側)

デーモンは、ハイブリッド検索で順位付けされた結果を返します。この順位付けは良好ですが、完全ではありません。ユーザーの正確な意図までは把握していないためです。

返されたメモリーを元のクエリと照らし合わせて読み直します。質問に直接答えているものは上位にし、キーワードが一致しているだけのものは下位にします。

再順位付けした上位3〜5件をユーザーに提示します。残りは、求められた場合にのみ表示します。

フェーズ4 — リビジョンのコンテキストを表示する(結果ごと)

各メモリーには、version、pending_revision、merged_from、last_delta_summaryなどのリビジョンフィールドが含まれることがあります。大半のメモリーは最新(v1、未設定)なので、これらについては何も追加表示しません。意味のある情報がある場合にのみ、タグ行を追加します。

条件: 以下のいずれかに該当する場合、タグ行を出力します。

  • version > 1
  • merged_fromが空でない
  • pending_revision == true

形式 — メモリー本文の上に、1行で簡潔に表示します。

<id>  v<N> (merged <K> memories)         ← merged_from has K entries
<id>  v<N>, pending revision against <id> ← pending_revision true
<id>  v<N> — <last_delta_summary>         ← version > 1, delta populated
<id>  v<N>                                ← version > 1, no delta

ルール:

  • ラベルでは、mergedをpending_revisionより優先します。
  • last_delta_summaryが空またはnullの場合は、— <delta>を省略します。
  • versionが1(またはnull)で、他のフラグも設定されていない場合は、タグ行全体を省略します。これにより、最新のメモリーの出力を現在の形式のまま維持できます。

使用する場面

  • 「Xについて何と言っていましたか?」
  • 「Yについての決定を覚えていますか?」
  • 続ける前に特定の事実を確認したい場合。

使用しない場面

  • セッション全体の概要を確認する → 代わりに/briefを使用します。
  • 新しいメモリーを保存する → /captureを使用します。

ヒント:具体的なクエリを書く

「Alice database preference」は「database stuff」よりも多くの結果が見つかります。セマンティックマッチャーは具体性を評価します。結果が多すぎる場合は、クエリを長くするのではなく、フィルターを追加してください。

コメント