query
特定のスレッドからメッセージを取得します。ページネーション、フィルタリングオプション、セマンティック検索をサポートしています。
使用例
import { Memory } from "@mastra/memory";
const memory = new Memory({
/* config */
});
// 最新の50件のメッセージを取得
const { messages, uiMessages, messagesV2 } = await memory.query({
threadId: "thread-123",
selectBy: {
last: 50,
},
});
// 特定のメッセージの前後のコンテキストを含むメッセージを取得
const { messages: contextMessages } = await memory.query({
threadId: "thread-123",
selectBy: {
include: [
{
id: "msg-123", // このメッセージのみを取得(コンテキストなし)
},
{
id: "msg-456", // このメッセージをカスタムコンテキストと共に取得
withPreviousMessages: 3, // 前の3件のメッセージ
withNextMessages: 1, // 後の1件のメッセージ
},
],
},
});
// メッセージ内でのセマンティック検索
const { messages } = await memory.query({
threadId: "thread-123",
selectBy: {
vectorSearchString: "What was discussed about deployment?",
},
threadConfig: {
semanticRecall: true,
},
});
Parameters
threadId:
string
メッセージを取得するスレッドの一意識別子
resourceId?:
string
スレッドを所有するリソースのオプションID。提供された場合、スレッドの所有権を検証します
selectBy?:
object
メッセージのフィルタリングと選択のオプション
threadConfig?:
MemoryConfig
メッセージ取得とセマンティック検索の設定オプション
selectBy
vectorSearchString?:
string
セマンティックに類似したメッセージを見つけるための検索文字列。threadConfigでセマンティックリコールが有効になっている必要があります。
last?:
number | false
= 40
取得する最新メッセージの数。制限を無効にするにはfalseに設定します。注意:threadConfig.lastMessages(デフォルト:40)がこれより小さい場合は上書きされます。
include?:
array
オプションのコンテキストメッセージと共に含める特定のメッセージIDの配列
include
id:
string
含めるメッセージのID
threadId?:
string
オプションのスレッドID(メインのthreadIdパラメータがデフォルト)
withPreviousMessages?:
number
このメッセージの前に含めるメッセージの数。ベクター検索使用時はデフォルト2、それ以外は0。
withNextMessages?:
number
このメッセージの後に含めるメッセージの数。ベクター検索使用時はデフォルト2、それ以外は0。
戻り値
messages:
CoreMessage[]
コア形式で取得されたメッセージの配列(後方互換性のためのv1形式)
uiMessages:
UIMessage[]
UI表示用にフォーマットされたメッセージの配列。ツール呼び出しと結果の適切なスレッド化を含む
messagesV2:
MastraMessageV2[]
v2形式のメッセージの配列。現在の内部メッセージ形式
追加の注意事項
query
関数は3つの異なるメッセージ形式を返します:
messages
: 古いAPIとの後方互換性のために使用されるコアメッセージ形式(v1)uiMessages
: ツール呼び出しと結果の適切なスレッド化を含む、UI表示に適したフォーマット済みメッセージmessagesV2
: 拡張された構造とメタデータを持つ現在の内部メッセージ形式
セマンティック検索
vectorSearchString
を使用する際は、以下を確認してください:
threadConfig
でセマンティックリコールが有効になっている- Memoryインスタンスでベクターデータベースが設定されている
- 埋め込みモデルが提供されている
この関数は、設定されたmessageRange
に基づいて、セマンティックに類似した結果の周辺のコンテキストメッセージを自動的に含めます。