שירות backend חייב לקרוא למודלים ול-agents המוגדרים ב-Foundry project.
→השתמש ב-Azure AI Foundry SDK (AIProjectClient) עם string החיבור של הפרויקט ו-DefaultAzureCredential כדי לקבל clients של מודל ו-agent.
למה: ה-project client פותר חיבורים ופריסות באופן מרכזי; קידוד קשיח של endpoints ומפתחות לכל מודל עוקף את ניהול הפרויקט.
מקור↗
בנה אפליקציית שאלות ותשובות המבוססת על מסמכי מדיניות.
→הטמע ואינדקס את המסמכים, שלוף top-k chunks לכל שאילתה, והעבר אותם כ-context להשלמת הצ'אט עם הוראת ציטוט מקורות.
למה: RAG שומר על הידע עדכני וניתן לציטוט ללא אימון מחדש; העברת הקורפוס המלא ל-prompt מפוצצת את חלון ה-context והעלות.
המודל חייב לחפש סטטוס הזמנה חי במהלך שיחה.
→הגדר tool עם JSON schema, תן למודל להוציא קריאת tool, בצע אותה בצד השרת, והחזר את התוצאה למודל כדי שיסכם אותה.
למה: function/tool calling מאפשר למודל להפעיל מערכות אמיתיות באופן דטרמיניסטי; לבקש ממנו "לנחש" את הסטטוס מייצר בדיות.
מקור↗
משימה דורשת מספר קריאות tool תלויות לפני תשובה סופית.
→הרץ לולאת שימוש ב-tool: הזן כל תוצאת tool בחזרה למודל וחזור על הפעולה עד שיחזיר הודעה סופית, עם הגבלת max-iteration.
למה: לולאות tool איטרטיביות תומכות בהיגיון רב-שלבי; מעגל יחיד אינו יכול לשרשר חיפושים תלויים, ולולאה ללא הגבלה יכולה לצאת משליטה.
לפני השקה, כמת את התדירות שבה אפליקציית RAG "מדמיינת" (hallucinates) או סוטה מהנושא.
→הרץ Foundry evaluators עבור groundedness, relevance ו-coherence על סט נתונים לבדיקה מתויג ושחרור שער על ספי ציון.
למה: מנגנוני הערכה מובנים מספקים אותות איכות ובטיחות מדידים; סקירת מספר דגימות בלבד אינה מזהה בדיות שיטתיות.
מקור↗
הגדר agent תמיכה עם פרסונה, מטרות וגבולות ברורים.
→הגדר את הוראות המערכת של ה-agent (תפקיד, מטרות, כללי סירוב) וצרף רק את ה-tools שהוא צריך עבור היקפו.
למה: הוראות הדוקות בתוספת גישה מינימלית ל-tools שומרות על ה-agent ממוקד במשימה; הוראות רחבות וכל tool מזמינות זחילה בהיקף ופעולות לא בטוחות.
agent חייב לזכור context לאורך תורות בתוך סשן.
→השתמש ב-threads של Foundry Agent Service, שמתמידים את היסטוריית ההודעות לכל שיחה כך שכל הרצה רואה תורות קודמים.
למה: threads מספקים זיכרון שיחה מנוהל; שליחה חוזרת ידנית של כל התמליל בכל קריאה היא שבירה וקל לקטוע באופן שגוי.
מקור↗
agent זקוק ל-web grounding ולביצוע קוד ללא צורך בפיתוח מותאם אישית.
→צרף built-in Foundry agent tools כגון Grounding with Bing Search ו-Code Interpreter במקום לבצע אינטגרציות ידניות.
למה: tools מנוהלים נשלטים ונתמכים מחוץ לקופסה; מימושים מותאמים אישית מוסיפים תחזוקה ומדלגים על בקרות בטיחות של הפלטפורמה.
agent ראשי צריך להאציל שאלות חיוב ל-agent חיובים מומחה.
→השתמש ב-connected agents: חשוף את agent החיובים כ-tool שה-agent הראשי יכול לקרוא לו, כך שהוא מנתב משימות משנה למומחים.
למה: connected agents מאפשרים האצלה היררכית; דחיסת כל תחום ל-mega-agent אחד מנפחת הוראות ומדרדרת דיוק.
מקור↗
workflow זקוק למתכנן, חוקר וכותב המשתפים פעולה עם מצב משותף.
→תזמר אותם עם framework מסוג multi-agent (Semantic Kernel / AutoGen ב-Foundry) באמצעות תבנית תזמור מוגדרת ו-context משותף.
למה: Frameworks מנהלים תורות, מצב וסיום; העברת strings אד-הוק בין agents חסרה תיאום או תנאי עצירה.
agent פועל ללא השגחה במשך הלילה ואסור לו לבצע פעולות מסוכנות לבדו.
→הגבל אותו עם tools מאושרים מראש (allow-listed), תקציבים לכל פעולה, content filters, ו-checkpoint שמסלים צעדים בעלי השפעה גבוהה לאישור.
למה: הגנות מרובות שומרות על אוטונומיה בטוחה; לולאה אוטונומית עם גישה מלאה ל-tools וללא אישור יכולה לגרום נזק בלתי הפיך.
agent נכשל לסירוגין באמצע משימה ועליך למצוא את השלב הכושל.
→בדוק את השלבים המועקבים (traced steps) וקלט/פלט של קריאות tool בהרצה ב-Foundry כדי לאתר את ה-tool הכושל או הארגומנט שאינו תקין.
למה: מעקבים ברמת השלב מאתרים היכן הרצה נכשלה; הודעת שגיאה סופית יחידה מסתירה איזו קריאת tool או שלב הנמקה נכשל בפועל.
תפוקות אינן עקביות ומתעלמות מהוראות עיצוב.
→השתמש בהודעת מערכת ברורה, דוגמאות few-shot והגבלות פלט מפורשות; לצורה מחמירה, אפשר structured outputs / JSON schema.
למה: prompting מובנה ותפוקות עם אכיפת schema הופכים את התוצאות לאמינות; העלאת temperature או ניסיון חוזר בעיוורון לא יתקנו את הציות להוראות.
מקור↗
משימת יצירת תוכן נשמעת חוזרת מדי; משימת חילוץ נתונים אקראית מדי.
→העלה את ה-temperature/top-p עבור המשימה היצירתית והורד אותם לכיוון 0 עבור חילוץ כדי להפוך אותה לדטרמיניסטית.
למה: פרמטרי דגימה מאזנים מגוון מול דטרמיניזם; החלפת מודלים היא מוגזמת כאשר הגדרת הפרמטר היא הסיבה האמיתית.
agent לוגיקה מבצע שגיאות לוגיות הניתנות למניעה במשימות קשות.
→הוסף שלב reflection / self-critique שבו ה-agent סוקר ומתקן את טיוטתו, או השתמש במודל הנמקה עבור השלב.
למה: Chain-of-thought ו-self-critique משפרים דיוק במשימות קשות; מעבר קדימה בודד לא נותן סיכוי לתפוס את הטעות שלו.
צוות התפעול זקוק למידע על הוצאת tokens, זמן אחזור ואותות בטיחות לכל בקשה בסביבת ייצור.
→פלוט OpenTelemetry traces ומדדים מהאפליקציה ל-Azure Monitor / Application Insights, תוך לכידת tokens, זמן אחזור ודגלי content-safety.
למה: Unified observability קושר עלות, ביצועים ובטיחות יחד; גירוד לוגים ידני אינו יכול לתאם תור איטי עם שימוש ה-tokens שלו.
מקור↗
אפליקציה אחת משלבת סיווג זול עם הנמקה מורכבת מדי פעם.
→תזמר מספר פריסות: נתב תורות פשוטים ל-SLM והסלם תורות קשים ל-LLM חזיתי מאחורי שכבת אפליקציה אחת.
למה: ניתוב מודלים מייעל עלות ואיכות לכל תור; שימוש במודל פרימיום אחד לכל דבר משלם יתר על המידה עבור הרוב הקל.