Code Velocity
Poslovna umetna inteligenca

Amazon Bedrock: Zmogljivosti odjemalca MCP s stanjem v izvajalnem okolju AgentCore

·7 min branja·AWS·Izvirni vir
Deli
Diagram, ki ponazarja zmogljivosti odjemalca MCP s stanjem v izvajalnem okolju Amazon Bedrock AgentCore Runtime z interaktivnimi poteki agentov UI.

Izboljšanje agentov umetne inteligence: Prehod na MCP s stanjem na Amazon Bedrock

Agenti umetne inteligence se hitro razvijajo, vendar je bil njihov polni potencial pogosto oviran zaradi implementacij brez stanja, zlasti v scenarijih, ki zahtevajo interakcijo z uporabnikom v realnem času, dinamično generiranje vsebine ali stalne posodobitve napredka. Razvijalci, ki gradijo sofisticirane agente UI, se pogosto soočajo z izzivi, ko se poteki dela morajo ustaviti, zbrati pojasnila ali poročati o stanju med dolgotrajnimi operacijami. Togo, enosmerno izvajanje brez stanja omejuje razvoj resnično interaktivnih in odzivnih aplikacij UI.

Zdaj Amazon Bedrock AgentCore Runtime uvaja prelomne zmogljivosti odjemalca protokola konteksta modela (MCP) s stanjem, ki preoblikujejo način, kako se agenti UI vključujejo z uporabniki in velikimi jezikovnimi modeli (LLM). Ta ključna posodobitev osvobaja agente omejitev komunikacije brez stanja, kar omogoča kompleksne, večstopenjske in visoko interaktivne poteke dela. Z integracijo ključnih funkcij odjemalca MCP – Izzivanja, Vzorčenja in Obvestil o napredku – Bedrock AgentCore Runtime omogoča dvosmerne pogovore med strežniki MCP in odjemalci, s čimer odpira pot inteligentnejšim, uporabniku usmerjenim rešitvam UI.

Od brezstanjskega do stanjskega: Odklepanje interaktivnih potekov dela agentov

Prej je podpora strežnika MCP na AgentCore delovala v brezstanjskem načinu, kjer je vsaka zahteva HTTP delovala neodvisno, brez kakršnega koli skupnega konteksta. Čeprav je to poenostavilo uvedbo za osnovne strežnike orodij, je močno omejevalo scenarije, ki so zahtevali kontinuiteto pogovora, pojasnilo uporabnika sredi poteka dela ali poročanje o napredku v realnem času. Strežnik preprosto ni mogel vzdrževati pogovorne niti med diskretnimi zahtevami, kar je oviralo razvoj resnično interaktivnih agentov.

Prihod zmogljivosti odjemalca MCP s stanjem temeljne spremeni to paradigmo. Z nastavitvijo stateless_http=False med zagonom strežnika AgentCore Runtime dodeli namenski mikroVM za vsako uporabniško sejo. Ta mikroVM obstaja za čas trajanja seje – do 8 ur ali 15 minut neaktivnosti glede na nastavitev idleRuntimeSessionTimeout – kar zagotavlja izolacijo CPU, pomnilnika in datotečnega sistema med sejami. Kontinuiteta se vzdržuje preko glave Mcp-Session-Id, ki jo strežnik zagotovi med inicializacijo in jo odjemalec vključi v vse naslednje zahteve, da se usmerijo nazaj v isto sejo. To namensko, trajno okolje omogoča agentom, da si zapomnijo kontekst, zahtevajo uporabniški vnos, generirajo dinamično vsebino LLM in zagotavljajo nenehne posodobitve.

Naslednja tabela povzema ključne razlike med brezstanjskim in stanjskim načinom:

Brezstanjski načinStanjski način
Nastavitev stateless_httpTRUEFALSE
Izolacija sejNamenski mikroVM na sejoNamenski mikroVM na sejo
Življenjska doba sejeDo 8 ur; 15-minutna časovna omejitev neaktivnostiDo 8 ur; 15-minutna časovna omejitev neaktivnosti
Zmogljivosti odjemalcaNi podprtoIzzivanje, vzorčenje, obvestila o napredku
Priporočeno zaEnostavno streženje orodijInteraktivni, večstopenjski poteki dela

Ko se seja izteče ali se strežnik znova zažene, bodo naslednje zahteve z zgodnjim ID-jem seje vrnile 404. Takrat morajo odjemalci znova inicializirati povezavo, da pridobijo nov ID seje in začnejo novo sejo. Sprememba konfiguracije za omogočanje stanjskega načina je en sam zastavic v zagonu vašega strežnika:

