שירות 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 חזיתי מאחורי שכבת אפליקציה אחת.
למה: ניתוב מודלים מייעל עלות ואיכות לכל תור; שימוש במודל פרימיום אחד לכל דבר משלם יתר על המידה עבור הרוב הקל.