שיפור סוכני 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_http | TRUE | FALSE |
| בידוד סשנים | מיקרו-מכונה וירטואלית ייעודית לכל סשן | מיקרו-מכונה וירטואלית ייעודית לכל סשן |
| משך חיי סשן | עד 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?
How does the transition from stateless to stateful mode work on AgentCore Runtime?
What is Elicitation, and how does it enhance AI agent interactions?
How does Sampling capability benefit AI agents without managing LLM credentials?
הישארו מעודכנים
קבלו את חדשות ה-AI האחרונות לתיבת הדוא״ל.
