Code Velocity
בינה מלאכותית ארגונית

Amazon Bedrock: יכולות לקוח MCP מצבניות (Stateful) ב-AgentCore Runtime

·7 דקות קריאה·AWS·מקור מקורי
שתף
תרשים הממחיש יכולות לקוח MCP מצבניות ב-Amazon Bedrock AgentCore Runtime עם זרימות סוכני AI אינטראקטיביות.

שיפור סוכני AI: המעבר ל-MCP מצבני ב-Amazon Bedrock

סוכני AI מתפתחים במהירות, אך הפוטנציאל המלא שלהם לעיתים קרובות מוגבל על ידי יישומים חסרי מצב (stateless), במיוחד בתרחישים הדורשים אינטראקציה עם משתמש בזמן אמת, יצירת תוכן דינמי או עדכוני התקדמות מתמשכים. מפתחים הבוּנים סוכני AI מתוחכמים נתקלים לעיתים קרובות באתגרים כאשר זרימות עבודה צריכות להשהות, לאסוף הבהרות או לדווח על סטטוס במהלך פעולות ארוכות טווח. האופי הנוקשה והחד-כיווני של ביצוע חסר מצב מגביל את פיתוחם של יישומי AI אינטראקטיביים ומגיבים באמת.

כעת, Amazon Bedrock AgentCore Runtime מציג יכולות לקוח פורצות דרך של פרוטוקול הקשר המודל (MCP) מצבניות (stateful), המשנות את האופן שבו סוכני AI מתקשרים עם משתמשים ומודלי שפה גדולים (LLMs). עדכון מהותי זה משחרר סוכנים ממגבלות התקשורת חסרת המצב, ומאפשר זרימות עבודה מורכבות, מרובות תורות ואינטראקטיביות במיוחד. על ידי שילוב תכונות לקוח MCP חיוניות – איסוף מידע (Elicitation), דגימה (Sampling) והודעות התקדמות (Progress Notifications) – Bedrock AgentCore Runtime מקל על שיחות דו-כיווניות בין שרתי MCP ללקוחות, וסולל את הדרך לפתרונות AI חכמים וממוקדי משתמש יותר.

מחסר מצב למצבני: פתיחת זרימות עבודה אינטראקטיביות לסוכנים

בעבר, תמיכת שרת ה-MCP ב-AgentCore פעלה במצב חסר מצב (stateless), כאשר כל בקשת HTTP תפקדה באופן עצמאי, ללא כל הקשר משותף. בעוד שזה פישט את הפריסה לשרתי כלים בסיסיים, זה הגביל באופן חמור תרחישים הדורשים רציפות שיחה, הבהרת משתמש באמצע זרימת העבודה, או דיווח התקדמות בזמן אמת. השרת פשוט לא יכול היה לשמור על רצף שיחה על פני בקשות נפרדות, מה שהפריע לפיתוחם של סוכנים אינטראקטיביים באמת.

הופעת יכולות לקוח MCP מצבניות (stateful) משנה באופן יסודי פרדיגמה זו. על ידי הגדרת stateless_http=False במהלך הפעלת השרת, AgentCore Runtime מקצה מיקרו-מכונה וירטואלית (microVM) ייעודית לכל סשן משתמש. מיקרו-מכונה וירטואלית זו מתמידה לאורך כל משך הסשן – עד 8 שעות, או 15 דקות של חוסר פעילות לפי הגדרת idleRuntimeSessionTimeout – ובכך מבטיחה בידוד של משאבי CPU, זיכרון ומערכת קבצים בין סשנים. הרציפות נשמרת באמצעות כותרת Mcp-Session-Id, שהשרת מספק במהלך האתחול והלקוח כולל בכל הבקשות הבאות כדי לנתב בחזרה לאותו סשן. סביבה ייעודית ומתמשכת זו מאפשרת לסוכנים לזכור הקשר, לבקש קלט משתמש, ליצור תוכן LLM דינמי ולספק עדכונים מתמשכים.

הטבלה הבאה מסכמת את ההבדלים העיקריים בין מצבי חסר מצב למצבני:

