REFERENCE
開発者リファレンス
認証、API、SDK、Flow Agent のプロセッサ、パラメータ解決のリファレンスです。
asgard.message.delta
asgard.message.delta のイベントは、メッセージの内容をストリーミングで送るためのものです。各イベントには短いテキストが入っており、idx フィールドで正しい順序を保ちます。
イベントの性質
- 発火のタイミング: AI が内容を生成しながら、テキストの断片を小分けに送るとき
- 役割: リアルタイムのタイプライター風の表示を実現し、体験を良くする
- 頻度: ひとつのメッセージに複数の delta イベントが出ることがあります
重要なフィールド
フィールド 説明 messageDelta.message.text 追加分のテキスト。新しく加わった断片(文字、語句、文のいずれか) messageDelta.message.idx 順序のインデックス。0 から始まって増えます messageDelta.message.template 通常は nullで、complete のイベントで値が入ります完全な例
次の例は、ひとつのメッセージが完成するまでのタイプライター風の流れです。AI が返す一文は複数の delta イベントに分かれて送られます(文字、語句、文のいずれかの単位)。
Delta 1 (idx: 0) - 1 つ目の断片
{
"eventType": "asgard.message.delta",
"requestId": "6939c5a6c590d90c401e3850a1ff44f3",
"namespace": "qa-7e301310-a594-4a7b-aa2a-xxxxxxxxxxxx",
"botProviderName": "bpapi-d97c512f-f8dc-46f6-82f0-xxxxxxxxxxxx",
"customChannelId": "ch-6xxxxxxxxxxxx",
"fact": {
"runInit": null,
"runDone": null,
"runError": null,
"messageStart": null,
"messageDelta": {
"message": {
"messageId": "1834828082242916352",
"replyToCustomMessageId": "",
"text": "目前", // <- 追加分のテキストだけ
"payload": null,
"isDebug": false,
"idx": 0, // <- 1 つ目の断片
"template": null // <- 通常は null
}
},
"messageComplete": null
}
}Delta 2 (idx: 1) - 2 つ目の断片
{
"eventType": "asgard.message.delta",
"requestId": "6939c5a6c590d90c401e3850a1ff44f3",
"namespace": "qa-7e301310-a594-4a7b-aa2a-xxxxxxxxxxxx",
"botProviderName": "bpapi-d97c512f-f8dc-46f6-82f0-xxxxxxxxxxxx",
"customChannelId": "ch-6xxxxxxxxxxxx",
"fact": {
"runInit": null,
"runDone": null,
"runError": null,
"messageStart": null,
"messageDelta": {
"message": {
"messageId": "1834828082242916352",
"replyToCustomMessageId": "",
"text": "台", // <- 追加分のテキストだけ
"payload": null,
"isDebug": false,
"idx": 1, // <- 2 つ目の断片
"template": null
}
},
"messageComplete": null
}
}Delta 3 (idx: 2) - 3 つ目の断片
{
"eventType": "asgard.message.delta",
"requestId": "6939c5a6c590d90c401e3850a1ff44f3",
"namespace": "qa-7e301310-a594-4a7b-aa2a-xxxxxxxxxxxx",
"botProviderName": "bpapi-d97c512f-f8dc-46f6-82f0-xxxxxxxxxxxx",
"customChannelId": "ch-6xxxxxxxxxxxx",
"fact": {
"runInit": null,
"runDone": null,
"runError": null,
"messageStart": null,
"messageDelta": {
"message": {
"messageId": "1834828082242916352",
"replyToCustomMessageId": "",
"text": "北", // <- 追加分のテキストだけ
"payload": null,
"isDebug": false,
"idx": 2, // <- 3 つ目の断片
"template": null
}
},
"messageComplete": null
}
}注意点
- 順序が大切: 必ず
idxの順に処理してください - テキストを積み上げる: すべての delta の text をつなぎ、タイプライター風に見せます
- 性能への配慮: UI の更新が頻繁になるため、最適化に注意してください
- 順序が大切: 必ず