recall について
自然言語のクエリでOriginのメモリーを検索するスキルです。クエリの拡張、MCP検索、結果の再順位付けを行い、必要に応じて改訂情報も提示します。
主な機能
- 01自然言語でのメモリー検索
- 02エージェント側でのクエリ拡張
- 03関連度に基づく再順位付け
- 04改訂情報の表示
活用シーン
- 01過去の決定や好みの確認
- 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 > 1merged_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」よりも多くの結果が見つかります。セマンティックマッチャーは具体性を評価します。結果が多すぎる場合は、クエリを長くするのではなく、フィルターを追加してください。