mcp.run( transport="streamable-http", host="0.0.0.0", port=8000, stateless_http=False # Omogoči stanjski način)

Poleg te zastavice so tri zmogljivosti odjemalca samodejno na voljo, ko odjemalec MCP med inicializacijskim rokovanjem izjavi podporo zanje.

Poglobljen pregled novih zmogljivosti odjemalca: Izzivanje, Vzorčenje in Napredek

S prehodom na stanjski način Amazon Bedrock AgentCore Runtime omogoča tri zmogljive zmožnosti odjemalca iz specifikacije MCP, od katerih je vsaka zasnovana za obravnavanje različnih interakcijskih vzorcev, ključnih za napredne agente UI. Te zmožnosti spreminjajo tisto, kar je bilo nekoč togo, enosmerno izvajanje ukazov, v tekoč dvosmerni dialog med strežnikom MCP in njegovimi povezanimi odjemalci. Pomembno je opozoriti, da so te funkcije izbirne, kar pomeni, da odjemalci izjavijo svojo podporo med inicializacijo, strežniki pa morajo uporabljati samo tiste zmogljivosti, ki jih je povezani odjemalec oglaševal.

Izzivanje: Omogočanje dinamičnega uporabniškega vnosa v agente UI

Izzivanje (Elicitation) je temelj interaktivne UI, ki strežniku MCP omogoča, da preudarno prekine svoje izvajanje in od uporabnika prek odjemalca zahteva specifičen, strukturiran vnos. Ta zmogljivost omogoča orodju, da postavlja natančna vprašanja ob ustreznih trenutkih znotraj svojega poteka dela, bodisi za potrditev odločitve, zbiranje uporabniških preferenc ali zbiranje vrednosti, pridobljene iz predhodnih operacij. Strežnik to sproži tako, da pošlje zahtevo JSON-RPC elicitation/create, ki vključuje človeku berljivo sporočilo in neobvezno requestedSchema, ki določa pričakovano strukturo odgovora.

Specifikacija MCP ponuja dva robustna načina za izzivanje:

  • Form mode (Način obrazca): Ta je idealen za zbiranje strukturiranih podatkov neposredno prek odjemalca MCP, kot so konfiguracijski parametri, uporabniške preference ali enostavne potrditve, kjer ni vpletenih občutljivih podatkov.
  • URL mode (Način URL-ja): Za interakcije, ki zahtevajo varen, zunanji postopek, kot so tokovi OAuth, obdelava plačil ali vnos občutljivih poverilnic, način URL-ja usmeri uporabnika na zunanji URL. To zagotavlja, da občutljive informacije v celoti obidejo odjemalca MCP, kar povečuje varnost in skladnost.

Po prejemu zahteve za izzivanje odjemalec prikaže ustrezen vnosni vmesnik. Nadaljnje uporabnikovo dejanje sproži model odgovora s tremi dejanji nazaj na strežnik: accept (uporabnik je posredoval zahtevane podatke), decline (uporabnik je izrecno zavrnil zahtevo) ali cancel (uporabnik je zavrnil poziv, ne da bi se odločil). Inteligentni strežniki so zasnovani tako, da se elegantno spopadajo z vsakim od teh scenarijev, kar zagotavlja robustno in uporabniku prijazno izkušnjo. Na primer, orodje add_expense_interactive, kot je prikazano v izvornem gradivu, lahko uporabnika vodi skozi vrsto vprašanj – znesek, opis, kategorija in končna potrditev – preden se podatki zapišejo v zaledno bazo, kot je Amazon DynamoDB. Vsak korak uporablja Pydantic modele za določitev pričakovanega vnosa, ki ga FastMCP brezhibno pretvori v shemo JSON, potrebno za zahtevo elicitation/create.

Vzorčenje in obvestila o napredku: Povečanje interakcije LLM in preglednosti

Poleg neposredne interakcije z uporabnikom, vzorčenje (Sampling) opremlja strežnik MCP z zmožnostjo, da neposredno od odjemalca zahteva vsebino, generirano z LLM, prek sampling/createMessage. To je kritičen mehanizem, saj omogoča logiki orodja na strežniku, da izkoristi zmogljive zmožnosti jezikovnega modela, ne da bi morala upravljati lastne poverilnice LLM ali neposredne integracije API. Strežnik preprosto posreduje poziv in neobvezne preference modela, odjemalec pa, ki deluje kot posrednik, posreduje zahtevo svojemu povezanemu LLM in vrne generirani odgovor. To odpira nešteto praktičnih aplikacij, vključno z ustvarjanjem personaliziranih povzetkov, generiranjem naravnih jezikovnih razlag iz strukturiranih podatkov ali izdelavo priporočil, ki upoštevajo kontekst, na podlagi tekočega pogovora.

Za operacije, ki trajajo dlje časa, postanejo obvestila o napredku (Progress Notifications) neprecenljive. Ta zmogljivost omogoča strežniku MCP, da poroča o inkrementalnih posodobitvah med dolgotrajnimi nalogami. Z uporabo ctx.report_progress(progress, total) lahko strežnik oddaja nenehne posodobitve, ki jih lahko odjemalci pretvorijo v vizualne povratne informacije, kot je vrstica napredka ali indikator stanja. Ne glede na to, ali gre za iskanje po ogromnih virih podatkov ali izvajanje kompleksnih računskih nalog, pregledna obvestila o napredku zagotavljajo, da so uporabniki obveščeni, preprečujejo frustracije in izboljšujejo splošno uporabniško izkušnjo, namesto da bi jih pustili strmeti v prazen zaslon in se spraševali, ali sistem še deluje.

Zagotavljanje prihodnosti razvoja agentov umetne inteligence z izvajalnim okoljem Bedrock AgentCore Runtime

Uvedba zmogljivosti odjemalca MCP s stanjem na Amazon Bedrock AgentCore Runtime predstavlja pomemben korak naprej v razvoju agentov UI. S preoblikovanjem prej brezstanjskih interakcij v dinamične, dvosmerne pogovore AWS razvijalcem omogoča gradnjo inteligentnejših, odzivnejših in uporabniku prijaznejših aplikacij UI. Te zmogljivosti – Izzivanje za vodeni uporabniški vnos, Vzorčenje za generiranje LLM na zahtevo in Obvestila o napredku za preglednost v realnem času – skupaj odklepajo novo obdobje interaktivnih potekov dela agentov. Ker se UI še naprej razvija, bodo te temeljne zmogljivosti ključne za ustvarjanje sofisticiranih operativnih agentnih UI, ki se lahko brezhibno integrirajo v kompleksne poslovne procese, se prilagodijo potrebam uporabnikov in zagotavljajo izjemno vrednost.

Pogosta vprašanja

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.

Bodite na tekočem

Prejemajte najnovejše AI novice po e-pošti.

Deli