エージェントの応答を引き起こすためのサイレントメッセージの送信
このチュートリアルでは、チャットUIにトリガーメッセージを表示せずに、サイレントメッセージを使用してエージェントの応答をトリガーする方法について説明します。 サイレントメッセージは処理のためにエージェントに送信されますが、ユーザーには表示されないため、対話の自動化やユーザー行動の追跡に最適です。
次のような状況では、サイレントメッセージの使用を検討してください:
ウェルカムメッセージのトリガー :チャットが読み込まれた際に挨拶メッセージが表示されるよう、空のメッセージを無音で送信します。
ユーザーの操作を追跡する :ユーザーがボタンをクリックしたり、特定のページに移動したりした際に、エージェントに通知する。
システム通知を送信する :バックグラウンドでのイベントやシステムステータスの変更について、エージェントに通知します。
フィードバックの流れを実装する :チャットにシステムメッセージを表示することなく、ユーザーからのフィードバックに反応する。
サイレントメッセージの仕組み
サイレントメッセージを送信すると、以下の処理が行われます:
メッセージは処理のためにエージェントに送信されます。
そのメッセージはチャット画面に表示されません。
エージェントはそのメッセージに返信することができます(その返信はユーザーにも表示されます)。
ユーザーにはエージェントの応答のみが表示され、トリガーメッセージは表示されません。
この手法は、会話の流れを乱すことなく、ウェルカムメッセージの表示、ユーザーの行動の追跡、システム通知の送信、およびフィードバックフローの実装を行うのに役立ちます。
この silent オプションの基本的なルールや動作については、を参照してください instance.send()。
ステップ1:基本的な無音メッセージを送信する
メソッド instance.send() に { silent: true } オプションを指定して使用すると、チャットUIに表示されないメッセージを送信できます。
// Send a visible message
await instance.send('Hello, how can you help me?');
// Send a silent message (hidden from UI)
await instance.send('User clicked help button', { silent: true });
チャットが読み込まれたときにウェルカムメッセージを表示するには、空のサイレントメッセージを送信してください:
await instance.send('', { silent: true });
ステップ 2: サイレントメッセージを使用してユーザーの操作を追跡する
チャット画面に通知を表示せずに、サイレントメッセージを使用してエージェントにユーザーの操作を通知します。 この例では、ユーザーが特定のページを表示したときに、通知を表示せずにメッセージを送信します:
await instance.send('User viewed pricing page', { silent: true });
また、ユーザーからのフィードバックを処理し、それをエージェントに通知せずに送信する関数を作成することもできます:
async function handleFeedback(rating, comment) {
const message = `User feedback: ${rating} stars - ${comment}`;
await instance.send(message, { silent: true });
}
ステップ3: MessageRequest を使用して高度な制御を行う
メッセージのプロパティをより細かく制御するには、 MessageRequest オブジェクトの ` skip_render property` プロパティを使用してください。 この方法は、追加のコンテキストを指定したり、メッセージの動作をカスタマイズしたりする必要がある場合に役立ちます:
await instance.send({
message: {
role: 'user',
content: 'User clicked help button',
additional_properties: {
display_properties: {
skip_render: true // Hide from UI
}
}
}
});
サイレントメッセージにカスタムコンテキストデータを追加することもできます:
await instance.send({
message: {
role: 'user',
content: 'I need help with my order',
additional_properties: {
display_properties: {
skip_render: true
}
}
},
context: {
user_location: 'checkout_page',
cart_value: 150.00
}
});
完全な台本
チャットウィジェットでサイレントメッセージを実装するには、以下のスクリプトを使用してください。 この例では、チャットが読み込まれたときにウェルカムメッセージが表示されます:
function onChatLoad(instance) {
// Send a silent message to trigger a welcome response
instance.send('', { silent: true });
// Store the chat instance globally if needed
chatInstance = instance;
}
window.wxOConfiguration = {
orchestrationID: "your-orgID_orchestrationID",
hostURL: "https://dl.watson-orchestrate.ibm.com",
rootElementID: "root",
showLauncher: false,
deploymentPlatform: "ibmcloud", // Required for IBM Cloud
crn: "your-org-crn", // Required for IBM Cloud. Learn how to get the CRN in https://cloud.ibm.com/docs/key-protect?topic=key-protect-retrieve-instance-ID&interface=ui
chatOptions: {
agentId: "your-agent-id",
agentEnvironmentId: "your-agent-env-id",
onLoad: onChatLoad // Callback function when the chat widget is loaded
},
};
setTimeout(function () {
const script = document.createElement('script');
script.src = `${window.wxOConfiguration.hostURL}/wxochat/wxoLoader.js?embed=true`;
script.addEventListener('load', function () {
wxoLoader.init();
});
document.head.appendChild(script);
}, 0);