Code Velocity
Unternehmens-KI

Amazon Bedrock: Zustandsbehaftete MCP-Client-Funktionen in der AgentCore Runtime

·7 Min. Lesezeit·AWS·Originalquelle
Teilen
Diagramm, das zustandsbehaftete MCP-Client-Funktionen in der Amazon Bedrock AgentCore Runtime mit interaktiven KI-Agenten-Flüssen darstellt.

Abgesehen von diesem Flag werden die drei Client-Funktionen automatisch verfügbar, sobald der MCP-Client während des Initialisierungs-Handshakes seine Unterstützung dafür deklariert.

Ein tiefer Einblick in neue Client-Funktionen: Elicitation, Sampling und Fortschritt

Mit dem Übergang in den zustandsbehafteten Modus schaltet die Amazon Bedrock AgentCore Runtime drei leistungsstarke Client-Funktionen aus der MCP-Spezifikation frei, die jeweils darauf ausgelegt sind, unterschiedliche Interaktionsmuster zu adressieren, die für fortgeschrittene KI-Agenten entscheidend sind. Diese Funktionen verwandeln die einst starre, einseitige Befehlsausführung in einen flüssigen, zweiseitigen Dialog zwischen einem MCP-Server und seinen verbundenen Clients. Es ist wichtig zu beachten, dass diese Funktionen optional sind, was bedeutet, dass Clients ihre Unterstützung während der Initialisierung deklarieren, und Server dürfen nur Funktionen nutzen, die der verbundene Client beworben hat.

Elicitation: Dynamische Benutzereingaben in KI-Agenten ermöglichen

Elicitation ist ein Eckpfeiler der interaktiven KI und ermöglicht es einem MCP-Server, seine Ausführung umsichtig anzuhalten und spezifische, strukturierte Eingaben vom Benutzer über den Client anzufordern. Diese Funktion befähigt das Tool, präzise Fragen zu passenden Zeitpunkten in seinem Workflow zu stellen, sei es, um eine Entscheidung zu bestätigen, eine Benutzerpräferenz zu sammeln oder einen Wert zu erfassen, der sich aus vorhergehenden Operationen ergibt. Der Server initiiert dies, indem er eine elicitation/create JSON-RPC-Anfrage sendet, die eine für Menschen lesbare Nachricht und ein optionales requestedSchema enthält, das die erwartete Antwortstruktur abgrenzt.

Die MCP-Spezifikation bietet zwei robuste Modi für die Elicitation:

  • Formularmodus: Dieser ist ideal für das Sammeln strukturierter Daten direkt über den MCP-Client, wie z. B. Konfigurationsparameter, Benutzerpräferenzen oder einfache Bestätigungen, bei denen keine sensiblen Daten involviert sind.
  • URL-Modus: Für Interaktionen, die einen sicheren, außerbandmäßigen Prozess erfordern, wie OAuth-Flows, Zahlungsabwicklungen oder die Eingabe sensibler Anmeldeinformationen, leitet der URL-Modus den Benutzer zu einer externen URL weiter. Dies stellt sicher, dass sensible Informationen den MCP-Client vollständig umgehen, was die Sicherheit und Compliance erhöht.

Nach Erhalt einer Elicitation-Anfrage rendert der Client eine entsprechende Eingabeoberfläche. Die nachfolgende Aktion des Benutzers löst ein Drei-Aktionen-Antwortmodell an den Server aus: accept (Benutzer hat die angeforderten Daten bereitgestellt), decline (Benutzer hat die Anfrage explizit abgelehnt) oder cancel (Benutzer hat die Aufforderung ohne Wahl abgebrochen). Intelligente Server sind so konzipiert, dass sie jedes dieser Szenarien elegant handhaben, um ein robustes und benutzerfreundliches Erlebnis zu gewährleisten. Zum Beispiel kann ein add_expense_interactive-Tool, wie im Quellmaterial demonstriert, einen Benutzer durch eine Reihe von Fragen – Betrag, Beschreibung, Kategorie und endgültige Bestätigung – führen, bevor Daten an ein Backend wie Amazon DynamoDB übermittelt werden. Jeder Schritt nutzt Pydantic-Modelle, um die erwartete Eingabe zu definieren, die FastMCP nahtlos in das für die elicitation/create-Anfrage erforderliche JSON-Schema umwandelt.

Sampling und Fortschrittsbenachrichtigungen: LLM-Interaktion und Transparenz steigern

Über die direkte Benutzerinteraktion hinaus stattet Sampling den MCP-Server mit der Fähigkeit aus, über sampling/createMessage LLM-generierte Inhalte direkt vom Client anzufordern. Dies ist ein entscheidender Mechanismus, da er es der Tool-Logik auf dem Server ermöglicht, leistungsstarke Sprachmodellfunktionen zu nutzen, ohne eigene LLM-Anmeldeinformationen oder direkte API-Integrationen verwalten zu müssen. Der Server stellt einfach eine Eingabeaufforderung und optionale Modellpräferenzen bereit, und der Client, der als Vermittler fungiert, leitet die Anfrage an sein verbundenes LLM weiter und sendet die generierte Antwort zurück. Dies eröffnet eine Vielzahl praktischer Anwendungen, darunter das Erstellen personalisierter Zusammenfassungen, das Generieren natürlicher Spracherklärungen aus strukturierten Daten oder das Produzieren kontextbezogener Empfehlungen, basierend auf der laufenden Konversation.

Für Operationen, die sich über einen längeren Zeitraum erstrecken, werden Fortschrittsbenachrichtigungen von unschätzbarem Wert. Diese Funktion ermöglicht es einem MCP-Server, inkrementelle Aktualisierungen während langwieriger Aufgaben zu melden. Durch die Verwendung von ctx.report_progress(progress, total) kann der Server kontinuierliche Aktualisierungen ausgeben, die Clients in visuelles Feedback, wie einen Fortschrittsbalken oder eine Statusanzeige, übersetzen können. Ob es sich um die Suche in riesigen Datenquellen oder die Ausführung komplexer Rechenaufgaben handelt, transparente Fortschrittsaktualisierungen stellen sicher, dass Benutzer informiert bleiben, Frustration vermieden und das gesamte Benutzererlebnis verbessert wird, anstatt sie vor einem leeren Bildschirm sitzen zu lassen und sich zu fragen, ob das System noch aktiv ist.

KI-Agenten-Entwicklung mit der Bedrock AgentCore Runtime zukunftssicher machen

Die Einführung zustandsbehafteter MCP-Client-Funktionen auf Amazon Bedrock AgentCore Runtime stellt einen bedeutenden Fortschritt in der KI-Agenten-Entwicklung dar. Durch die Umwandlung zuvor zustandsloser Interaktionen in dynamische, bidirektionale Konversationen befähigt AWS Entwickler, intelligentere, reaktionsschnellere und benutzerfreundlichere KI-Anwendungen zu erstellen. Diese Funktionen – Elicitation für geführte Benutzereingaben, Sampling für die bedarfsgerechte LLM-Generierung und Fortschrittsbenachrichtigungen für Echtzeit-Transparenz – eröffnen gemeinsam eine neue Ära interaktiver Agenten-Workflows. Während sich KI weiterentwickelt, werden diese grundlegenden Funktionen entscheidend sein, um ausgeklügelte agentische KI zu operationalisieren, die sich nahtlos in komplexe Geschäftsprozesse integrieren, sich an Benutzerbedürfnisse anpassen und außergewöhnlichen Wert liefern kann.

Häufig gestellte Fragen

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.

Bleiben Sie informiert

Erhalten Sie die neuesten KI-Nachrichten per E-Mail.

Teilen