Code Velocity
AI Perusahaan

Amazon Bedrock: Kemampuan Klien MCP Stateful pada Runtime AgentCore

·7 mnt baca·AWS·Sumber asli
Bagikan
Diagram yang mengilustrasikan kemampuan klien MCP stateful pada Runtime AgentCore Amazon Bedrock dengan alur agen AI interaktif.

Meningkatkan Agen AI: Pergeseran ke MCP Stateful pada Amazon Bedrock

Agen AI berkembang pesat, namun potensi penuhnya seringkali terhambat oleh implementasi stateless, terutama dalam skenario yang menuntut interaksi pengguna real-time, pembuatan konten dinamis, atau pembaruan kemajuan berkelanjutan. Pengembang yang membangun agen AI canggih sering menghadapi tantangan ketika alur kerja perlu dijeda, mengumpulkan klarifikasi, atau melaporkan status selama operasi yang berjalan lama. Sifat eksekusi stateless yang kaku dan satu arah membatasi pengembangan aplikasi AI yang benar-benar interaktif dan responsif.

Kini, Amazon Bedrock AgentCore Runtime memperkenalkan kemampuan klien Model Context Protocol (MCP) stateful yang inovatif, mengubah cara agen AI berinteraksi dengan pengguna dan model bahasa besar (LLM). Pembaruan penting ini membebaskan agen dari batasan komunikasi stateless, memungkinkan alur kerja yang kompleks, multi-giliran, dan sangat interaktif. Dengan mengintegrasikan fitur klien MCP yang krusial – Elicitation, Sampling, dan Notifikasi Kemajuan – Runtime AgentCore Bedrock memfasilitasi percakapan dua arah antara server dan klien MCP, membuka jalan bagi solusi AI yang lebih cerdas dan berpusat pada pengguna.

Dari Stateless ke Stateful: Membuka Kunci Alur Kerja Agen Interaktif

Sebelumnya, dukungan server MCP pada AgentCore beroperasi dalam mode stateless, di mana setiap permintaan HTTP berfungsi secara independen, tanpa konteks bersama. Meskipun ini menyederhanakan deployment untuk server alat dasar, ini sangat membatasi skenario yang membutuhkan kesinambungan percakapan, klarifikasi pengguna di tengah alur kerja, atau pelaporan kemajuan real-time. Server tidak dapat mempertahankan alur percakapan di seluruh permintaan yang terpisah, menghambat pengembangan agen yang benar-benar interaktif.

Kedatangan kemampuan klien MCP stateful secara fundamental mengubah paradigma ini. Dengan mengatur stateless_http=False selama startup server, Runtime AgentCore menyediakan microVM khusus untuk setiap sesi pengguna. MicroVM ini bertahan selama durasi sesi—hingga 8 jam, atau 15 menit tidak aktif per pengaturan idleRuntimeSessionTimeout—memastikan isolasi CPU, memori, dan sistem berkas antar sesi. Kontinuitas dipertahankan melalui header Mcp-Session-Id, yang disediakan server selama inisialisasi dan disertakan klien dalam semua permintaan berikutnya untuk diarahkan kembali ke sesi yang sama. Lingkungan khusus dan persisten ini memungkinkan agen untuk mengingat konteks, meminta masukan pengguna, menghasilkan konten LLM dinamis, dan memberikan pembaruan berkelanjutan.

Tabel berikut merangkum perbedaan utama antara mode stateless dan stateful:

Mode statelessMode stateful
Pengaturan stateless_httpTRUEFALSE
Isolasi sesiMicroVM khusus per sesiMicroVM khusus per sesi
Masa pakai sesiHingga 8 jam; batas waktu idle 15 menitHingga 8 jam; batas waktu idle 15 menit
Kemampuan klienTidak didukungElicitation, sampling, notifikasi kemajuan
Direkomendasikan untukLayanan alat sederhanaAlur kerja interaktif, multi-giliran

Ketika sesi berakhir atau server dimulai ulang, permintaan berikutnya dengan ID sesi awal akan mengembalikan 404. Pada saat itu, klien harus menginisialisasi ulang koneksi untuk mendapatkan ID sesi baru dan memulai sesi baru. Perubahan konfigurasi untuk mengaktifkan mode stateful adalah satu flag dalam startup server Anda:

mcp.run( transport="streamable-http", host="0.0.0.0", port=8000, stateless_http=False # Aktifkan mode stateful)

Di luar flag ini, ketiga kemampuan klien akan tersedia secara otomatis setelah klien MCP menyatakan dukungannya untuk kemampuan tersebut selama jabat tangan inisialisasi.

Pembahasan Mendalam Kemampuan Klien Baru: Elicitation, Sampling, dan Progress

Dengan transisi ke mode stateful, Runtime AgentCore Amazon Bedrock membuka tiga kemampuan klien yang kuat dari spesifikasi MCP, masing-masing dirancang untuk mengatasi pola interaksi berbeda yang krusial untuk agen AI canggih. Kemampuan ini mengubah eksekusi perintah satu arah yang kaku menjadi dialog dua arah yang lancar antara server MCP dan klien yang terhubung. Penting untuk dicatat bahwa fitur-fitur ini bersifat opt-in, artinya klien mendeklarasikan dukungan mereka selama inisialisasi, dan server hanya boleh menggunakan kemampuan yang telah diiklankan oleh klien yang terhubung.

Elicitation: Mengaktifkan Masukan Pengguna Dinamis pada Agen AI

Elicitation menjadi fondasi AI interaktif, memungkinkan server MCP untuk secara bijaksana menghentikan eksekusinya dan meminta masukan terstruktur dan spesifik dari pengguna melalui klien. Kemampuan ini memberdayakan alat untuk mengajukan pertanyaan yang tepat pada saat-saat yang tepat dalam alur kerjanya, baik untuk mengkonfirmasi keputusan, mengumpulkan preferensi pengguna, atau mengumpulkan nilai yang berasal dari operasi sebelumnya. Server memulai ini dengan mengirimkan permintaan JSON-RPC elicitation/create, yang menyertakan pesan yang mudah dibaca manusia dan requestedSchema opsional yang menggambarkan struktur respons yang diharapkan.

Spesifikasi MCP menyediakan dua mode yang kuat untuk elicitation:

  • Mode Form: Ini ideal untuk mengumpulkan data terstruktur langsung melalui klien MCP, seperti parameter konfigurasi, preferensi pengguna, atau konfirmasi sederhana di mana data sensitif tidak terlibat.
  • Mode URL: Untuk interaksi yang memerlukan proses out-of-band yang aman, seperti alur OAuth, pemrosesan pembayaran, atau masukan kredensial sensitif, mode URL mengarahkan pengguna ke URL eksternal. Ini memastikan bahwa informasi sensitif melewati klien MCP sepenuhnya, meningkatkan keamanan dan kepatuhan.

Setelah menerima permintaan elicitation, klien merender antarmuka masukan yang sesuai. Tindakan pengguna selanjutnya memicu model respons tiga tindakan kembali ke server: accept (pengguna memberikan data yang diminta), decline (pengguna secara eksplisit menolak permintaan), atau cancel (pengguna menutup prompt tanpa membuat pilihan). Server yang cerdas dirancang untuk menangani setiap skenario ini dengan anggun, memastikan pengalaman yang tangguh dan ramah pengguna. Misalnya, alat add_expense_interactive, seperti yang ditunjukkan dalam materi sumber, dapat memandu pengguna melalui serangkaian pertanyaan—jumlah, deskripsi, kategori, dan konfirmasi akhir—sebelum menyimpan data ke backend seperti Amazon DynamoDB. Setiap langkah memanfaatkan model Pydantic untuk mendefinisikan masukan yang diharapkan, yang kemudian secara mulus diubah oleh FastMCP menjadi Skema JSON yang diperlukan untuk permintaan elicitation/create.

Sampling dan Notifikasi Kemajuan: Meningkatkan Interaksi dan Transparansi LLM

Selain interaksi langsung pengguna, Sampling membekali server MCP dengan kemampuan untuk meminta konten yang dihasilkan LLM langsung dari klien melalui sampling/createMessage. Ini adalah mekanisme krusial karena memungkinkan logika alat di server untuk memanfaatkan kemampuan model bahasa yang kuat tanpa perlu mengelola kredensial LLM-nya sendiri atau integrasi API langsung. Server hanya menyediakan prompt dan preferensi model opsional, dan klien, bertindak sebagai perantara, meneruskan permintaan tersebut ke LLM yang terhubung dan mengembalikan respons yang dihasilkan. Ini membuka segudang aplikasi praktis, termasuk membuat ringkasan yang dipersonalisasi, menghasilkan penjelasan bahasa alami dari data terstruktur yang kompleks, atau menghasilkan rekomendasi yang sadar konteks berdasarkan percakapan yang sedang berlangsung.

Untuk operasi yang memakan waktu, Notifikasi Kemajuan menjadi sangat berharga. Kemampuan ini memungkinkan server MCP untuk melaporkan pembaruan inkremental selama tugas yang berjalan lama. Dengan memanfaatkan ctx.report_progress(progress, total), server dapat memancarkan pembaruan berkelanjutan yang dapat diterjemahkan klien menjadi umpan balik visual, seperti bilah kemajuan atau indikator status. Baik itu mencari di seluruh sumber data yang luas atau mengeksekusi tugas komputasi yang kompleks, pembaruan kemajuan yang transparan memastikan pengguna tetap terinformasi, mencegah frustrasi dan meningkatkan pengalaman pengguna secara keseluruhan, daripada membiarkan mereka menatap layar kosong bertanya-tanya apakah sistem masih aktif.

Mempersiapkan Masa Depan Pengembangan Agen AI dengan Runtime AgentCore Bedrock

Pengenalan kemampuan klien MCP stateful pada Runtime AgentCore Amazon Bedrock merupakan lompatan signifikan dalam pengembangan agen AI. Dengan mengubah interaksi stateless sebelumnya menjadi percakapan dinamis dan dua arah, AWS memberdayakan pengembang untuk membangun aplikasi AI yang lebih cerdas, responsif, dan ramah pengguna. Kemampuan ini – Elicitation untuk masukan pengguna terpandu, Sampling untuk generasi LLM sesuai permintaan, dan Notifikasi Kemajuan untuk transparansi real-time – secara kolektif membuka era baru alur kerja agen interaktif. Seiring dengan terus berkembangnya AI, kemampuan dasar ini akan krusial untuk menciptakan AI agentik operasional yang canggih yang dapat berintegrasi secara mulus ke dalam proses bisnis yang kompleks, beradaptasi dengan kebutuhan pengguna, dan memberikan nilai yang luar biasa.

Pertanyaan yang Sering Diajukan

What problem do stateful MCP client capabilities solve on Amazon Bedrock AgentCore Runtime?
Stateful Model Context Protocol (MCP) client capabilities on Amazon Bedrock AgentCore Runtime address the critical limitations of previous stateless AI agent implementations. Stateless agents struggled with interactive, multi-turn workflows, as they couldn't pause mid-execution to solicit user input for clarification, request dynamic large language model (LLM)-generated content, or provide real-time progress updates during lengthy operations. Each request was independent, lacking shared context. This new feature fundamentally transforms agent interactions by enabling bidirectional conversations, allowing agents to maintain conversational threads, gather necessary input precisely when needed, generate dynamic content on the fly, and transparently inform users about ongoing processes. This leads to the development of significantly more responsive, intelligent, and user-centric AI applications capable of complex, adaptive workflows.
How does the transition from stateless to stateful mode work on AgentCore Runtime?
The transition to stateful mode within Amazon Bedrock AgentCore Runtime is initiated by a simple configuration adjustment: setting `stateless_http=False` when starting your MCP server. Once enabled, AgentCore Runtime provisions a dedicated microVM for each individual user session. This microVM is designed for persistence throughout the session's duration, which can last up to 8 hours or expire after 15 minutes of inactivity, ensuring isolated CPU, memory, and filesystem resources for each session. Continuity across interactions is maintained through a unique `Mcp-Session-Id` header. This ID is established during the initial handshake and subsequently included by the client in all follow-up requests, ensuring they are accurately routed back to the correct, persistent session, thereby preserving context and enabling complex, interactive dialogues.
What is Elicitation, and how does it enhance AI agent interactions?
Elicitation is a powerful stateful MCP capability that allows an AI agent (acting as the MCP server) to intelligently pause its ongoing execution and request specific, structured input directly from the user via the client. This significantly enhances interactive agent workflows by enabling agents to ask targeted questions at precise, opportune moments within their operational flow. For example, an agent might use elicitation to confirm a decision, gather user preferences, or collect particular data values that are contingent on preceding steps. The feature supports two robust modes: 'Form mode' for direct structured data collection through the MCP client, and 'URL mode' for secure, out-of-band interactions that require directing the user to an external URL (e.g., for OAuth or sensitive credential entry). The user's response – whether accepting, declining, or canceling the request – is then returned to the server, allowing the agent to dynamically adapt its workflow based on real-time human feedback.
How does Sampling capability benefit AI agents without managing LLM credentials?
Sampling equips the MCP server with the ability to request sophisticated large language model (LLM)-generated content directly from the client using the `sampling/createMessage` mechanism. A key benefit is that the MCP server itself does not need to manage its own LLM credentials, API keys, or direct integrations with various LLM providers. Instead, the server simply provides a well-formed prompt and any optional model preferences to the client. The client then acts as an intelligent intermediary, forwarding this request to its connected LLM and returning the generated response back to the server. This abstraction allows AI agents to seamlessly leverage powerful language model capabilities for tasks such as crafting personalized summaries, generating natural-language explanations from complex structured data, or producing context-aware recommendations, all while simplifying the operational overhead and security concerns associated with LLM management on the server side.

Tetap Update

Dapatkan berita AI terbaru di inbox Anda.

Bagikan