query
特定のスレッドからメッセージを取得します。ページネーションやフィルタリングオプションにも対応しています。
使用例
import { Memory } from "@mastra/memory";
const memory = new Memory({
/* config */
});
// Get last 50 messages
const { messages, uiMessages } = await memory.query({
threadId: "thread-123",
selectBy: {
last: 50,
},
});
// Get messages with context around specific messages
const { messages: contextMessages } = await memory.query({
threadId: "thread-123",
selectBy: {
include: [
{
id: "msg-123", // Get just this message (no context)
},
{
id: "msg-456", // Get this message with custom context
withPreviousMessages: 3, // 3 messages before
withNextMessages: 1, // 1 message after
},
],
},
});
// Semantic search in messages
const { messages } = await memory.query({
threadId: "thread-123",
selectBy: {
vectorSearchString: "What was discussed about deployment?",
},
threadConfig: {
historySearch: true,
},
});
パラメーター
threadId:
string
メッセージを取得するスレッドの一意の識別子
resourceId?:
string
スレッドを所有するリソースのオプションID。指定された場合、スレッドの所有権を検証します
selectBy?:
object
メッセージをフィルタリングするためのオプション
threadConfig?:
MemoryConfig
メッセージ取得のための設定オプション
selectBy
vectorSearchString?:
string
意味的に類似したメッセージを検索するための検索文字列
last?:
number | false
= 40
取得する最新メッセージの数。制限を無効にするにはfalseを設定します。注意: threadConfig.lastMessages(デフォルト: 40)がこれより小さい場合はそちらが優先されます。
include?:
array
コンテキストと共に含めるメッセージIDの配列
include
id:
string
含めるメッセージのID
withPreviousMessages?:
number
このメッセージの前に含めるメッセージ数。ベクトル検索を使用する場合はデフォルトで2、それ以外は0です。
withNextMessages?:
number
このメッセージの後に含めるメッセージ数。ベクトル検索を使用する場合はデフォルトで2、それ以外は0です。
戻り値
messages:
CoreMessage[]
コア形式で取得されたメッセージの配列
uiMessages:
AiMessage[]
UI表示用にフォーマットされたメッセージの配列
補足
query
関数は2つの異なるメッセージ形式を返します:
messages
: 内部で使用されるコアメッセージ形式uiMessages
: UI表示に適した形式のメッセージで、ツールコールやその結果のスレッド化が適切に行われています