searching-messages について
`letta` コマンドラインで過去の会話を検索するスキルです。セマンティック検索、全文検索、ハイブリッド検索に対応し、前後のメッセージや話題を扱ったエージェントも確認できます。
主な機能
- 01セマンティック・全文・ハイブリッド検索
- 02日付とエージェントによる絞り込み
- 03メッセージ ID から前後を取得
- 04全エージェントの検索
活用シーン
- 01過去の会話の背景を思い出す
- 02期間を指定して話題に関するメッセージを探す
- 03機能について話したエージェントを特定する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ letta-ai/ letta-code --skill searching-messagesインストール後、Claude Code で/searching-messagesを入力して読み込まれたか確認します。
詳細
メッセージを検索する
このスキルを使うと、過去の会話を検索して、コンテキストウィンドウから抜け落ちてしまった可能性のある情報を思い出せます。
このスキルを使う場面
- ユーザーから「Xについて話し合ったときのことを覚えていますか?」と聞かれたとき
- 以前の会話のコンテキストが必要なとき
- コンテキストにない過去の話題についてユーザーが言及したとき
- ある話題について以前何が話されていたかを確認したいとき
- 特定の話題について話し合ったエージェントを見つける必要があるとき(
finding-agentsスキルと併用)
CLI の使い方
letta messages search --query <text> [options]
オプション
| オプション | 説明 |
|---|---|
--query <text> | 検索クエリ(必須) |
--mode <mode> | 検索モード:vector、fts、hybrid(デフォルト:hybrid) |
--start-date <date> | この日付以降のメッセージに絞り込みます(ISO 形式) |
--end-date <date> | この日付以前のメッセージに絞り込みます(ISO 形式) |
--limit <n> | 結果の最大数(デフォルト:10) |
--all-agents | 現在のエージェントだけでなく、すべてのエージェントを検索します |
--agent <id> | 明示的にエージェント ID を指定します(LETTA_AGENT_ID を上書き) |
--agent-id <id> | --agent の別名 |
検索モード
- hybrid(デフォルト):ベクトル類似度検索と全文検索を組み合わせ、RRF スコアリングを行います
- vector:意味的類似性による検索(概念的に一致する結果を探す場合に便利です)
- fts:全文検索(完全一致するフレーズを探す場合に便利です)
関連コマンド:messages list
見つかったメッセージ ID をカーソルとして、その前後のメッセージを取得できます:
letta messages list [options]
| オプション | 説明 |
|---|---|
--after <message-id> | この ID(カーソル)より後のメッセージを取得します |
--before <message-id> | この ID(カーソル)より前のメッセージを取得します |
--order <asc|desc> | 並べ替え順(デフォルト:desc = 新しい順) |
--limit <n> | 結果の最大数(デフォルト:20) |
--agent <id> | 明示的にエージェント ID を指定します(LETTA_AGENT_ID を上書き) |
--agent-id <id> | --agent の別名 |
検索方法
方法 1:手がかりを見つけて前後を取得する(推奨)
特定の話題に関する会話全体のコンテキストが必要な場合に使います:
-
手がかりを見つける - キーワードで検索して、関連するメッセージを探します:
letta messages search --query "flicker inline approval" --limit 5 -
message_id を控える - 最も関連性の高い結果を見つけ、その
message_idをコピーします -
前のメッセージを取得する - 手がかりとなるメッセージより前のメッセージを取得します:
letta messages list --before "message-xyz" --limit 10 -
後のメッセージを取得する - 手がかりとなるメッセージより後のメッセージを取得します(時系列順にするには
--order ascを使います):letta messages list --after "message-xyz" --order asc --limit 10
方法 2:日付を指定して検索する
ある話題について話した時期がおおよそ分かっている場合に使います:
letta messages search --query "topic" --start-date "2025-12-31T00:00:00Z" --end-date "2025-12-31T23:59:59Z" --limit 15
結果は、指定した期間内で関連性の高い順に並びます。
方法 3:広範囲に検索する
何を探しているかはっきりしていない場合に使います:
letta messages search --query "vague topic" --mode vector --limit 10
ベクトルモードでは、完全一致するキーワードがなくても、意味的に類似したメッセージが見つかります。
方法 4:ある話題について話し合ったエージェントを見つける
--all-agents を使ってすべてのエージェントを検索し、その話題について話し合ったエージェントを特定します:
letta messages search --query "authentication refactor" --all-agents --limit 10
各メッセージの結果には agent_id が含まれます。次のような用途に使えます:
- 特定の機能を担当したエージェントを見つける
- フォローアップの質問をする適切なエージェントを特定する
finding-agentsスキルと照合して、エージェントの詳細を確認する
ヒント: 話題からエージェントを見つけて特定する必要がある場合は、searching-messages と finding-agents の両方のスキルを読み込んでください。
検索結果
検索結果には次の情報が含まれます:
message_id- カーソルを使って前後のメッセージを取得する際に使用しますmessage_type-user_message、assistant_message、reasoning_messagecontentまたはreasoning- 実際のメッセージ本文created_at- メッセージが送信された日時(ISO 形式)agent_id- メッセージが属するエージェント