איך ללמוד סוכני AI מאפס: מסלול מעשי בשישה שלבים
מסלול מדורג ללימוד סוכני AI מאפס: מושגים, לולאה שכותבים לבד, כלים, זיכרון ובטיחות. בכל שלב בונים פרויקט קטן, שוברים אותו וממשיכים.
המסלול בשישה שלבים
כדי ללמוד סוכני AI מאפס, עברו על שישה שלבים לפי הסדר: המושגים, הלולאה הראשונה שלכם, כלים, זיכרון, תכנון הלולאה ובטיחות. בכל שלב תבנו דבר אחד במו ידיכם. דילוג קדימה הוא הסיבה הנפוצה ביותר לכך שאנשים נתקעים, משום שמסגרת מסתירה בדיוק את החלק שהייתם צריכים לראות.
סוכן AI הוא לולאה סביב מודל שפה, שמורשה לקרוא לכלים. המשפט הזה הוא הנושא כולו. כל מה שבא אחריו הוא פירוט של מה שנכנס ללולאה, במה הכלים רשאים לגעת וכיצד עוצרים את הלולאה כאשר משהו משתבש. אם אתם יכולים להסביר את הלולאה למישהו אחר, למדתם את הדבר עצמו. אם אתם יכולים רק לנקוב בשמות של מסגרות, עדיין לא למדתם אותו.
התוכנית שלהלן מניחה שאתם לומדים באמצעות בנייה. קראו שלב, בנו את הדבר הקטן, שברו אותו בכוונה, ואז המשיכו הלאה. שלב שרק קראתם עליו הוא שלב שעדיין לא ביצעתם.
מה באמת צריך לפני שלב 1
רשימת הדרישות המקדימות קצרה, וקצרה יותר ממה שרוב דפי הקורסים מרמזים.
- אתם יודעים לקרוא ולכתוב Python או TypeScript ברמה של סקריפט בן חמישים שורות.
- אתם שולטים ב-Linux shell: מתקינים חבילה, עורכים קובץ וקוראים לוג.
- יש לכם מפתח API למודל מתארח, או מכונה שיכולה להריץ מודל מקומי.
זו הרשימה המלאה. אין צורך בתיאוריה של למידת מכונה, וגם לא בניסיון באימון מודל. בעבודה עם סוכנים אין שימוש בגרדיאנטים או בנתוני אימון. כרטיס גרפי רלוונטי רק אם תחליטו להריץ את המודל בעצמכם. זהו תחום נפרד שאפשר ללמוד בהמשך מתוך אירוח Ollama ב-VPS לצורך אירוח עצמי של LLM.
ההיבט שאנשים נוטים להמעיט בחשיבותו הוא הצד של ה-shell. סוכנים נכשלים בגלל הרשאות, נתיבים, משתני סביבה ותהליכים שמסתיימים בשקט. אם stack trace הקשור ל-PATH או למצב קובץ גורם לכם לסגור את המסוף, הקדישו קודם סוף שבוע ליסודות Linux. הדבר יחסוך לכם חודש בהמשך.
שלב 1: מהו סוכן ומה אינו סוכן
התחילו בקריאת API אחת וללא לולאה. שלחו הנחיה, הדפיסו את התשובה ובדקו את ספירות האסימונים בתגובה. כעת אתם מבינים את יחידת העלות ואת יחידת זמן האחזור.
לאחר מכן למדו להשתמש בכלים. זהו הרעיון החדש היחיד באמת בתחום כולו. תארו למודל פונקציה באמצעות שם, תיאור וסכימת JSON (JavaScript object notation) עבור הקלטים שלה. המודל אינו מפעיל דבר. הוא מחזיר בקשה מובנית: קראו ל־run_command עם הארגומנטים האלה. הקוד שלכם מפעיל את הפונקציה, שולח את הפלט בחזרה כהודעה ומבקש מהמודל לפעול שוב. המודל הוא מתכנן שקורא טקסט וכותב טקסט. הקוד שלכם הוא הרכיב שמבצע פעולות.
צ'אטבוט מסיים לאחר תשובה אחת. סוכן חוזר על חילופי הדברים האלה עד שהמודל מפסיק לבקש כלים. החזרה הזו היא ההבדל כולו, ולכן גם מצבי הכשל שונים. צ'אטבוט מספק תשובה שגויה פעם אחת. סוכן פועל על סמך תשובה שגויה כמה פעמים לפני שמישהו מבחין בכך.
שלב 2: כתבו את הלולאה בעצמכם, פעם אחת
אל תתחילו במסגרת עבודה. כתבו כ-30 שורות Python, כדי שמבנה התהליך יהיה ברור לכם.
sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-hereimport subprocess
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "run_command",
"description": "Run a read only shell command and return its output.",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"],
},
}]
messages = [{"role": "user", "content": "How much disk space is free here?"}]
while True:
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=messages,
)
if response.stop_reason != "tool_use":
break
messages.append({"role": "assistant", "content": response.content})
results = []
for block in response.content:
if block.type == "tool_use":
done = subprocess.run(
block.input["command"], shell=True,
capture_output=True, text=True, timeout=10,
)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": done.stdout or done.stderr,
})
messages.append({"role": "user", "content": results})
print(next(b.text for b in response.content if b.type == "text"))הריצו את הקוד באמצעות python3 agent.py. בהרצה תקינה יודפס משפט אחד המציין את מערכות הקבצים שלכם ואת השטח הפנוי בהן, מכיוון שהמודל ביקש את df -h, הקוד שלכם הריץ אותו, והמעבר השני הפך את הטבלה למשפט. אם לא מודפס דבר, הלולאה הסתיימה לפני שהתקבל בלוק טקסט. הוסיפו את print(response.stop_reason) בתוך הלולאה ועקבו אחר שינוי הערכים.
כעת גרמו לתקלה בכוונה. מחקו את השורה tool_use_id וקראו את השגיאה, מכיוון שתוצאת כלי ללא מזהה תואם נדחית על ידי ה-API, וזו שגיאת המתחילים הנפוצה ביותר. שאלו שאלה שדורשת שתי פקודות, ועקבו אחר הלולאה כשהיא מופעלת פעמיים. שאלו שאלה בלתי אפשרית, ועקבו אחר התהליך כשהוא מוותר או נכנס ללולאה אינסופית.
אזהרה אחת לגבי הדוגמה הזו. היא מעבירה את פלט המודל ישירות ל-shell באמצעות shell=True. הדבר מקובל במחשב בדיקה שאפשר להתקין מחדש, אך שגוי בכל סביבה אחרת. שלב 6 מתקן זאת. המושגים שמאחורי הלולאה מוסברים בהרחבה רבה יותר בבניית סוכן AI משלכם ב-VPS.
שלב 3: כלים שעדיין לא היו לסוכן
הכלי run_command שלך פועל, אך סוכן אמיתי זקוק לכלים שמגיעים אל מחוץ למערכת: מערכת כרטיסים, מסד נתונים ומאגר קוד. כתיבת מעטפת ייעודית לכל שירות ולכל סוכן אינה ניתנת להרחבה.
Model Context Protocol (MCP) הוא הפתרון שהתעשייה אימצה. שרת MCP חושף קבוצת כלים באמצעות תעבורה תקנית, וכל סוכן שתומך ב-MCP יכול להשתמש בהם ללא קוד תיווך מותאם אישית. שרת מערכת הקבצים לדוגמה מופעל באמצעות פקודה אחת:
npx -y @modelcontextprotocol/server-filesystem /home/you/projectsלשם כך יש להתקין את Node, והארגומנט של הספרייה הוא הנתיב היחיד שהשרת יוכל לגשת אליו. זהו מודל האבטחה בתמציתו: השרת קובע את הגבול, ולא המודל. מפנים אליו לקוח, והסוכן מקבל יכולות לקרוא קבצים ולכתוב בהם, בלי שכתבת את הקוד לכך. הפעלה תקינה של שרתים אלה, תחת חשבון שירות ובחירת אפשרויות התעבורה המתאימות, מוסברת במדריך הפעלת שרתי MCP ב-VPS עבור סוכני קידוד מבוססי AI.
המסקנה של שלב זה היא שתכנון הכלים הוא העבודה העיקרית. תיאור מעורפל גורם למודל לנחש. כלי שמחזיר ארבעים אלף תווים מזהם את חלון ההקשר. כלי שיכול למחוק דברים ימחק בסופו של דבר דברים.
שלב 4: זיכרון, שהוא בעיקר קבצים
מתחילים פונים כאן למסד נתונים וקטורי. אל תעשו זאת, לפחות לא בשלב זה.
לסוכן אין זיכרון בין קריאות. בכל פעם שולחים מחדש את כל השיחה, ולכן הפעלה ארוכה עולה יותר בכל תור מהפעלה קצרה. לכן הזיכרון מתחלק לשתי בעיות. הראשונה היא מה שנכנס כרגע בחלון ההקשר. מנהלים זאת באמצעות יצירת תקציר, קיצור פלט ישן של כלים ושמירת הקידומת היציבה של ההנחיה במטמון, כך שמשלמים רק חלק מהמחיר עבורה. השנייה היא מה ששרד לאחר הפעלה מחדש. זהו אחסון.
לבעיה השנייה, קובץ markdown רגיל שהסוכן יכול לקרוא ולכתוב עדיף כמעט תמיד על מסד נתונים וקטורי בפרויקט ראשון. תנו לו קובץ אחד, הגדירו לו את הפורמט, הורו לו לקרוא את הקובץ לפני תחילת העבודה ולעדכן אותו כאשר הוא לומד דבר חדש. כך מקבלים את רוב התועלת, ויכולים לפתוח את הקובץ ולראות מה הסוכן סבור. עברו ל-embeddings ול-retrieval כאשר ההערות כבר אינן נכנסות בחלון ההקשר, ולא לפני כן.
שלב 5: הלולאה היא המוצר
בשלב זה אתם יכולים ליצור סוכן שפועל כשאתם צופים בו. שלב 5 עוסק בהפעלתו גם כשאינכם צופים בו.
ארבע שאלות קובעות אם בטוח להשאיר סוכן ללא השגחה. מה מפעיל אותו, כדי שלא יפעל ללא קלט. באיזה גבול הוא פועל, כדי שטעות תישאר מצומצמת. כיצד מאמתים את התוצאה, משום שסוכן שבודק את העבודה של עצמו תמיד עובר. איזה תקציב עוצר אותו, במספר אסימונים או בזמן שעון כולל. תכנון מכוון של ארבעת המרכיבים האלה הוא העיקרון המתואר ב-הנדסת לולאות ומה כוללת ההגדרה הזו.
התרגיל: קחו את הסוכן שלכם משלב 2, הטילו עליו משימה הדורשת ארבעה או חמישה שלבים, והוסיפו מגבלה קשיחה על מספר האיטרציות. לאחר מכן הסירו את המגבלה וצפו בהשפעה של לולאה ללא גבול על חשבון האסימונים שלכם. בצעו זאת פעם אחת בתקציב קטן, כדי שלא תעשו זאת בטעות בתקציב גדול.
שלב 6: בטיחות, סודות ועלויות
שלב זה אינו אופציונלי. הוא מופיע אחרון רק משום שאי-אפשר לחוש בסיכון לפני שבניתם משהו שפועל.
הפעילו את הסוכן תחת משתמש חסר הרשאות משלו, לעולם לא תחת root ולעולם לא תחת החשבון האישי שלכם. כך רדיוס הפגיעה מוגבל לספרייה ולא למכונה שלמה. הרחיקו פרטי התחברות מהישג ידו של המודל, משום שכל דבר שנמצא בחלון ההקשר עלול להיחשף באמצעות קריאה לכלי. הפתרון הוא אסימונים קצרי-חיים, מוגבלי-הרשאות, מאחורי עוזר, כפי שמתואר ב-שמירת סודות מחוץ לסוכני ה-AI שלכם. הגדירו תקרת הוצאה קשיחה, משום שלולאה ללא השגחה מחייבת אתכם על כל איטרציה בלי שאיש יפקח עליה. מגבלות ואצווה שמונעות זאת מתוארות ב-בקרת עלויות של סוכן AI ב-VPS שפועל תמיד.
לעלות יש משמעות במספר קונקרטי אחד. נכון ליולי 2026, Claude Opus 5 מחייב $5 לכל מיליון אסימוני קלט ו-$25 לכל מיליון אסימוני פלט. סוכן שמנהל שיחה ארוכה ושולח מחדש שיחה שהולכת וגדלה עלול להעביר כמה מאות אלפי אסימונים במסגרת משימה אחת. שמירת מטמון להנחיות ושימוש במודל קטן יותר לשלבים שגרתיים משנים את החישוב הזה במידה רבה יותר מכל שינוי בניסוח ההנחיה.
גם הזרקת הנחיות שייכת לכאן. אם הסוכן שלכם קורא דף אינטרנט, מערכת מעקב אחר תקלות או תיבת דואר נכנס, מי שכתב את הטקסט הזה כותב למעשה גם הוראות לסוכן שלכם. ההגנה אינה הנחיית מערכת מתוחכמת יותר. ההגנה היא גבול ההרשאות, משום שסוכן שאינו יכול למחוק מאגר קוד אינו יכול להשתכנע למחוק אותו.
באיזו מפה כדאי להשתמש?
בחרו תוכנית לימודים אחת והשלימו אותה, במקום לדגום שש תוכניות. המאגר של Microsoft בשם ai-agents-for-beginners הוא המקיף ביותר מבין האפשרויות החינמיות. זהו קורס בן eighteen שיעורים, שצבר יותר מ־70,000 כוכבים נכון ליולי 2026, והוא תואם היטב לשלבים שלעיל. אוספים של מאגרי סוכנים פופולריים מועילים כדי לראות אילו אפשרויות קיימות, אך מועילים הרבה פחות כתוכנית לימודים. הסיבה היא שרשימה הממוינת לפי מספר הכוכבים ממוינת לפי פופולריות ולא לפי סדר לימודי.
כאשר אתם רוצים פרויקט אמיתי לתרגול, סוכן קידוד הוא היעד הראשון המתאים ביותר: המשוב מיידי, הכלים ברורים, וקל לבטל טעויות. הפעלת סוכן AI לקידוד ב־VPS מסבירה את התהליך מקצה לקצה. אם אתם מעדיפים ללמוד ממערכות פעילות במקום לבנות מאפס, ההשוואה ב־סוכני ה־AI הטובים ביותר באירוח עצמי מראה כיצד כמה פרויקטים פותרים את אותו מחזור בדרכים שונות.
כמה זמן זה נמשך?
למי שכבר מתכנת, שלבים 1 ו-2 נמשכים ערב אחד. שלב 3 נמשך סוף שבוע, ורוב הזמן מוקדש לתיאורי כלים ולא לפרוטוקול. שלבים 4 ו-5 נמשכים כמה שבועות של שימוש בפועל, משום שאפשר ללמוד מה הסוכן שלכם שוכח רק באמצעות מעקב אחר השכחה שלו. שלב 6 אינו מסתיים ממש, משום שכל יכולת חדשה שאתם מעניקים פותחת אותו מחדש.
חודשיים של ערבים עקביים מספיקים לרוב האנשים כדי להגיע לסוכן עובד, מוגבל ושימושי. מי שמשקיעים בכך שנה הם בדרך כלל אלה שהמשיכו לקרוא במקום לבנות.
FAQ
האם עליי להכיר למידת מכונה כדי לבנות סוכן AI?
לא. בניית סוכן פירושה קריאה למודל באמצעות API וחיבור בקשות הכלים שלו לפונקציות אמיתיות. זהו תכנות יישומים רגיל. אינכם עוסקים באימון, בנגזרות או במערכי נתונים. הכישורים שקובעים אם הסוכן פועל כראוי הם תכנון סכמות לכלים, טיפול בשגיאות והרשאות Linux. התאוריה של למידת מכונה נעשית רלוונטית רק אם ממשיכים לכוונון עדין של מודל. זהו תפקיד אחר, עם דרישות קדם אחרות.
האם כדאי להתחיל במסגרת כמו LangChain או CrewAI?
כתבו תחילה לולאה גולמית אחת, ורק לאחר מכן אמצו מסגרת. מסגרת מחליפה את 30 השורות שבשלב 2 באובייקט תצורה. הדבר נוח לאחר שמבינים מה הוחלף, אך מבלבל לפני כן. כאשר הסוכן אינו פועל כראוי, עליכם לנתח ישירות את רשימת ההודעות ואת תוצאות הכלים. הדבר קשה בהרבה אם מעולם לא ראיתם אותם. לאחר שתכתבו לולאה אחת בעצמכם, מסגרת תחסוך לכם זמן במקום להסתיר את המנגנון.
כמה עולה ללמוד על סוכני AI?
פחות ממה שרוב האנשים מצפים, אם מגבילים את ההוצאות. מפתח API של שירות מתארח ו-VPS קטן מספיקים לכל ששת השלבים האלה. הסיכון האמיתי אינו התעריף לשעה, אלא לולאה ללא הגבלה שמחייבת אתכם עבור כל איטרציה בזמן שאתם ישנים. הגדירו מגבלת הוצאה קשיחה בחשבון ה-API שלכם כבר ביום הראשון, הוסיפו מגבלת איטרציות לכל לולאה שאתם כותבים, והשתמשו במודל זול יותר לשלבים שגרתיים. הפעלת המודל באופן מקומי מבטלת את עלות האסימונים ומחליפה אותה בדרישת חומרה.
מה ההבדל בין סוכן AI לבין צ'אטבוט?
צ'אטבוט משיב פעם אחת. סוכן חוזר על מחזור: המודל מבקש כלי, הקוד שלכם מפעיל אותו, התוצאה חוזרת, והמודל מחליט מה לעשות לאחר מכן. החזרה הזו מאפשרת לסוכן להשלים משימה הכוללת כמה שלבים. זו גם הסיבה שסוכנים זקוקים לגבולות שצ'אטבוטים אינם זקוקים להם. תשובה שגויה של צ'אטבוט היא פסקה שגויה. תשובה שגויה של סוכן היא פסקה שגויה, ובנוסף כל פעולה שהוא ביצע בעקבותיה.