deleteMessages
メモリストレージから1つまたは複数のメッセージを削除します。このメソッドは配列を受け取り、単一の操作で複数のメッセージを削除できます。
構文
memory.deleteMessages(input: MessageDeleteInput): Promise<void>
type MessageDeleteInput =
| string[] // Array of message IDs
| { id: string }[] // Array of message objects
パラメータ
input
(必須): 削除するメッセージの配列。以下のいずれかである必要があります:- メッセージID(文字列)の配列
id
プロパティを持つメッセージオブジェクトの配列
戻り値
すべてのメッセージが正常に削除されたときに解決されるPromise。
例
単一メッセージの削除
// 単一の文字列IDを含む配列を使用
await memory.deleteMessages(['msg-123']);
// 単一のメッセージオブジェクトを含む配列を使用
await memory.deleteMessages([{ id: 'msg-123' }]);
複数メッセージの削除
// 文字列IDの配列を使用
await memory.deleteMessages(['msg-1', 'msg-2', 'msg-3']);
// メッセージオブジェクトの配列を使用
await memory.deleteMessages([
{ id: 'msg-1' },
{ id: 'msg-2' },
{ id: 'msg-3' }
]);
クライアントSDKでの使用
// スレッドインスタンスを取得
const thread = client.getAgent('my-agent').getThread('thread-123');
// 単一メッセージを削除
await thread.deleteMessages(['msg-123']);
// 複数メッセージを削除
await thread.deleteMessages(['msg-1', 'msg-2', 'msg-3']);
// メッセージオブジェクトを使用して削除(メッセージデータがある場合に便利)
const messagesToDelete = messages.map(msg => ({ id: msg.id }));
await thread.deleteMessages(messagesToDelete);
エラーハンドリング
try {
await memory.deleteMessages(['msg-1', 'msg-2', 'msg-3']);
console.log('Messages deleted successfully');
} catch (error) {
console.error('Failed to delete messages:', error);
}
注意事項
- このメソッドは、単一のメッセージを削除する場合でも、入力として配列が必要です
- メッセージが削除されると、スレッドのタイムスタンプが自動的に更新されます
- このメソッドは、メッセージオブジェクトからメッセージIDを自動的に抽出します
- すべてのメッセージIDは空でない文字列である必要があります
- 空の配列を渡すと何も実行されません(エラーは発生しません)
- 異なるスレッドのメッセージを同じ操作で削除できます
- メッセージオブジェクトを使用する場合、
id
プロパティのみが必要です