Code Velocity
AI Doanh nghiệp

Amazon Bedrock: Khả năng client MCP có trạng thái trên AgentCore Runtime

·7 phút đọc·AWS·Nguồn gốc
Chia sẻ
Sơ đồ minh họa khả năng client MCP có trạng thái trên Amazon Bedrock AgentCore Runtime với các luồng tác nhân AI tương tác.

Nâng cao Tác nhân AI: Chuyển đổi sang MCP có trạng thái trên Amazon Bedrock

Các tác nhân AI đang phát triển nhanh chóng, nhưng tiềm năng đầy đủ của chúng thường bị cản trở bởi các triển khai không trạng thái, đặc biệt trong các kịch bản yêu cầu tương tác người dùng theo thời gian thực, tạo nội dung động hoặc cập nhật tiến độ liên tục. Các nhà phát triển xây dựng các tác nhân AI tinh vi thường xuyên đối mặt với thách thức khi quy trình làm việc cần tạm dừng, thu thập thông tin làm rõ hoặc báo cáo trạng thái trong các hoạt động kéo dài. Bản chất cứng nhắc, một chiều của việc thực thi không trạng thái hạn chế sự phát triển của các ứng dụng AI thực sự tương tác và phản hồi nhanh.

Hiện tại, Amazon Bedrock AgentCore Runtime giới thiệu khả năng client Giao thức Ngữ cảnh Mô hình (MCP) có trạng thái đột phá, thay đổi cách các tác nhân AI tương tác với người dùng và các mô hình ngôn ngữ lớn (LLM). Bản cập nhật quan trọng này giải phóng các tác nhân khỏi những ràng buộc của giao tiếp không trạng thái, cho phép các quy trình làm việc phức tạp, đa lượt và tương tác cao. Bằng cách tích hợp các tính năng client MCP quan trọng – Gợi mở thông tin, Lấy mẫu và Thông báo tiến độ – Bedrock AgentCore Runtime tạo điều kiện cho các cuộc hội thoại hai chiều giữa các máy chủ và client MCP, mở đường cho các giải pháp AI thông minh hơn, lấy người dùng làm trung tâm.

Từ không trạng thái đến có trạng thái: Mở khóa các quy trình làm việc tác nhân tương tác

Trước đây, hỗ trợ máy chủ MCP trên AgentCore hoạt động ở chế độ không trạng thái, trong đó mỗi yêu cầu HTTP hoạt động độc lập, không có bất kỳ ngữ cảnh chung nào. Mặc dù điều này đơn giản hóa việc triển khai cho các máy chủ công cụ cơ bản, nhưng nó đã hạn chế nghiêm trọng các kịch bản yêu cầu tính liên tục của cuộc hội thoại, làm rõ thông tin người dùng giữa quy trình làm việc hoặc báo cáo tiến độ theo thời gian thực. Máy chủ đơn giản là không thể duy trì một luồng hội thoại qua các yêu cầu riêng biệt, cản trở sự phát triển của các tác nhân thực sự tương tác.

Sự ra đời của khả năng client MCP có trạng thái về cơ bản thay đổi mô hình này. Bằng cách đặt stateless_http=False trong quá trình khởi động máy chủ, AgentCore Runtime cung cấp một microVM chuyên dụng cho mỗi phiên người dùng. MicroVM này tồn tại trong suốt thời gian của phiên — lên đến 8 giờ, hoặc 15 phút không hoạt động theo cài đặt idleRuntimeSessionTimeout — đảm bảo sự cô lập về CPU, bộ nhớ và hệ thống tệp giữa các phiên. Tính liên tục được duy trì thông qua một tiêu đề Mcp-Session-Id, mà máy chủ cung cấp trong quá trình khởi tạo và client đưa vào tất cả các yêu cầu tiếp theo để định tuyến trở lại cùng phiên. Môi trường chuyên dụng, liên tục này cho phép các tác nhân ghi nhớ ngữ cảnh, yêu cầu đầu vào từ người dùng, tạo nội dung LLM động và cung cấp các cập nhật liên tục.

Bảng sau đây tóm tắt những khác biệt chính giữa chế độ không trạng thái và có trạng thái:

