Skip to Content

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表示に適した形式のメッセージで、ツールコールやその結果のスレッド化が適切に行われています

関連