Code Velocity
AI Perusahaan

Amazon Bedrock: Keupayaan Klien MCP Berkeadaan (Stateful) pada Runtime AgentCore

·7 min bacaan·AWS·Sumber asal
Kongsi
Diagram menggambarkan keupayaan klien MCP berkeadaan pada Amazon Bedrock AgentCore Runtime dengan aliran ejen AI interaktif.

Meningkatkan Ejen AI: Peralihan kepada MCP Berkeadaan (Stateful) pada Amazon Bedrock

Ejen AI berkembang pesat, namun potensi penuhnya sering terhalang oleh pelaksanaan tanpa keadaan (stateless), terutamanya dalam senario yang memerlukan interaksi pengguna masa nyata, penjanaan kandungan dinamik, atau kemas kini kemajuan berterusan. Pembangun yang membina ejen AI yang canggih sering menghadapi cabaran apabila aliran kerja perlu berhenti seketika, mengumpul penjelasan, atau melaporkan status semasa operasi yang panjang. Sifat kaku dan sehala bagi pelaksanaan tanpa keadaan mengehadkan pembangunan aplikasi AI yang benar-benar interaktif dan responsif.

Kini, Amazon Bedrock AgentCore Runtime memperkenalkan keupayaan klien Model Context Protocol (MCP) berkeadaan yang inovatif, mengubah cara ejen AI berinteraksi dengan pengguna dan model bahasa besar (LLM). Kemas kini penting ini membebaskan ejen daripada batasan komunikasi tanpa keadaan, membolehkan aliran kerja yang kompleks, berbilang pusingan, dan sangat interaktif. Dengan menyepadukan ciri-ciri klien MCP yang penting – Elicitation, Sampling, dan Pemberitahuan Kemajuan – Bedrock AgentCore Runtime memudahkan perbualan dua hala antara pelayan dan klien MCP, membuka jalan kepada penyelesaian AI yang lebih pintar dan berpusatkan pengguna.

Daripada Tanpa Keadaan (Stateless) kepada Berkeadaan (Stateful): Membuka Kunci Aliran Kerja Ejen Interaktif

Sebelum ini, sokongan pelayan MCP pada AgentCore beroperasi dalam mod tanpa keadaan, di mana setiap permintaan HTTP berfungsi secara bebas, tanpa sebarang konteks bersama. Walaupun ini menyederhanakan penggunaan untuk pelayan alat asas, ia amat mengehadkan senario yang memerlukan kesinambungan perbualan, penjelasan pengguna pertengahan aliran kerja, atau pelaporan kemajuan masa nyata. Pelayan tidak dapat mengekalkan benang perbualan merentasi permintaan diskret, menghalang pembangunan ejen yang benar-benar interaktif.

Kemunculan keupayaan klien MCP berkeadaan secara asasnya mengubah paradigma ini. Dengan menetapkan stateless_http=False semasa permulaan pelayan, AgentCore Runtime memperuntukkan microVM khusus untuk setiap sesi pengguna. MicroVM ini kekal sepanjang tempoh sesi—sehingga 8 jam, atau 15 minit tidak aktif setiap tetapan idleRuntimeSessionTimeout—memastikan pengasingan CPU, memori, dan sistem fail antara sesi. Kesinambungan dikekalkan melalui pengepala Mcp-Session-Id, yang disediakan oleh pelayan semasa permulaan dan disertakan oleh klien dalam semua permintaan berikutnya untuk dihalakan semula ke sesi yang sama. Persekitaran khusus dan kekal ini membolehkan ejen mengingati konteks, meminta input pengguna, menjana kandungan LLM dinamik, dan menyediakan kemas kini berterusan.

Jadual berikut meringkaskan perbezaan utama antara mod tanpa keadaan dan berkeadaan:

Mod Tanpa KeadaanMod Berkeadaan
Tetapan stateless_httpTRUEFALSE
Pengasingan sesiMicroVM khusus bagi setiap sesiMicroVM khusus bagi setiap sesi
Hayat sesiSehingga 8 jam; tamat masa terbiar 15 minitSehingga 8 jam; tamat masa terbiar 15 minit
Keupayaan klienTidak disokongElicitation, sampling, pemberitahuan kemajuan
Disyorkan untukPenyediaan alat yang ringkasAliran kerja interaktif, berbilang pusingan

Apabila sesi tamat atau pelayan dimulakan semula, permintaan seterusnya dengan ID sesi awal akan mengembalikan 404. Pada ketika itu, klien mesti memulakan semula sambungan untuk mendapatkan ID sesi baharu dan memulakan sesi yang segar. Perubahan konfigurasi untuk membolehkan mod berkeadaan adalah satu bendera dalam permulaan pelayan anda:

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

Selain bendera ini, tiga keupayaan klien tersedia secara automatik sebaik sahaja klien MCP mengisytiharkan sokongan untuknya semasa jabat tangan permulaan.

Pendalaman ke dalam Keupayaan Klien Baharu: Elicitation, Sampling, dan Kemajuan

Dengan peralihan kepada mod berkeadaan, Amazon Bedrock AgentCore Runtime membuka kunci tiga keupayaan klien yang berkuasa daripada spesifikasi MCP, setiap satunya direka untuk menangani pola interaksi yang berbeza yang penting untuk ejen AI yang canggih. Keupayaan ini mengubah apa yang dulunya pelaksanaan arahan sehala yang kaku menjadi dialog dua hala yang lancar antara pelayan MCP dan klien yang disambungkan. Penting untuk diperhatikan bahawa ciri-ciri ini adalah pilihan (opt-in), yang bermaksud klien mengisytiharkan sokongan mereka semasa permulaan, dan pelayan hanya boleh menggunakan keupayaan yang telah diiklankan oleh klien yang disambungkan.