Chế độ không trạng tháiChế độ có trạng thái
Cài đặt stateless_httpTRUEFALSE
Cô lập phiênMicroVM chuyên dụng cho mỗi phiênMicroVM chuyên dụng cho mỗi phiên
Thời gian tồn tại của phiênTối đa 8 giờ; thời gian chờ không hoạt động 15 phútTối đa 8 giờ; thời gian chờ không hoạt động 15 phút
Khả năng clientKhông được hỗ trợGợi mở thông tin, lấy mẫu, thông báo tiến độ
Được khuyến nghị choPhục vụ công cụ đơn giảnQuy trình làm việc tương tác, đa lượt

Khi một phiên hết hạn hoặc máy chủ được khởi động lại, các yêu cầu tiếp theo với ID phiên cũ sẽ trả về lỗi 404. Tại thời điểm đó, client phải khởi tạo lại kết nối để lấy ID phiên mới và bắt đầu một phiên mới. Thay đổi cấu hình để bật chế độ có trạng thái là một cờ duy nhất trong quá trình khởi động máy chủ của bạn:

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

Ngoài cờ này, ba khả năng client sẽ tự động có sẵn khi client MCP khai báo hỗ trợ chúng trong quá trình bắt tay khởi tạo.

Đi sâu vào các Khả năng Client Mới: Gợi mở thông tin, Lấy mẫu và Tiến độ

Với sự chuyển đổi sang chế độ có trạng thái, Amazon Bedrock AgentCore Runtime mở khóa ba khả năng client mạnh mẽ từ đặc tả MCP, mỗi khả năng được thiết kế để giải quyết các mẫu tương tác riêng biệt quan trọng cho các tác nhân AI tiên tiến. Các khả năng này biến những gì từng là việc thực thi lệnh cứng nhắc, một chiều thành một cuộc đối thoại linh hoạt, hai chiều giữa máy chủ MCP và các client được kết nối của nó. Điều quan trọng cần lưu ý là các tính năng này là tùy chọn, nghĩa là client khai báo hỗ trợ của chúng trong quá trình khởi tạo, và máy chủ chỉ được sử dụng các khả năng mà client đã kết nối đã quảng cáo.

Gợi mở thông tin: Cho phép nhập liệu động từ người dùng trong các tác nhân AI

Gợi mở thông tin là nền tảng của AI tương tác, cho phép máy chủ MCP tạm dừng việc thực thi một cách thận trọng và yêu cầu đầu vào cụ thể, có cấu trúc từ người dùng thông qua client. Khả năng này giúp công cụ đặt các câu hỏi chính xác vào những thời điểm thích hợp trong quy trình làm việc của nó, cho dù đó là để xác nhận một quyết định, thu thập tùy chọn của người dùng hoặc thu thập một giá trị được suy ra từ các hoạt động trước đó. Máy chủ khởi tạo điều này bằng cách gửi yêu cầu JSON-RPC elicitation/create, bao gồm một thông báo dễ đọc và một requestedSchema tùy chọn để phân định cấu trúc phản hồi mong đợi.

Đặc tả MCP cung cấp hai chế độ mạnh mẽ cho việc gợi mở thông tin:

  • Chế độ biểu mẫu: Chế độ này lý tưởng để thu thập dữ liệu có cấu trúc trực tiếp thông qua client MCP, chẳng hạn như các tham số cấu hình, tùy chọn của người dùng hoặc các xác nhận đơn giản không liên quan đến dữ liệu nhạy cảm.
  • Chế độ URL: Đối với các tương tác yêu cầu một quy trình an toàn, ngoài luồng, như luồng OAuth, xử lý thanh toán hoặc nhập thông tin xác thực nhạy cảm, chế độ URL hướng người dùng đến một URL bên ngoài. Điều này đảm bảo rằng thông tin nhạy cảm hoàn toàn bỏ qua client MCP, tăng cường bảo mật và tuân thủ.