מצב חסר מצב (Stateless mode)מצב מצבני (Stateful mode)
הגדרת stateless_httpTRUEFALSE
בידוד סשניםמיקרו-מכונה וירטואלית ייעודית לכל סשןמיקרו-מכונה וירטואלית ייעודית לכל סשן
משך חיי סשןעד 8 שעות; פסק זמן של 15 דקות ללא פעילותעד 8 שעות; פסק זמן של 15 דקות ללא פעילות
יכולות לקוחלא נתמךאיסוף מידע (Elicitation), דגימה (Sampling), הודעות התקדמות
מומלץ עבורשירות כלים פשוטזרימות עבודה אינטראקטיביות מרובות תורות

כאשר סשן פג תוקף או השרת מופעל מחדש, בקשות הבאות עם מזהה הסשן הקודם יחזירו שגיאת 404. בנקודה זו, הלקוחות חייבים לאתחל מחדש את החיבור כדי לקבל מזהה סשן חדש ולהתחיל סשן טרי. שינוי התצורה להפעלת מצב מצבני הוא דגל יחיד בהפעלת השרת שלך:

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

מעבר לדגל זה, שלוש יכולות הלקוח הופכות זמינות אוטומטית ברגע שלקוח ה-MCP מצהיר על תמיכה בהן במהלך לחיצת היד הראשונית.

צלילה עמוקה ליכולות לקוח חדשות: איסוף מידע (Elicitation), דגימה (Sampling) והתקדמות

עם המעבר למצב מצבני (stateful), Amazon Bedrock AgentCore Runtime חושף שלוש יכולות לקוח עוצמתיות ממפרט ה-MCP, שכל אחת מהן תוכננה לטפל בתבניות אינטראקציה שונות החיוניות לסוכני AI מתקדמים. יכולות אלו הופכות את מה שהיה בעבר ביצוע פקודות נוקשה וחד-כיווני, לדיאלוג זורם ודו-כיווני בין שרת MCP ללקוחות המחוברים אליו. חשוב לציין שתכונות אלו הן 'opt-in', כלומר לקוחות מצהירים על תמיכתם במהלך האתחול, ושרתים חייבים להשתמש רק ביכולות שלקוח המחובר פרסם.

איסוף מידע (Elicitation): הפעלת קלט משתמש דינמי בסוכני AI

איסוף מידע (Elicitation) מהווה אבן יסוד של AI אינטראקטיבי, המאפשר לשרת MCP להשהות בזהירות את ביצועו ולבקש קלט ספציפי ומובנה מהמשתמש דרך הלקוח. יכולת זו מעצימה את הכלי לשאול שאלות מדויקות ברגעים מתאימים בתוך זרימת העבודה שלו, בין אם זה כדי לאשר החלטה, לאסוף העדפה של משתמש, או לאסוף ערך הנגזר מפעולות קודמות. השרת יוזם זאת על ידי שליחת בקשת JSON-RPC מסוג elicitation/create, הכוללת הודעה קריאה לבני אדם ו-requestedSchema אופציונלי המגדיר את מבנה התגובה הצפוי.

מפרט ה-MCP מספק שני מצבים איתנים לאיסוף מידע:

  • 'מצב טופס' (Form mode): מצב זה אידיאלי לאיסוף נתונים מובנים ישירות דרך לקוח ה-MCP, כגון פרמטרי תצורה, העדפות משתמש, או אישורים פשוטים שבהם לא מעורבים נתונים רגישים.
  • 'מצב URL' (URL mode): לאינטראקציות הדורשות תהליך מאובטח מחוץ לפס (out-of-band), כמו זרימות OAuth, עיבוד תשלומים, או הזנת אישורי גישה רגישים, מצב URL מפנה את המשתמש לכתובת URL חיצונית. זה מבטיח שמידע רגיש עוקף את לקוח ה-MCP לחלוטין, ומשפר את האבטחה והציות.