Elicitation: Membolehkan Input Pengguna Dinamik dalam Ejen AI

Elicitation berdiri sebagai asas AI interaktif, membenarkan pelayan MCP untuk menghentikan pelaksanaannya secara bijaksana dan meminta input khusus, berstruktur daripada pengguna melalui klien. Keupayaan ini memperkasakan alat untuk menanyakan soalan yang tepat pada saat yang sesuai dalam aliran kerjanya, sama ada untuk mengesahkan keputusan, mengumpul keutamaan pengguna, atau mengumpul nilai yang diperoleh daripada operasi sebelumnya. Pelayan memulakan ini dengan menghantar permintaan JSON-RPC elicitation/create, yang merangkumi mesej yang boleh dibaca manusia dan requestedSchema pilihan yang menggariskan struktur respons yang dijangkakan.

Spesifikasi MCP menyediakan dua mod teguh untuk elicitation:

  • Mod Borang: Ini sesuai untuk mengumpul data berstruktur secara langsung melalui klien MCP, seperti parameter konfigurasi, keutamaan pengguna, atau pengesahan mudah di mana data sensitif tidak terlibat.
  • Mod URL: Untuk interaksi yang memerlukan proses luar-band (out-of-band) yang selamat, seperti aliran OAuth, pemprosesan pembayaran, atau kemasukan kelayakan sensitif, mod URL mengarahkan pengguna ke URL luaran. Ini memastikan maklumat sensitif memintas klien MCP sepenuhnya, meningkatkan keselamatan dan pematuhan.

Setelah menerima permintaan elicitation, klien memaparkan antara muka input yang sesuai. Tindakan pengguna seterusnya mencetuskan model respons tiga tindakan kembali ke pelayan: accept (pengguna menyediakan data yang diminta), decline (pengguna secara eksplisit menolak permintaan), atau cancel (pengguna menolak arahan tanpa membuat pilihan). Pelayan pintar direka untuk mengendalikan setiap senario ini dengan anggun, memastikan pengalaman yang teguh dan mesra pengguna. Sebagai contoh, alat add_expense_interactive, seperti yang ditunjukkan dalam bahan sumber, boleh membimbing pengguna melalui siri soalan—jumlah, perihalan, kategori, dan pengesahan akhir—sebelum menyerahkan data kepada backend seperti Amazon DynamoDB. Setiap langkah memanfaatkan model Pydantic untuk menentukan input yang dijangkakan, yang FastMCP menukar dengan lancar kepada Skema JSON yang diperlukan untuk permintaan elicitation/create.

Sampling dan Pemberitahuan Kemajuan: Meningkatkan Interaksi dan Ketelusan LLM

Di luar interaksi pengguna langsung, Sampling melengkapkan pelayan MCP dengan keupayaan untuk meminta kandungan yang dihasilkan LLM terus daripada klien melalui sampling/createMessage. Ini adalah mekanisme kritikal kerana ia membenarkan logik alat pada pelayan memanfaatkan keupayaan model bahasa yang berkuasa tanpa perlu menguruskan kelayakan LLMnya sendiri atau integrasi API langsung. Pelayan hanya menyediakan arahan dan keutamaan model pilihan, dan klien, bertindak sebagai perantara, menghantar permintaan ini kepada LLM yang disambungkan dan mengembalikan respons yang dihasilkan. Ini membuka pelbagai aplikasi praktikal, termasuk menghasilkan ringkasan peribadi, menjana penjelasan bahasa semula jadi daripada data berstruktur, atau menghasilkan cadangan yang sensitif konteks berdasarkan perbualan yang sedang berlangsung.

Untuk operasi yang memakan masa, Pemberitahuan Kemajuan menjadi tidak ternilai. Keupayaan ini membenarkan pelayan MCP untuk melaporkan kemas kini secara berperingkat semasa tugas yang mengambil masa yang lama. Dengan menggunakan ctx.report_progress(progress, total), pelayan boleh mengeluarkan kemas kini berterusan yang boleh diterjemahkan oleh klien kepada maklum balas visual, seperti bar kemajuan atau penunjuk status. Sama ada mencari merentasi sumber data yang luas atau melaksanakan tugas pengiraan yang kompleks, kemas kini kemajuan yang telus memastikan pengguna sentiasa dimaklumkan, mencegah kekecewaan dan meningkatkan pengalaman pengguna secara keseluruhan, daripada membiarkan mereka merenung skrin kosong tertanya-tanya sama ada sistem masih aktif.

Melindungi Pembangunan Ejen AI Masa Depan dengan Bedrock AgentCore Runtime

Pengenalan keupayaan klien MCP berkeadaan pada Amazon Bedrock AgentCore Runtime mewakili satu lonjakan besar ke hadapan dalam pembangunan ejen AI. Dengan mengubah interaksi tanpa keadaan sebelumnya menjadi perbualan dinamik dan dua hala, AWS memperkasakan pembangun untuk membina aplikasi AI yang lebih pintar, responsif dan mesra pengguna. Keupayaan ini – Elicitation untuk input pengguna berpandu, Sampling untuk penjanaan LLM atas permintaan, dan Pemberitahuan Kemajuan untuk ketelusan masa nyata – secara kolektif membuka era baharu aliran kerja ejen interaktif. Seiring dengan evolusi AI, keupayaan asas ini akan menjadi penting untuk mencipta AI agentik operasi yang canggih yang dapat berintegrasi dengan lancar ke dalam proses perniagaan yang kompleks, menyesuaikan diri dengan keperluan pengguna, dan memberikan nilai yang luar biasa.

Soalan Lazim

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.

Kekal Dikemas Kini

Dapatkan berita AI terkini dalam peti masuk anda.

Kongsi