Khi nhận được yêu cầu gợi mở thông tin, client sẽ hiển thị một giao diện nhập liệu phù hợp. Hành động tiếp theo của người dùng kích hoạt mô hình phản hồi ba hành động trở lại máy chủ: accept (người dùng đã cung cấp dữ liệu được yêu cầu), decline (người dùng từ chối rõ ràng yêu cầu) hoặc cancel (người dùng bỏ qua lời nhắc mà không đưa ra lựa chọn). Các máy chủ thông minh được thiết kế để xử lý từng kịch bản này một cách linh hoạt, đảm bảo trải nghiệm mạnh mẽ và thân thiện với người dùng. Ví dụ, một công cụ add_expense_interactive, như được trình bày trong tài liệu gốc, có thể hướng dẫn người dùng qua một loạt câu hỏi – số tiền, mô tả, danh mục và xác nhận cuối cùng – trước khi gửi dữ liệu đến một hệ thống phụ trợ như Amazon DynamoDB. Mỗi bước tận dụng các mô hình Pydantic để định nghĩa đầu vào mong đợi, mà FastMCP chuyển đổi liền mạch thành JSON Schema cần thiết cho yêu cầu elicitation/create.

Lấy mẫu và Thông báo tiến độ: Tăng cường tương tác và tính minh bạch của LLM

Ngoài tương tác trực tiếp với người dùng, Lấy mẫu trang bị cho máy chủ MCP khả năng yêu cầu nội dung tinh vi do mô hình ngôn ngữ lớn (LLM) tạo ra trực tiếp từ client thông qua sampling/createMessage. Đây là một cơ chế quan trọng vì nó cho phép logic công cụ trên máy chủ khai thác các khả năng mạnh mẽ của mô hình ngôn ngữ mà không cần quản lý thông tin xác thực LLM riêng hoặc tích hợp API trực tiếp. Máy chủ chỉ đơn giản cung cấp một lời nhắc và các tùy chọn mô hình, và client, hoạt động như một trung gian, chuyển tiếp yêu cầu này đến LLM được kết nối và trả lại phản hồi đã tạo. Điều này mở ra vô số ứng dụng thực tế, bao gồm tạo bản tóm tắt cá nhân hóa, tạo giải thích bằng ngôn ngữ tự nhiên từ dữ liệu có cấu trúc hoặc đưa ra các khuyến nghị nhận biết ngữ cảnh dựa trên cuộc hội thoại đang diễn ra.

Đối với các hoạt động kéo dài theo thời gian, Thông báo tiến độ trở nên vô giá. Khả năng này cho phép máy chủ MCP báo cáo các cập nhật gia tăng trong các tác vụ kéo dài. Bằng cách sử dụng ctx.report_progress(progress, total), máy chủ có thể phát ra các cập nhật liên tục mà client có thể chuyển thành phản hồi trực quan, chẳng hạn như thanh tiến độ hoặc chỉ báo trạng thái. Cho dù đó là tìm kiếm trên các nguồn dữ liệu khổng lồ hay thực thi các tác vụ tính toán phức tạp, các cập nhật tiến độ minh bạch đảm bảo người dùng luôn được thông báo, ngăn ngừa sự thất vọng và nâng cao trải nghiệm người dùng tổng thể, thay vì để họ nhìn chằm chằm vào một màn hình trống rỗng mà không biết liệu hệ thống có còn hoạt động hay không.

Định hướng tương lai phát triển tác nhân AI với Bedrock AgentCore Runtime

Việc giới thiệu khả năng client MCP có trạng thái trên Amazon Bedrock AgentCore Runtime đại diện cho một bước tiến đáng kể trong phát triển tác nhân AI. Bằng cách biến các tương tác không trạng thái trước đây thành các cuộc đối thoại động, hai chiều, AWS trao quyền cho các nhà phát triển xây dựng các ứng dụng AI thông minh hơn, phản hồi nhanh hơn và thân thiện với người dùng hơn. Các khả năng này – Gợi mở thông tin để hướng dẫn đầu vào của người dùng, Lấy mẫu để tạo LLM theo yêu cầu và Thông báo tiến độ để có tính minh bạch theo thời gian thực – cùng nhau mở ra một kỷ nguyên mới của các quy trình làm việc tác nhân tương tác. Khi AI tiếp tục phát triển, những khả năng nền tảng này sẽ rất quan trọng để tạo ra AI tác nhân hoạt động hiệu quả có thể tích hợp liền mạch vào các quy trình kinh doanh phức tạp, thích ứng với nhu cầu người dùng và mang lại giá trị đặc biệt.

Câu hỏi thường gặp

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.

Cập nhật tin tức

Nhận tin tức AI mới nhất qua email.

Chia sẻ