Percakapan transisi dari bot ke manusia
BERLAKU UNTUK: SDK v4
Terlepas dari berapa banyak kecerdasan buatan yang dimiliki bot, mungkin masih perlu menyerahkan percakapan kepada manusia. Penyerahan seperti itu mungkin diperlukan jika bot tidak memahami pengguna (karena batasan AI), atau jika permintaan tidak dapat diotomatisasi dan memerlukan tindakan manusia. Dalam kasus seperti itu, bot harus mengenali kapan perlu menyerahkan percakapan dan memberi pengguna transisi yang lancar.
Microsoft Bot Framework adalah platform terbuka yang memungkinkan pengembang untuk berintegrasi dengan berbagai platform keterlibatan agen.
Model integrasi handoff
Microsoft Bot Framework mendukung dua model untuk integrasi dengan platform keterlibatan agen. Protokol handoff identik untuk kedua model, namun detail onboarding berbeda antara model dan platform keterlibatan agen.
Tujuannya bukan untuk menawarkan solusi universal untuk integrasi dengan sistem pelanggan mana pun, melainkan untuk memberikan bahasa umum dan praktik terbaik untuk pengembang bot dan integrator sistem untuk membangun sistem AI percakapan dengan manusia dalam perulangan.
Bot sebagai agen
Dalam model pertama, yang dikenal sebagai bot sebagai agen, bot bergabung dengan jajaran agen langsung yang terhubung ke hub agen dan menanggapi permintaan pengguna seolah-olah permintaan berasal dari saluran Bot Framework lainnya. Percakapan antara pengguna dan bot dapat dieskalasikan ke agen manusia, di mana bot melepaskan dari percakapan aktif.
Keuntungan utama dari model ini adalah kesederhanaannya—Anda dapat menambahkan bot yang ada ke hub agen dengan upaya minimal, dan hub agen akan menangani kompleksitas perutean pesan.
Bot sebagai proksi
Model kedua dikenal sebagai bot sebagai proksi. Pengguna berbicara langsung ke bot, sampai bot memutuskan bahwa ia membutuhkan bantuan dari agen manusia. Komponen router pesan dalam bot mengalihkan percakapan ke hub agen, yang mengirimkannya ke agen yang sesuai. Bot tetap dalam perulangan dan dapat mengumpulkan transkrip percakapan, memfilter pesan, atau memberikan konten tambahan kepada agen dan pengguna.
Fleksibilitas dan kontrol adalah keuntungan utama dari model ini. Bot dapat mendukung beberapa saluran dan memiliki kontrol atas bagaimana percakapan dieskalasi dan dirutekan antara pengguna, bot, dan hub agen.
Protokol handoff
Protokol ini berpusat di sekitar peristiwa untuk inisiasi, dikirim oleh bot ke saluran, dan pembaruan status, yang dikirim oleh saluran ke bot.
Inisiasi handoff
Acara inisiasi handoff dibuat oleh bot untuk memulai handoff.
Acara ini dapat mencakup:
- Konteks permintaan handoff, untuk merutekan percakapan ke agen yang sesuai.
- Transkrip percakapan, sehingga agen dapat membaca percakapan yang terjadi antara pelanggan dan bot sebelum handoff dimulai.
Berikut ini adalah properti peristiwa inisiasi handoff umum:
Nama: Diperlukan, properti nama harus diatur ke "handoff.initiate".
Percakapan: Diperlukan, properti percakapan menjelaskan percakapan tempat aktivitas ada. Percakapan harus menyertakan percakapan
Id
.Nilai: Opsional, properti nilai dapat berisi konten JSON khusus hub agen yang dapat digunakan hub untuk merutekan percakapan ke agen yang relevan.
Lampiran: Opsional, properti lampiran dapat menyertakan transkrip sebagai lampiran. Kerangka Kerja Bot mendefinisikan jenis lampiran transkrip . Lampiran dapat dikirim sebaris (tunduk pada batas ukuran) atau offline dengan menyediakan
ContentUrl
.handoffEvent.Attachments = new List<Attachment> { new Attachment { Content = transcript, ContentType = "application/json", Name = "Transcript", } };
Catatan
Hub agen harus mengabaikan jenis lampiran yang tidak mereka pahami.
Ketika bot mendeteksi kebutuhan untuk menyerahkan percakapan ke agen, bot menandakan niatnya dengan mengirim peristiwa inisiasi handoff.
SDK untuk C# menyertakan CreateHandoffInitiation
metode untuk membuat peristiwa inisiasi handoff yang valid.
var activities = GetRecentActivities();
var handoffContext = new { Skill = "credit cards" };
var handoffEvent =
EventFactory.CreateHandoffInitiation(
turnContext, handoffContext, new Transcript(activities));
await turnContext.SendActivityAsync(handoffEvent);
Status serah-tangan
Peristiwa status handoff dikirim ke bot oleh hub agen. Peristiwa ini menginformasikan bot tentang status operasi handoff yang dimulai.
Catatan
Bot tidak diharuskan untuk menangani peristiwa status handoff; namun, mereka tidak boleh menolaknya.
Berikut ini adalah bidang peristiwa status handoff umum:
Nama: Diperlukan, properti nama harus diatur ke "handoff.status".
Percakapan: Diperlukan, properti percakapan menjelaskan percakapan tempat aktivitas ada. Percakapan harus menyertakan percakapan
Id
.Nilai: Diperlukan, properti nilai yang menjelaskan status operasi handoff saat ini. Nilai memiliki properti berikut.
Status: Diperlukan, properti status dapat memiliki salah satu nilai ini:
Nilai Makna "diterima" Agen menerima permintaan dan mengontrol percakapan. "gagal" Permintaan handoff gagal. Properti pesan mungkin berisi informasi tambahan yang relevan dengan kegagalan. "selesai" Permintaan penyerahan selesai. Pesan: Opsional, properti pesan adalah objek yang ditentukan oleh hub agen.
Berikut adalah beberapa contoh objek nilai:
{ "state" : "completed" }
{ "state" : "failed", "message" : "Can't find agent with requested skill" }
Pustaka handoff
Pustaka Handoff telah dibuat untuk melengkapi Bot Framework v4 SDK dalam mendukung handoff; khususnya:
- Menerapkan penambahan Bot Framework SDK untuk mendukung penyerahan ke agen (juga dikenal sebagai eskalasi).
- Berisi definisi tiga jenis peristiwa untuk memberi sinyal operasi handoff.
Catatan
Integrasi dengan hub agen tertentu bukan bagian dari pustaka.