איך לבנות סוכן AI עם Claude על שרת VPS
למדו כיצד להקים סוכן אוטונומי המשתמש ב-Claude כליבת הסקה על גבי שרת VPS. המדריך מפרט את השילוב בין Messages API, שימוש בכלים ופרוטוקול MCP לניהול לולאת הרצה עצמאית.
מה המשמעות של בניית סוכן (agent) עם Claude
בניית סוכן עם Claude משמעה שימוש ב-Claude כליבת הסקת המסקנות, בעוד הלולאה, הכלים והנתונים נמצאים על השרת שלך. Claude מחליט מה לעשות; ה-VPS שלך מוציא זאת אל הפועל. אתה שולח ל-Claude את המשימה ואת המצב הנוכחי, Claude משיב בתשובה או בבקשה להשתמש באחד הכלים שלך, הקוד שלך מריץ את הכלי ושולח את התוצאה בחזרה, והלולאה נמשכת עד להשלמת המשימה. הבינה היא שירות שאתה קורא לו דרך האינטרנט. כל מה שמסביב שייך לך.
הפיצול הזה הוא מקור המשיכה. אתה מקבל יכולות הסקת מסקנות ברמה הגבוהה ביותר מבלי לתפעל מודל, ואתה שומר על שליטה מלאה במה שהסוכן יכול לגשת אליו, כיוון שהכלים רצים על חומרה שבבעלותך. אם כבר בנית תוכנית Claude ראשונה, המדריך בניית אפליקציית Claude הראשונה על VPS מכסה את היסודות שעליהם מדריך זה נבנה.
Claude הוא המוח: ה-Messages API
כל קריאה ל-Claude עוברת דרך נקודת קצה אחת, ה-Messages API. אתם שולחים את היסטוריית השיחה עד כה ואת רשימת הכלים שהסוכן רשאי להשתמש בהם; Claude מחזיר את ההודעה הבאה שלו. הודעה זו היא או תשובה סופית או בקשה להפעלת כלי. עבור מסלול הפיתוח העצמי, לא קיים "API לסוכנים" נפרד: השימוש בכלים הוא תכונה של נקודת קצה יחידה זו, והלולאה שמקיפה אותה היא באחריותכם.
Claude הוא חסר מצב (stateless) בין קריאות, מה שאומר שהוא אינו זוכר דבר בעצמו. כל בקשה נושאת את השיחה כולה. הקוד שלכם מחזיק את ההיסטוריה ושולח אותה בכל תור, וזו הסיבה לכך שכל תור בשיחה ארוכה עולה יותר טוקנים מהקודם. זו אינה מגבלה אלא בחירה תכנונית: מכיוון שהמצב נשמר בשרת שלכם, אתם מחליטים בדיוק מה Claude רואה, ושום פרט על המשימה אינו נשמר במקום שאינכם שולטים בו. המשמעות היא שה-prompt ממשיך לגדול, ובעוד שחלון ההקשר (context window) של Claude סופג זאת בקלות, מודל מקומי באותה לולאה לא יעשה זאת, וזו הסיבה ש-Ollama דורש העלאה של num_ctx לפני שהוא מפסיק לקטוע prompts ארוכים.
שימוש בכלים הוא לולאת הסוכן
לולאת הסוכן עם Claude פשוטה לתיאור. אתם שולחים בקשה הכוללת את הכלים שלכם. Claude קורא את המשימה, ואם עליו לפעול, הוא משיב בבקשת שימוש בכלי, המציינת את שם הכלי וממלאת את הקלטים שלו. הקוד שלכם מריץ את הכלי הזה, ואז שולח את התוצאה בחזרה ל-Claude בבקשה הבאה. Claude קורא את התוצאה ומבקש כלי נוסף או כותב את תשובתו הסופית. כאשר הוא מפסיק לבקש כלים, המשימה הושלמה.
ניתן לכתוב את הלולאה הזו ידנית בכמה שורות, ורבים עושים זאת, כיוון שקל לראות אותה וקל לשלוט בה. ה-SDK הרשמיים מספקים גם מריץ כלים (tool runner) שמנהל את הלולאה עבורכם: אתם מספקים את פונקציות הכלי, וה-SDK מטפל בתקשורת הדו-כיוונית של קריאה ל-Claude, הרצת הכלים שלכם, והזנת התוצאות בחזרה עד ש-Claude מסיים. כך או כך, המבנה זהה. המריץ פשוט חוסך מכם את כתיבת הלולאה בעצמכם. אם הלולאה עדיין נראית מופשטת, הפתרון הוא לכתוב לולאה מינימלית לפני שפונים למריץ, וזהו הצעד שעליו נשען כל השאר ב-מסלול מדורג זה ללימוד סוכני AI מאפס.
שלוש דרכים לבנייה, ואלו המתאימות ל-VPS
קיימות שלוש דרכים לבניית סוכן Claude, והן נבדלות בכמות התשתית שאתם מריצים בעצמכם.
הדרך הראשונה היא כתיבת קוד משלכם הקורא ל-Claude API באמצעות כלים משלכם. אתם כותבים את הלולאה, או משתמשים ב-tool runner של ה-SDK, ומארחים את כל המערכת על ה-VPS שלכם. זוהי הבחירה הנפוצה, כיוון שהיא מעניקה לכם שליטה מלאה על הכלים, על הנתונים ועל האבטחה, והיא רצה כתוכנית רגילה על השרת שלכם. רוב המדריך הזה מניח שזו הדרך שבה תבחרו.
הדרך השנייה היא ה-Claude Agent SDK. זהו Claude Code, סוכן הקידוד, הארוז כספרייה שעליה ניתן לבנות. הוא כולל לולאת סוכן מלאה וכלים מובנים לקריאה וכתיבה של קבצים, להרצת פקודות shell ולביצוע חיפושים, כך שאין צורך להרכיב אותם מאפס. הוא רץ גם הוא על השרת שלכם, מה שהופך אותו למתאים מאוד ל-VPS כאשר אתם זקוקים לסוכן בעל יכולות עבודה עם קבצים ו-shell מבלי לבנות את התשתית בעצמכם. סוכן שקורא קבצים ומריץ פקודות shell זקוק למנגנוני הגנה לפני שהוא עובד ללא השגחה, והמדריך הרצת Claude Code בצורה מאובטחת על שרת מכסה את מערכת ההרשאות, ה-sandbox ואפשרויות הבידוד.
הדרך השלישית היא סוכנים מנוהלים (Managed Agents), שבהם Anthropic מריצה את הלולאה ומארחת sandbox שבו הכלים של הסוכן מתבצעים. זוהי האפשרות שדורשת מכם מינימום התערבות: יש הרבה פחות מה לתפעל, אך סביבת העבודה של הסוכן נמצאת בתשתית של Anthropic ולא ב-VPS שלכם. בחרו באפשרות זו כאשר אתם מעוניינים במינימום עבודה תפעולית ואין צורך שהכלים ירוצו על המכונה שלכם. בשתי הדרכים האחרות, השרת שלכם הוא הבית של הסוכן, וזהו הנושא שבו עוסק המשך המדריך.
חיבור כלים באמצעות MCP
באיזו דרך שתבחר, תרצה לחבר את ה-agent למערכות אמיתיות, ו-Model Context Protocol הוא הדרך המסודרת לעשות זאת. MCP הוא תקן פתוח לחשיפת כלים ונתונים ל-agent. במקום לכתוב ידנית אינטגרציה לכל שירות, אתה מפנה את Claude לשרת MCP שכבר מציג את היכולות הללו ככלים. ניתן להריץ שרתי MCP כשירותים קטנים על אותו ה-VPS, כאשר לכל אחד מהם יש רק את הגישה לה הוא זקוק, נושא שאני מכסה ב-הרצת שרתי MCP על גבי VPS.
בחירת מודל
Claude מגיע בכמה מודלים, והבחירה ביניהם היא פשרה בין יכולות, מהירות ועלות. נכון לכתיבת שורות אלו, האפשרויות המרכזיות הן Claude Opus 4.8 (claude-opus-4-8), ברירת המחדל בעלת היכולות הגבוהות למשימות הסקה מורכבות והרצות ארוכות של סוכנים; Claude Sonnet 5 (claude-sonnet-5), אפשרות מאוזנת וזולה ומהירה יותר, ששומרת על ביצועים קרובים ל-Opus במשימות רבות; ו-Claude Haiku 4.5 (claude-haiku-4-5), המהיר והזול ביותר, המיועד לשלבים פשוטים בעלי נפח גבוה. מעליהם נמצא Claude Fable 5 (claude-fable-5), המודל בעל היכולות הגבוהות ביותר, עבור העבודה התובענית ביותר. השתמשו במזהה המודל המדויק בקוד שלכם, ללא הוספת תאריך.
דפוס עבודה מעשי הוא שילוב ביניהם. תנו למודל זול יותר לטפל בקריאות שגרתיות לכלים, ולמודל חזק יותר לטפל בהחלטות מורכבות. מכיוון שהמודל הוא רק מחרוזת בבקשה שלכם, החלפה שלו היא שינוי של שורה אחת בלבד; לכן, התחילו עם ברירת מחדל בעלת יכולות גבוהות ובצעו אופטימיזציה כלפי מטה במקומות שבהם מהירות או עלות חשובות יותר מתוספת קטנה באיכות.
הרצת השירות כרכיב מאובטח ב-VPS
סוכן הוא שימושי רק אם הוא נשאר פעיל, והוא בטוח רק אם הוא מבודד. ב-VPS, שני התנאים הללו מתקיימים על ידי הרצת הסוכן כשירות מערכת מאובטח (hardened system service), ולא כתוכנית שהופעלה ידנית בטרמינל. כשירות, הוא עולה בעת האתחול, מופעל מחדש במקרה של קריסה, ומתעד לוגים ל-journal. כשהוא מאובטח, הוא רץ כמשתמש ללא הרשאות מיוחדות (unprivileged user) עם גישה מינימלית בלבד, כך שבאג או פקודה שגויה מוגבלים בטווח השפעתם. יחידת שירות יכולה להגביל רק את מה שהתהליך רשאי לגשת אליו; כל היתר תלוי במעטפת של הסוכן עצמו, וזהו התפקיד של תוספי DeepSeek Harness שכדאי להתקין הפועלים ב-stack נפרד: הגבלות תקציב, חוקי הרשאות לכל כלי, וסריקה נגד prompt-injection.
הכלל החשוב ביותר הוא לשמור את ה-Claude API key בצד השרת. המפתח משלם על כל קריאה ומאשר אותה, לכן עליו להימצא בקובץ שקריא רק למשתמש של הסוכן, להיטען לשירות כמשתנה סביבה (environment variable), ולעולם לא להופיע בקוד, במאגר (repository), או בכל מקום שנגיש לדפדפן. צרו יחידת שירות מלאה ומאובטחת עבור הסוכן שלכם כאן:
לאחר מכן, השלימו את אבטחת השרת עצמו. הגדירו SSH מבוסס מפתחות בלבד ונעלו את החשבון שממנו אתם מנהלים את המערכת, כפי שמוסבר ב-אבטחת SSH ב-VPS. אם אתם מעדיפים להפעיל את הסוכן מסשן אינטראקטיבי בזמן הפיתוח, הרצת Claude Code ב-VPS עם tmux היא פתרון משלים מצוין. ברגע שסשן שני פתוח על אותו שרת, השניים יכולים להעביר עבודה ביניהם במקום שאתם תעבירו כל הוראה מחלונית אחת לשנייה. ואם אתם מחפשים את העקרונות שמאחורי כל זה, ללא תלות במודל ספציפי, המדריך המקביל על בניית סוכן AI עצמאי ב-VPS מניח את היסודות לכך.
אם אתם מחפשים עוזר תכנות מבוסס טרמינל, הרצת סוכן AI לתכנות ב-VPS מכסה את Aider ו-Goose.
FAQ
באיזה מודל Claude עליי לבחור כדי לבנות סוכן?
התחילו עם Claude Opus 4.8 (claude-opus-4-8), ברירת המחדל המיומנת, ובצעו התאמות משם. Claude Sonnet 5 (claude-sonnet-5) זול ומהיר יותר עבור רוב המשימות, Claude Haiku 4.5 (claude-haiku-4-5) הוא הטוב ביותר עבור שלבים פשוטים בעלי נפח גבוה, ו-Claude Fable 5 (claude-fable-5) הוא בעל היכולות הגבוהות ביותר עבור המשימות המורכבות ביותר. דפוס נפוץ הוא שימוש במודל זול יותר לשלבים שגרתיים ובמודל חזק יותר להחלטות קשות, שכן המעבר ביניהם דורש שינוי של שורה אחת בלבד.
האם עליי להריץ את כל הסוכן ב-VPS שלי, או ש-Anthropic מריצה אותו?
זה תלוי בגישה. אם אתם כותבים לולאה משלכם מול ה-Claude API, או משתמשים ב-Claude Agent SDK, הסוכן רץ במלואו על ה-VPS שלכם ורק קריאות המודל נשלחות ל-Anthropic. אם אתם משתמשים ב-Managed Agents, חברת Anthropic מריצה את הלולאה ומארחת את ה-sandbox שבו הכלים מתבצעים, כך שפחות רכיבים פועלים על השרת שלכם. עבור סוכן שרץ על המכונה שלכם, השתמשו באחת משתי האפשרויות הראשונות.
מה ההבדל בין ה-Claude API לבין ה-Claude Agent SDK?
ה-Claude API הוא ה-Messages endpoint הגולמי: אתם שולחים שיחה וכלים, וכותבים את לולאת הסוכן סביבם, או משתמשים ב-tool runner של ה-SDK כדי להפעיל אותו. ה-Claude Agent SDK הוא ספרייה ברמה גבוהה יותר, Claude Code הארוז לבנייה עליו, אשר מספק לולאה מלאה וכלים מובנים לקבצים, ל-shell ולחיפוש. השתמשו ב-API כאשר אתם רוצים להגדיר הכל בעצמכם, וב-Agent SDK כאשר אתם רוצים סוכן מיומן מבלי להרכיב את התשתית מאפס.
כיצד עליי לשמור על ה-Claude API key שלי מאובטח בשרת?
שמרו אותו בצד השרת והרחיקו אותו מהקוד שלכם. אחסנו אותו בקובץ שניתן לקריאה רק על ידי החשבון שתחתיו רץ הסוכן, טענו אותו לשירות כמשתנה סביבה (environment variable), ולעולם אל תבצעו לו commit למאגר (repository) ואל תחשפו אותו לדפדפן. מכיוון שכל בקשה ל-Claude יוצאת מהשרת שלכם, המפתח לעולם אינו צריך להגיע למכשיר של המשתמש, וזה מה שהופך סוכן שרץ בשרת לקל יותר לאבטחה מאשר סוכן שמוטמע בתוך אפליקציית צד-לקוח.
האם עליי לארח מודל בעצמי כדי לבנות סוכן עם Claude?
לא. עם Claude, המודל הוא שירות מאוחסן שאתם קוראים לו דרך ה-API, כך שאין שום דבר להריץ על GPU. ה-VPS שלכם מריץ את לולאת הסוכן, את הכלים ואת הנתונים, והסקת המסקנות מתרחשת בצד של Anthropic. זה מה שמאפשר לשרת צנוע להריץ סוכן מיומן. אם אתם מעוניינים במודל מקומי לחלוטין, זהו נתיב ה-self-hosted המכוסה במדריך הנלווה על בניית סוכן AI משלכם.