תשובה קצרה: כדי לבנות סוכן בינה מלאכותית שעובד בפועל, יש להתייחס אליו כלולאה מבוקרת: קבל קלט, החליט על הפעולה הבאה, קרא לכלי בעל היקף צר, התבונן בתוצאה וחזר על הפעולה עד למעבר בדיקה ברורה של "בוצע". היא מרוויחה את מקומה כאשר המשימה מרובת שלבים ומונחית על ידי כלים; אם הנחיה אחת פותרת אותה, דלג על הסוכן. הוסף סכמות כלים קפדניות, מגבלות שלבים, רישום ומאמת/מבקר כך שכאשר כלים נכשלים או קלטים אינם חד משמעיים, הסוכן ימשיך לפעול במקום לחזור בלולאה.
נקודות מפתח:
לולאת בקר : מימוש קלט → פעולה → התבוננות בחזרה עם תנאי עצירה מפורשים וצעדים מקסימליים.
עיצוב כלים : שמרו על כלים צרים, מודפסים, בעלי הרשאות ומאומתים כדי למנוע כאוס של "לעשות_הכל".
היגיינת זיכרון : השתמש במצב קומפקטי לטווח קצר בתוספת אחזור לטווח ארוך; הימנע מהשלכת תמלילים מלאים.
עמידות לשימוש לרעה : הוסיפו רשימות היתרים, מגבלות קצב, אי-מפוטנציה ו"הרצה יבשה" עבור פעולות מסוכנות.
יכולת בדיקה : שמירה על חבילת תרחישים (כשלים, עמימות, הזרקות) והרצה חוזרת על כל שינוי.