עם קבלת בקשת איסוף מידע, הלקוח מציג ממשק קלט מתאים. פעולת המשתמש הבאה מפעילה מודל תגובה בעל שלוש פעולות חזרה לשרת: accept (המשתמש סיפק את הנתונים המבוקשים), decline (המשתמש דחה במפורש את הבקשה), או cancel (המשתמש ביטל את ההודעה מבלי לבחור). שרתים חכמים מתוכננים לטפל בכל אחד מהתרחישים הללו בחן, ובכך להבטיח חוויה חזקה וידידותית למשתמש. לדוגמה, כלי add_expense_interactive, כפי שהודגם בחומר המקור, יכול להנחות משתמש דרך סדרת שאלות – סכום, תיאור, קטגוריה, ואישור סופי – לפני מסירת נתונים ל-backend כמו Amazon DynamoDB. כל שלב ממנף מודלי Pydantic כדי להגדיר את הקלט הצפוי, ש-FastMCP ממיר בצורה חלקה ל-JSON Schema הנדרש לבקשת elicitation/create.

דגימה (Sampling) והודעות התקדמות: הגברת אינטראקציית LLM ושקיפות

מעבר לאינטראקציה ישירה עם המשתמש, דגימה (Sampling) מציידת את שרת ה-MCP ביכולת לבקש תוכן שנוצר על ידי LLM ישירות מהלקוח באמצעות sampling/createMessage. זהו מנגנון קריטי מכיוון שהוא מאפשר ללוגיקת הכלי בשרת למנף יכולות מודל שפה חזקות ללא צורך לנהל את אישורי ה-LLM שלו או אינטגרציות API ישירות. השרת פשוט מספק פרומפט והעדפות מודל אופציונליות, והלקוח, הפועל כמתווך, מעביר את הבקשה ל-LLM המחובר שלו ומחזיר את התגובה שנוצרה. זה פותח שפע של יישומים מעשיים, כולל יצירת סיכומים מותאמים אישית, יצירת הסברים בשפה טבעית מנתונים מובנים מורכבים, או הפקת המלצות מודעות הקשר המבוססות על השיחה המתמשכת.

עבור פעולות המתפרסות על פני זמן, הודעות התקדמות (Progress Notifications) הופכות לחסרות ערך. יכולת זו מאפשרת לשרת MCP לדווח על עדכונים מצטברים במהלך משימות ארוכות טווח. על ידי שימוש ב-ctx.report_progress(progress, total), השרת יכול לשלוח עדכונים מתמשכים שלקוחות יכולים לתרגם למשוב ויזואלי, כגון פס התקדמות או מחוון סטטוס. בין אם מדובר בחיפוש על פני מאגרי נתונים עצומים או בביצוע משימות חישוביות מורכבות, עדכוני התקדמות שקופים מבטיחים שהמשתמשים יישארו מעודכנים, מונעים תסכול ומשפרים את חווית המשתמש הכוללת, במקום להשאיר אותם בוהים במסך ריק ותוהים אם המערכת עדיין פעילה.

הבטחת עתיד פיתוח סוכני AI באמצעות Bedrock AgentCore Runtime

הצגת יכולות לקוח MCP מצבניות (stateful) ב-Amazon Bedrock AgentCore Runtime מייצגת קפיצת מדרגה משמעותית בפיתוח סוכני AI. על ידי הפיכת אינטראקציות חסרות מצב קודמות לשיחות דינמיות ודו-כיווניות, AWS מעצימה מפתחים לבנות יישומי AI חכמים, מגיבים וידידותיים יותר למשתמש. יכולות אלו – איסוף מידע (Elicitation) לקלט משתמש מונחה, דגימה (Sampling) ליצירת LLM לפי דרישה, והודעות התקדמות (Progress Notifications) לשקיפות בזמן אמת – יחד, פותחות עידן חדש של זרימות עבודה אינטראקטיביות לסוכנים. ככל שה-AI ממשיך להתפתח, יכולות יסוד אלו יהיו קריטיות ליצירת AI סוכן תפעולי מתוחכם שיכול להשתלב בצורה חלקה בתהליכים עסקיים מורכבים, להסתגל לצרכי המשתמש ולספק ערך יוצא דופן.

שאלות נפוצות

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.

הישארו מעודכנים

קבלו את חדשות ה-AI האחרונות לתיבת הדוא״ל.

שתף