Aktifkan streaming respons MCP untuk gateway Anda AgentCore
Streaming respons MCP memungkinkan AgentCore gateway Anda untuk mengirimkan Server-Sent Acara real-time (SSE) ke klien selama eksekusi alat. Alih-alih menunggu seluruh panggilan alat selesai sebelum mengembalikan respons, gateway mengalirkan peristiwa saat terjadi — termasuk pemberitahuan kemajuan, pesan log, permintaan elisitasi, dan permintaan pengambilan sampel.
Manfaat streaming respons
- Real-time umpan balik
-
Klien menerima pembaruan kemajuan dan mencatat pesan saat terjadi, daripada menunggu respons alat lengkap.
- Mengaktifkan fitur MCP interaktif
-
Streaming respons adalah prasyarat untuk elisitasi, pengambilan sampel, pemberitahuankemajuan, dan pesan pencatatan. Fitur-fitur ini memerlukan koneksi SSE terbuka untuk mengirimkan peristiwa yang dimulai server selama eksekusi alat.
- Pengalaman pengguna yang lebih baik untuk alat yang berjalan lama
-
Untuk alat yang membutuhkan waktu beberapa detik atau menit untuk diselesaikan, streaming membuat klien tetap terinformasi dan responsif.
Aktifkan streaming respons
Untuk mengaktifkan streaming respons, atur streamingConfiguration.enableResponseStreaming ke true di protocolConfiguration.mcp bidang saat membuat atau memperbarui gateway Anda:
{ "protocolConfiguration": { "mcp": { "streamingConfiguration": { "enableResponseStreaming": true } } } }
catatan
Mengaktifkan streaming respons memperkenalkan perubahan pada kontrak input pencegat respons. Jika Anda menggunakan pencegat respons, tinjau logika pencegat Anda untuk memastikan kompatibilitas dengan respons streaming. Lihat Pencegat respons dengan streaming diaktifkan untuk detailnya.
Cara kerja streaming respons
Saat streaming respons diaktifkan dan klien mengirimkan permintaanAccept: text/event-stream, gateway mengembalikan aliran SSE, bukan respons JSON tunggal. Acara dikirimkan saat diterima dari target server MCP.
Aliran SSE dapat mencakup jenis acara berikut:
| Tipe peristiwa | Deskripsi |
|---|---|
|
|
Kemajuan pembaruan dari target selama eksekusi alat. Lihat Menerima pemberitahuan kemajuan. |
|
|
Log pesan dari target. Lihat Menerima pesan logging. |
|
|
Permintaan elisitasi dari target yang meminta masukan pengguna. Lihat Gunakan elisitasi. |
|
|
Permintaan pengambilan sampel dari target yang meminta penyelesaian LLM. Lihat Gunakan sampling. |
|
Hasil akhir |
Hasil panggilan alat, dikirim sebagai acara terakhir sebelum aliran ditutup. |
Jika klien tidak mengirimAccept: text/event-stream, gateway menyangga respons dan mengembalikan respons JSON tunggal setelah panggilan alat selesai. Acara menengah (kemajuan, pencatatan) tidak dikirimkan dalam kasus ini.
Persyaratan klien
Untuk menerima tanggapan streaming, klien harus:
-
Kirim
Accept: text/event-streamheader dalam permintaan mereka. -
Menangani peristiwa SSE saat mereka tiba, mengurai setiap
data:baris sebagai JSON-RPC pesan. -
Tetap buka koneksi sampai acara hasil akhir diterima.