🔗 כיצד למדוד ביצועי בינה מלאכותית
למד מדדים מעשיים כדי למדוד מהירות, דיוק ואמינות.
🔗 איך לדבר עם בינה מלאכותית
השתמש בהנחיות, בהקשר ובמעקב כדי לקבל תשובות טובות יותר.
🔗 כיצד להעריך מודלים של בינה מלאכותית
השוו מודלים באמצעות מבחנים, רובריקות ותוצאות משימות מהעולם האמיתי.
🔗 כיצד לייעל מודלים של בינה מלאכותית
שפר את האיכות והעלות באמצעות כוונון, גיזום וניטור.
1) מהו סוכן בינה מלאכותית, במונחים של אדם רגיל 🧠
סוכן בינה מלאכותית הוא לולאה. מסמכי "סוכנים" של LangChain
זהו זה. לולאה עם מוח באמצע.
קלט ← לחשוב ← לפעול ← להתבונן ← לחזור . ReAct paper (סיבה + פעולה)
אֵיפֹה:
-
הקלט הוא בקשת משתמש או אירוע (אימייל חדש, כרטיס תמיכה, פינג חיישן).
-
"חשוב" הוא מודל שפה המסביר את הצעד הבא.
-
פעולה היא קריאה לכלי (חיפוש מסמכים פנימיים, הרצת קוד, יצירת כרטיס, טיוטת תשובה). מדריך קריאה לפונקציות OpenAI
-
Observe קורא את פלט הכלי.
-
חזרה היא החלק שגורם לזה להרגיש "סוכן" במקום "פטפטני". מסמכי "סוכנים" של LangChain
חלק מהסוכנים הם בעצם פקודות מאקרו חכמות. אחרים פועלים יותר כמו מפעיל זוטר שיכול ללהטט במשימות ולהתאושש משגיאות. שניהם נחשבים.
וגם, אתם לא צריכים אוטונומיה מלאה. למעשה... אתם כנראה לא רוצים את זה 🙃
2) מתי כדאי לבנות סוכן (ומתי לא) 🚦
בנה סוכן כאשר:
-
העבודה היא רב-שלבית ומשתנה בהתאם למה שקורה באמצע.
-
התפקיד דורש שימוש בכלים (מסדי נתונים, מערכות CRM, ביצוע קוד, יצירת קבצים, דפדפנים, ממשקי API פנימיים). מסמכי "כלים" של LangChain
-
אתם רוצים תוצאות חוזרות ונשנות עם מעקות בטיחות, לא רק תשובות חד פעמיות.
-
ניתן להגדיר "בוצע" באופן שמחשב יכול לבדוק, אפילו באופן רופף.
אל תבנה סוכן כאשר:
-
הנחיה פשוטה + תגובה פותרת את זה (אל תעבדו יותר מדי, אתם תשנאו את עצמכם אחר כך).
-
אתה צריך דטרמיניזם מושלם (סוכנים יכולים להיות עקביים במידה מסוימת, אבל לא רובוטיים).
-
אין לך כלים או נתונים להתחבר - אז זה בעיקר סתם וייבים.
בואו נהיה כנים: חצי מ"פרויקטים של סוכני בינה מלאכותית" יכולים להיות תהליך עבודה עם כמה כללי הסתעפות. אבל היי, לפעמים גם הוייב חשוב 🤷♂️
3) מה הופך סוכן בינה מלאכותית לגרסה טובה ✅
הנה הקטע "מה הופך גרסה לטובה של" שביקשת, חוץ מזה שאני אהיה קצת בוטה:
גרסה טובה של סוכן בינה מלאכותית אינה זו שחושבת הכי קשה. היא זו ש:
-
יודע מה מותר לו לעשות (גבולות התחום)
-
משתמש בכלים בצורה אמינה (קריאות מובנות, ניסיונות חוזרים, פסקי זמן) מדריך קריאות לפונקציות OpenAI AWS "פסקי זמן, ניסיונות חוזרים ויציאה מהמערכת עם ריצוד"
-
שומר על מצב נקי (זיכרון שאינו נרקב) LangChain "סקירת זיכרון"
-
מסביר את פעולותיו (נתיבי ביקורת, לא קבצי נימוקים סודיים) NIST AI RMF 1.0 (אמינות ושקיפות)
-
עוצר כראוי (בדיקות השלמה, מספר צעדים מקסימלי, הסלמה) מסמכי "סוכנים" של LangChain
-
נכשל בבטחה (מבקש עזרה, לא מניח סמכות הזויה) NIST AI RMF 1.0
-
ניתן לבדיקה (ניתן להריץ אותו על תרחישים מוכנים מראש ולקבל תוצאות)
אם הסוכן שלך לא יכול להיבדק, זו בעצם מכונת מזל מאוד בטוחה בעצמה. כיף במסיבות, מפחיד בהפקה 😬
4) אבני הבניין המרכזיות של סוכן ("האנטומיה" 🧩)
לרוב הסוכנים המוצקים יש את החלקים הבאים:
א) לולאת הבקר 🔁
זה המתזמר:
-
לכבוש שער
-
שאל את המודל לפעולה הבאה
-
כלי הפעלת
-
הוסף תצפית
-
חזור על הפעולה עד לסיום. מסמכי "סוכנים" של LangChain
ב) כלים (aka יכולות) 🧰
כלים הם מה שהופך סוכן ליעיל: מסמכי "כלים" של LangChain
-
שאילתות מסד נתונים
-
שליחת מיילים
-
משיכת קבצים
-
קוד הרצה
-
קריאה ל-APIs פנימיים
-
כתיבה לגליונות אלקטרוניים או למערכות CRM
ג) זיכרון 🗃️
שני סוגים חשובים:
-
זיכרון לטווח קצר : הקשר הריצה הנוכחית, צעדים אחרונים, תוכנית נוכחית
-
זיכרון לטווח ארוך : העדפות משתמש, הקשר של הפרויקט, ידע שנאסף (לעתים קרובות באמצעות הטמעות + מאגר וקטורים) נייר RAG
ד) מדיניות תכנון וקבלת החלטות 🧭
גם אם אתם לא קוראים לזה "תכנון", אתם צריכים שיטה:
-
רשימות בדיקה
-
נייר ReAct בסגנון ReAct - כלי "חשוב ואז"
-
גרפי משימות
-
דפוסי מנהל-עובד
-
דפוסי מנהל-עובד Microsoft AutoGen (מסגרת רב-סוכנים)
ה) מעקות בטיחות והערכה 🧯
-
הרשאות
-
סכמות כלים בטוחות פלטים מובנים של OpenAI
-
אימות פלט
-
מגבלות צעדים
-
רישום
-
בדיקות NIST AI RMF 1.0
כן, זה יותר הנדסה מאשר הנחיה. וזו... פחות או יותר הנקודה.
5) טבלת השוואה: דרכים פופולריות לבנות סוכן 🧾
להלן "טבלת השוואה" ריאליסטית - עם כמה מוזרויות, כי קבוצות אמיתיות הן מוזרות 😄
| כלי / מסגרת | קהל | מְחִיר | למה זה עובד | הערות (כאוס זעיר) | |
|---|---|---|---|---|---|
| לאנגצ'יין | בונים שאוהבים רכיבים בסגנון לגו | חינמי פחות + אינפרא אדום | מערכת אקולוגית גדולה לכלים, זיכרון, שרשראות | יכול להשתבש מהר מאוד אם לא נותנים שמות ברורים לדברים | |
| אינדקס לאמה | קבוצות כבדות RAG | חינמי פחות + אינפרא אדום | דפוסי אחזור חזקים, אינדוקס, מחברים | נהדר כאשר הסוכן שלך הוא בעצם "חיפוש + פעולה"... וזה נפוץ | |
| גישת סגנון OpenAI Assistants | צוותים שרוצים התקנה מהירה יותר | מבוסס שימוש | דפוסי קריאה מובנים לכלי ומצב ריצה | פחות גמיש בפינות מסוימות, אבל נקי עבור אפליקציות רבות | OpenAI מפעיל קריאה לפונקציות של OpenAI Assistants |
| ליבה סמנטית | מפתחים שרוצים תזמור מובנה | חינמי | הפשטה מסודרת עבור מיומנויות/פונקציות | מרגיש "סדר ארגוני" - לפעמים זו מחמאה 😉 | |
| אוטוגן | ניסויים מרובי סוכנים | חינמי | דפוסי שיתוף פעולה בין סוכנים | יכול לדבר יותר מדי; לקבוע כללי סיום נוקשים | |
| צוות AI | אוהדי "קבוצות של סוכנים" | חינמי | קל לבטא תפקידים + משימות + העברות | עובד בצורה הטובה ביותר כאשר המשימות פריכות, לא רכות | |
| עֲרֵמַת שַׁחַת | אנשי חיפוש + צינורות | חינמי | צינורות מוצקים, אחזור, רכיבים | פחות "תיאטרון סוכנים", יותר "מפעל מעשי" | |
| גלגלו בעצמכם (לולאה מותאמת אישית) | פריקי שליטה (חיבה) | הזמן שלך | קסם מינימלי, בהירות מקסימלית | בדרך כלל הכי טוב לטווח ארוך... עד שממציאים הכל מחדש 😅 |
אין מנצח אחד. הבחירה הטובה ביותר תלויה בשאלה האם עבודתו העיקרית של הסוכן שלכם היא אחזור מידע , ביצוע כלים , תיאום בין סוכנים מרובים או אוטומציה של זרימת עבודה .
6) איך לבנות סוכן בינה מלאכותית שלב אחר שלב (המתכון בפועל) 🍳🤖
זה החלק שרוב האנשים מדלגים עליו, ואז תוהים מדוע הסוכן מתנהג כמו דביבון במזווה.
שלב 1: הגדירו את התפקיד במשפט אחד 🎯
דוגמאות:
-
"נסח תשובת לקוח תוך שימוש במדיניות ובהקשר של הפנייה, ולאחר מכן בקש אישור."
-
"לחקור דוח באג, לשכפל אותו ולהציע תיקון."
-
"הפכו סיכומי פגישה לא מושלמים למשימות, בעלים ודדליינים."
אם אתה לא יכול להגדיר את זה בפשטות, גם הסוכן שלך לא יכול. כלומר, הוא כן יכול, אבל הוא יאלתור, ואלתור הוא המקום שבו תקציבים הולכים למות.
שלב 2: קביעת רמת אוטונומיה (נמוכה, בינונית, חריפה) 🌶️
-
אוטונומיה נמוכה : מציע צעדים, לחיצות אנושיות "מאשרות"
-
בינוני : מפעיל כלים, מכין טיוטות של פלט, מגביר את אי הוודאות
-
גבוה : מבצע פעולות מקצה לקצה, שולח פינגים לבני אדם רק על חריגים
התחילו נמוך יותר ממה שאתם רוצים. תמיד תוכלו להגביר את הקצב מאוחר יותר.
שלב 3: בחרו את אסטרטגיית המודל שלכם 🧠
בדרך כלל אתה בוחר:
-
מודל אחד חזק להכל (פשוט)
-
דגם אחד חזק + דגם קטן יותר למדרגות זולות (סיווג, ניתוב)
-
מודלים ייעודיים (ראייה, קוד, דיבור) במידת הצורך
וגם להחליט:
-
מקסימום אסימונים
-
טֶמפֶּרָטוּרָה
-
האם אתם מאפשרים עקבות חשיבה ארוכות באופן פנימי (אתם יכולים, אבל אל תחשפו שרשרת מחשבה גולמית למשתמשי הקצה)
שלב 4: הגדרת כלים עם סכמות קפדניות 🔩
כלים צריכים להיות:
-
לְצַמְצֵם
-
מודפס
-
מאושר
-
פלטים מובנים מאומתים של OpenAI
במקום כלי בשם do_anything(input: string) , בצע:
-
search_kb(שאילתה: מחרוזת) -> תוצאות[] -
create_ticket(title: string, body: string, priority: enum) -> ticket_id -
send_email(to: string, subject: string, body: string) -> statusמדריך קריאה לפונקציות OpenAI
אם אתם נותנים לסוכן מסור חשמלי, אל תתפלאו שהוא גוזם גדר חיה על ידי הסרת הגדר גם כן.
שלב 5: בניית לולאת הבקר 🔁
לולאה מינימלית:
-
התחל עם המטרה + ההקשר הראשוני
-
שאל את המודל: "הפעולה הבאה?"
-
אם קריאה לכלי - ביצוע כלי
-
הוסף תצפית
-
בדיקת מצב עצירה
-
חזור (עם מקסימום צעדים) על מסמכי "סוכנים" של LangChain
לְהוֹסִיף:
-
פסקי זמן
-
ניסיונות חוזרים (זהירות - ניסיונות חוזרים יכולים לחזור בלולאה) AWS "פסק זמן, ניסיונות חוזרים ויציאה מהמערכת עם ריצוד"
-
עיצוב שגיאות כלי (ברור, מובנה)
שלב 6: הוסיפו זיכרון בזהירות 🗃️
טווח קצר: שמור על "סיכום מצב" קומפקטי מעודכן בכל שלב. "סקירת זיכרון" של LangChain.
טווח ארוך: אחסון עובדות עמידות (העדפות משתמש, כללי ארגון, מסמכים יציבים).
הֲלָכָה לְמַעֲשֶׂה:
-
אם זה משתנה לעתים קרובות - שמור על זה לטווח קצר
-
אם זה יציב - יש לאחסן לטווח ארוך
-
אם זה רגיש - יש לאחסן במינימום (או בכלל לא)
שלב 7: הוספת אימות ואישור "ביקורת" 🧪
תבנית זולה ומעשית:
-
הסוכן מייצר תוצאה
-
בדיקת מבנה ואילוצים של אישור
-
ביקורות מודל ביקורת אופציונליות עבור שלבים חסרים או הפרות מדיניות NIST AI RMF 1.0
לא מושלם, אבל זה תופס כמות מזעזעת של שטויות.
שלב 8: רשמו את כל מה שתתחרטו שלא רשמו 📜
עֵץ:
-
קריאות כלי + קלט + פלט
-
החלטות שהתקבלו
-
שגיאות
-
התפוקות הסופיות
-
אסימונים והשהיה - מבוא לצפייה ב-OpenTelemetry
עתיד - תודה לך. הווה - תשכח. ככה זה בחיים 😵💫
7) קריאה לכלי עבודה שלא שוברת את הנשמה 🧰😵
קריאה לכלי עבודה היא המקום שבו "איך לבנות סוכן בינה מלאכותית" הופך להנדסת תוכנה אמיתית.
הפוך כלים אמינים (אמין זה טוב)
כלים אמינים הם:
-
דטרמיניסטית
-
צר בהיקפו
-
קל לבדיקה
-
בטוח להריץ מחדש את "בקשות Idempotent" של Stripe
הוסיפו מעקות בטיחות בשכבת הכלים, לא רק הנחיות
הנחיות הן הצעות מנומסות. אימות כלים הוא דלת נעולה. פלטים מובנים של OpenAI
לַעֲשׂוֹת:
-
רשימות היתרים (אילו כלים יכולים להריץ)
-
אימות קלט
-
מגבלות תעריף OpenAI מדריך למגבלות תעריף
-
בדיקות הרשאות לכל משתמש/ארגון
-
"מצב יבש" לפעולות מסוכנות
תכנון לכשל חלקי
כלים נכשלים. רשתות מתנדנדות. תוקף האימות פג. סוכן חייב:
-
פירוש שגיאות
-
נסה שוב עם ביטול גישה (backoff) במידת הצורך. אסטרטגיית ניסיון חוזר של Google Cloud (backoff + jitter)
-
לבחור כלים חלופיים
-
להסלים כאשר תקועים
טריק יעיל ושקט: החזר שגיאות מובנות כמו:
-
סוג: שגיאת_אישור -
סוג: לא נמצא -
סוג: rate_limited
כך שהמודל יוכל להגיב בצורה חכמה במקום להיכנס לפאניקה.
8) זיכרון שעוזר במקום לרדוף אותך 👻🗂️
זיכרון הוא דבר רב עוצמה, אך הוא יכול גם להפוך למגירת זבל.
זיכרון לטווח קצר: שמור עליו קומפקטי
לְהִשְׁתַמֵשׁ:
-
N צעדים אחרונים
-
סיכום ריצה (מתעדכן בכל לולאה)
-
התוכנית הנוכחית
-
אילוצים נוכחיים (תקציב, זמן, מדיניות)
אם תשימו הכל בהקשר, תקבלו:
-
עלות גבוהה יותר
-
השהייה איטית יותר
-
עוד בלבול (כן, אפילו אז)
זיכרון לטווח ארוך: שליפה במקום "מילוי"
רוב "הזיכרון לטווח ארוך" דומה יותר ל:
-
הטמעות
-
חנות וקטורים
-
נייר RAG של יצירת אחזור משופרת (RAG)
הסוכן לא משנן. הוא מאחזר את הקטעים הרלוונטיים ביותר בזמן ריצה. LlamaIndex "מבוא ל-RAG"
כללי זיכרון מעשיים
-
אחסן "העדפות" כעובדות מפורשות: "המשתמש אוהב תקצירי נקודות ושונא אימוג'ים" (חחח, לא כאן 😄)
-
אחסן "החלטות" עם חותמות זמן או גרסאות (אחרת סתירות מצטברות)
-
לעולם אל תשמור סודות אלא אם כן אתה באמת חייב
והנה המטאפורה הלא מושלמת שלי: זיכרון הוא כמו מקרר. אם לעולם לא תנקו אותו, בסופו של דבר הכריך שלכם יטעם כמו בצל וחרטה.
9) דפוסי תכנון (מהפשוטים ועד למפוארים) 🧭✨
תכנון הוא פשוט פירוק מבוקר. אל תהפוך אותו למיסטי.
תבנית א': מתכנן רשימת בדיקה ✅
-
המודל מפיק רשימת שלבים
-
מבצע שלב אחר שלב
-
סטטוס רשימת הבדיקה עדכונים
מעולה לקליטה. פשוט, ניתן לבדיקה.
תבנית ב': לולאת ReAct (סיבה + פעולה) 🧠→🧰
-
המודל מחליט על קריאת הכלי הבאה
-
צופה בפלט
-
חוזר על מאמר ReAct
זוהי תחושת הסוכן הקלאסית.
תבנית ג': מפקח-עובד 👥
-
המפקח מחלק את המטרה למשימות
-
עובדים מבצעים משימות מיוחדות
-
מפקח מאחד תוצאות Microsoft AutoGen (מסגרת רב-סוכנים)
זה בעל ערך כאשר משימות ניתנות למקביליות, או כאשר רוצים "תפקידים" שונים כמו:
-
חוֹקֵר
-
קוֹדַאִי
-
עוֹרֵך
-
בודק אבטחת איכות
תבנית ד': תכנון ואז ביצוע עם תכנון מחדש 🔄
-
צור תוכנית
-
לְבַצֵעַ
-
אם תוצאות הכלים משנות את המציאות, יש לתכנן מחדש
זה מונע מהסוכן לעקוב בעקשנות אחר תוכנית גרועה. גם בני אדם עושים זאת, אלא אם כן הם עייפים, ובמקרה כזה גם הם עוקבים אחר תוכניות גרועות.
10) בטיחות, אמינות, ולא לקבל פיטורים 🔐😅
אם הסוכן שלך יכול לנקוט בפעולות, אתה צריך תכנון בטיחותי. לא "נחמד שיש". צריך. NIST AI RMF 1.0
גבולות נוקשים
-
מקסימום צעדים לריצה
-
מקסימום קריאות כלים לדקה
-
הוצאה מקסימלית לכל סשן (תקציב אסימוני)
-
כלים מוגבלים מאחורי אישור
טיפול בנתונים
-
לטשטש קלטים רגישים לפני רישום
-
סביבות נפרדות (פיתוח לעומת ייצור)
-
הרשאות כלי בעלות הרשאות נמוכות ביותר
אילוצים התנהגותיים
-
לאלץ את הסוכן לצטט קטעי ראיות פנימיים (לא קישורים חיצוניים, רק הפניות פנימיות)
-
דורשים דגלי אי ודאות כאשר רמת הביטחון נמוכה
-
דרוש "שאלת הבהרה" אם הקלט אינו חד משמעי
סוכן אמין אינו הסוכן הכי בטוח בעצמו. הוא זה שיודע מתי הוא מנחש... ואומר זאת.
11) בדיקה והערכה (החלק שכולם נמנעים ממנו) 🧪📏
אי אפשר לשפר את מה שאי אפשר למדוד. כן, המשפט הזה קצת נדוש, אבל הוא נכון בצורה מעצבנת.
בנה סט תרחישים
צור 30-100 מקרי בדיקה:
-
שבילים מאושרים
-
מקרי קצה
-
מקרים של "כשל כלי"
-
בקשות מעורפלות
-
הנחיות עוינות (ניסיונות הזרקה מהירה) 10 האפליקציות המובילות של OWASP עבור אפליקציות LLM OWASP LLM01 הזרקת הנחיות
תוצאות ציון
השתמשו במדדים כמו:
-
שיעור הצלחה במשימה
-
זמן השלמה
-
שיעור שחזור שגיאות בכלי
-
שיעור הזיות (טענות ללא ראיות)
-
שיעור אישור אנושי (אם במצב בקרה)
מבחני רגרסיה עבור הנחיות וכלים
בכל פעם שאתה משנה:
-
סכמת כלים
-
הוראות מערכת
-
לוגיקת אחזור
-
פורמט זיכרון
הפעל את החבילה שוב.
סוכנים הם חיות רגישות. כמו צמחי בית, אבל יקרים יותר.
12) דפוסי פריסה שלא גורמים לכם לפשוט רגל על התקציב 💸🔥
התחל עם שירות בודד
-
API לבקר סוכן
-
שירותי כלים מאחוריו
-
רישום + ניטור - מבוא לנתוני OpenTelemetry
הוסיפו בקרות עלויות מוקדם
-
תוצאות אחזור במטמון
-
דחיסת מצב שיחה עם סיכומים
-
שימוש במודלים קטנים יותר לצורך ניתוב וחילוץ
-
הגבלת "מצב חשיבה עמוקה" לשלבים הקשים ביותר
בחירת אדריכלות נפוצה
-
בקר חסר מצב + מאגר מצבים חיצוני (DB/redis)
-
קריאות לכלי הן אידמפוטנטיות במידת האפשר. "בקשות אידמפוטנטיות" של Stripe
-
תור למשימות ארוכות (כדי שלא תשמור בקשת אינטרנט פתוחה לנצח)
וגם: בנו "מתג השבתה". לא תצטרכו אותו עד שתצטרכו אותו באמת, אבל באמת 😬
13) הערות סיכום - הגרסה הקצרה על איך לבנות סוכן בינה מלאכותית 🎁🤖
אם אינך זוכר שום דבר אחר, זכור את זה:
-
כיצד לבנות סוכן בינה מלאכותית עוסק בעיקר בבניית לולאה בטוחה סביב מודל. מסמכי "סוכנים" של LangChain
-
התחילו עם מטרה ברורה, אוטונומיה נמוכה וכלים מחמירים. פלטים מובנים של OpenAI
-
הוסף זיכרון באמצעות שליפה, לא מילוי אינסופי של הקשר. נייר RAG
-
תכנון יכול להיות פשוט - רשימות תיוג ותכנון מחדש מגיעים רחוק.
-
רישום ובדיקות הופכים את הכאוס של הסוכנים למשהו שניתן לשלוח. מבוא לתצפיות של OpenTelemetry
-
מעקות הגנה שייכים לקוד, לא רק להנחיות. 10 אפליקציות OWASP המובילות לתואר שני במשפטים
סוכן אינו קסם. זוהי מערכת שמקבלת החלטות טובות לעתים קרובות מספיק כדי להיות בעלת ערך... ומודה בתבוסה לפני שהיא גורמת נזק. מנחם בשקט, במובן מסוים 😌
וכן, אם בונים את זה נכון, זה מרגיש כמו להעסיק מתמחה דיגיטלי קטן שלעולם לא ישן, לפעמים נכנס לפאניקה, ואוהב ניירת. אז, בעצם מתמחה.
שאלות נפוצות
מהו סוכן בינה מלאכותית, במילים פשוטות?
סוכן בינה מלאכותית הוא בעצם לולאה שחוזרת על עצמה: מקבל קלט, מחליט על הצעד הבא, משתמש בכלי, קורא את התוצאה וחוזר על הפעולה עד לסיום. החלק ה"סוכני" מגיע מפעולה והתבוננות, לא רק משיחה. סוכנים רבים הם פשוט אוטומציה חכמה עם גישה לכלי עבודה, בעוד שאחרים מתנהגים יותר כמו מפעיל זוטר שיכול להתאושש משגיאות.
מתי כדאי לי לבנות סוכן בינה מלאכותית במקום להשתמש רק בהנחיה?
בניית סוכן (agent) כאשר העבודה היא רב-שלבית, שינויים מבוססים על תוצאות ביניים, ודורשת שימוש אמין בכלים (API, מסדי נתונים, כרטוס, ביצוע קוד). סוכנים שימושיים גם כאשר רוצים תוצאות חוזרות עם מעקות בטיחות ודרך לבדוק "בוצע". אם תגובה פשוטה עובדת, סוכן בדרך כלל אינו הכרחי כנגד תקורה ומצבי כשל נוספים.
איך אני בונה סוכן בינה מלאכותית שלא נתקע בלולאות?
השתמש בתנאי עצירה קשים: מקסימום צעדים, מקסימום קריאות כלים ובדיקות השלמה ברורות. הוסף סכמות כלים מובנות, פסקי זמן וניסיונות חוזרים שלא ינסו שוב לנצח. רשום החלטות ופלט של כלים כדי שתוכל לראות היכן זה יורד מהפסים. שסתום בטיחות נפוץ הוא הסלמה: אם הסוכן אינו בטוח או חוזר על שגיאות, עליו לבקש עזרה במקום לאלתר.
מהי הארכיטקטורה המינימלית עבור איך לבנות סוכן בינה מלאכותית?
לכל הפחות אתם זקוקים ללולאת בקר שמזינה למודל מטרה והקשר, מבקשת את הפעולה הבאה, מבצעת כלי אם מתבקש, מוסיפה את התצפית וחוזרת על הפעולה. אתם זקוקים גם לכלים עם צורות קלט/פלט קפדניות ובדיקת "בוצע". אפילו לולאת "roll-your-own" יכולה לעבוד היטב אם שומרים על מצב נקי ואוכפים מגבלות צעדים.
כיצד עליי לתכנן קריאה לכלי כך שתהיה אמינה בייצור?
שמרו על כלים צרים, מודפסים, בעלי הרשאות ומאומתים - הימנעו מכלי "לעשות_כל_דבר" כללי. העדיפו סכמות מחמירות (כמו פלטים מובנים/קריאה לפונקציות) כדי שהסוכן לא יוכל לשלוח קלט ידנית. הוסיפו רשימות היתרים, מגבלות קצב ובדיקות הרשאות משתמש/ארגון בשכבת הכלים. תכננו כלים כך שיהיו בטוחים להפעלה חוזרת במידת האפשר, תוך שימוש בתבניות זהות.
מהי הדרך הטובה ביותר להוסיף זיכרון מבלי להחמיר את הסוכן?
התייחסו לזיכרון כשני חלקים: מצב ריצה לטווח קצר (צעדים אחרונים, תוכנית נוכחית, אילוצים) ושליפה לטווח ארוך (העדפות, כללים יציבים, מסמכים רלוונטיים). שמרו על קומפקטיות לטווח קצר עם סיכומים שוטפים, לא תמלולים מלאים. עבור זיכרון לטווח ארוך, שליפה (הטמעות + אחסון וקטורים/תבניות RAG) בדרך כלל עדיפה על "דחיסת" הכל להקשר ובלבול המודל.
באיזו תבנית תכנון עליי להשתמש: רשימת תיוג, ReAct או מנהל-עובד?
מתכנן רשימת תיוג הוא נהדר כאשר משימות צפויות ואתם רוצים משהו קל לבדיקה. לולאות בסגנון ReAct זוהרות כאשר תוצאות הכלים משנות את מה שאתם עושים הלאה. דפוסי מנהל-עובד (כמו הפרדת תפקידים בסגנון AutoGen) עוזרים כאשר ניתן למקביל משימות או להפיק תועלת מתפקידים נפרדים (חוקר, מתכנת, אבטחת איכות). תכנון-ואז-ביצוע עם תכנון מחדש הוא דרך ביניים פרקטית להימנעות מתוכניות גרועות עקשניות.
איך אני הופך סוכן לבטוח אם הוא יכול לנקוט בפעולות אמיתיות?
השתמשו בהרשאות בעלות הרשאות נמוכות ביותר והגבלתם של כלים מסוכנים מאחורי מצבי אישור או "הרצה יבשה". הוסיפו תקציבים ומגבלות: מקסימום צעדים, מקסימום הוצאות ומגבלות קריאת כלים לדקה. מחקו נתונים רגישים לפני רישום, והפרידו סביבות פיתוח מסביבות ייצור. דרשו דגלי אי ודאות או שאלות הבהרה כאשר הקלט אינו חד משמעי, במקום לתת לביטחון להחליף ראיות.
כיצד אוכל לבדוק ולהעריך סוכן בינה מלאכותית כך שישתפר עם הזמן?
בנה חבילת תרחישים עם נתיבים מאושרים, מקרי קצה, כשלים בכלים, בקשות מעורפלות וניסיונות הזרקת הנחיות (בסגנון OWASP). דרג תוצאות כמו הצלחת משימה, זמן השלמה, התאוששות משגיאות בכלים וטענות ללא ראיות. בכל פעם שאתה משנה סכמות של כלים, הנחיות, אחזור או עיצוב זיכרון, הפעל מחדש את החבילה. אם אינך יכול לבדוק אותה, אינך יכול לשלוח אותה בצורה אמינה.
איך אני פורס סוכן מבלי להגדיל את ההשהיה והעלויות?
דפוס נפוץ הוא בקר חסר מצב עם מאגר מצבים חיצוני (DB/Redis), שירותי כלים מאחוריו, ורישום/ניטור חזקים (לעתים קרובות OpenTelemetry). שלוט בעלויות באמצעות אחסון במטמון של אחזור נתונים, סיכומי מצבים קומפקטיים, מודלים קטנים יותר לניתוב/חילוץ, והגבלת "חשיבה עמוקה" לשלבים הקשים ביותר. השתמש בתורים עבור משימות ארוכות כדי לא להשאיר בקשות אינטרנט פתוחות. כלול תמיד מתג כיבוי (kill switch).
הפניות
-
המכון הלאומי לתקנים וטכנולוגיה (NIST) - NIST AI RMF 1.0 (אמינות ושקיפות) - nvlpubs.nist.gov
-
OpenAI - פלטים מובנים - platform.openai.com
-
OpenAI - מדריך לקריאה לפונקציות - platform.openai.com
-
OpenAI - מדריך למגבלות תעריפים - platform.openai.com
-
OpenAI - מפעיל ממשק API - platform.openai.com
-
OpenAI - קריאות לפונקציות של עוזרים - platform.openai.com
-
LangChain - מסמכי סוכנים (JavaScript) - docs.langchain.com
-
LangChain - מסמכי כלים (Python) - docs.langchain.com
-
LangChain - סקירת זיכרון - docs.langchain.com
-
arXiv - מאמר ReAct (סיבה + פעולה) - arxiv.org
-
arXiv - מאמר RAG - arxiv.org
-
ספריית בוני שירותי האינטרנט של אמזון (AWS) - פסקי זמן, ניסיונות חוזרים ויציאה מהארון עם ריצוד - aws.amazon.com
-
OpenTelemetry - מבוא לצפייה - opentelemetry.io
-
Stripe - בקשות אידמפוטנטיות - docs.stripe.com
-
גוגל קלאוד - אסטרטגיית ניסיון חוזר (ביטול + ריצוד) - docs.cloud.google.com
-
OWASP - 10 המובילים ליישומי מודל שפה גדול - owasp.org
-
OWASP - הזרקה מיידית LLM01 - genai.owasp.org
-
LlamaIndex - מבוא ל-RAG - developers.llamaindex.ai
-
מיקרוסופט - ליבה סמנטית - learn.microsoft.com
-
Microsoft AutoGen - מסגרת רב-סוכנים (תיעוד) - microsoft.github.io
-
CrewAI - מושגים של סוכנים - docs.crewai.com
-
Haystack (deepset) - תיעוד רטריברים - docs.haystack.deepset.ai