איך לבנות AI agent עם Claude על VPS
למדו איך לשלב את ה-Messages API, tool use ו-MCP כדי להפוך את ה-VPS שלכם למוח שמפעיל סוכנים חכמים באופן עצמאי. מדריך מעשי לבניית סוכנים מבוססי Claude.
מה המשמעות של בניית agent עם Claude
בניית agent עם Claude פירושה שימוש ב-Claude כליבת ההסקת (reasoning) בעוד הלולאה, הכלים והנתונים נמצאים על השרת שלכם. Claude מחליט מה לעשות; ה-VPS שלכם מבצע. אתם שולחים ל-Claude את המשימה ואת המצב הנוכחי, Claude משיב עם תשובה או עם בקשה להשתמש באחד הכלים שלכם, הקוד שלכם מפעיל את הכלי ושולח את התוצאה חזרה, והלולאה נמשכת עד לסיום העבודה. האינטליגנציה היא שירות שאתם קוראים לו דרך האינטרנט. כל מה שמסביב הוא שלכם.
החלוקה הזו היא המוקד למשיכה. אתם מקבלים יכולת הסקה ברמה מתקדמת (frontier-level) מבלי להפעיל מודל בעצמכם, ושומרים על שליטה מלאה במה ה-agent יכול לגעת, כיוון שהכלים רצים על חומרה שבבעלותכם. אם כבר בניתם תוכנית Claude ראשונה, המדריך first Claude app on a VPS guide מכסה את היסודות שעליהם בנויה זו.
Claude הוא המוח: ה-Messages API
כל קריאה ל-Claude עוברת דרך endpoint אחד, ה-Messages API. אתם שולחים את השיחה עד כה ואת רשימת הכלים שה-agent רשאי להשתמש בהם; Claude מחזיר את ההודעה הבאה שלו. הודעה זו היא או תשובה סופית או בקשה להפעיל כלי. עבור נתיב ה-build-it-yourself אין "agent API" נפרד: שימוש בכלים הוא תכונה של ה-endpoint היחיד הזה, והלולאה סביבו היא שלכם להפעיל.
Claude הוא stateless בין קריאות, מה שאומר שהוא אינו זוכר דבר בעצמו. כל בקשה נושאת את כל השיחה. הקוד שלכם מחזיק את ההיסטוריה ושולח אותה בכל סיבוב, וזה why each turn in a long session costs more tokens than the last. זו לא מגבלה אלא בחירה עיצובית: מכיוון שהמצב (state) נמצא בשרת שלכם, אתם מחליטים בדיוק מה Claude רואה, ושום דבר מהמשימה אינו נשמר בשום מקום שאינכם שולטים בו.
שימוש בכלים הוא לולאת ה-agent
קל לתאר את לולאת ה-agent עם Claude. אתם שולחים בקשה הכוללת את הכלים שלכם. Claude קורא את המשימה ואם הוא צריך לפעול, הוא משיב עם בקשת שימוש בכלי ששם כלי וממלא את הקלטים שלו. הקוד שלכם מפעיל את הכלי, ואז שולח את התוצאה חזרה ל-Claude בבקשה הבאה. Claude קורא את התוצאה ומבקש כלי נוסף או כותב את תשובתו הסופית. כשהוא מפסיק לבקש כלים, המשימה הושלמה.
ניתן לכתוב את הלולאה הזו ידנית בכמה שורות, ורבים עושים זאת, מכיוון שקל לראות אותה וקל לשלוט בה. ה-SDKs הרשמיים מספקים גם tool runner שמפעיל את הלולאה עבורכם: אתם מספקים את פונקציות הכלים, וה-SDK מטפל בתכתובת מול Claude, בהפעלת הכלים שלכם ובשליחת התוצאות חזרה עד ש-Claude מסיים. בכל מקרה המבנה זהה. ה-runner פשוט חוסך לכם את כתיבת הלולאה בעצמכם.
שלוש דרכים לבנות, ואילו מתאימות ל-VPS
קיימות שלוש דרכים לבנות Claude agent, והן נבדלות בכמות המכשור שאתם מפעילים.
הראשונה היא קוד משלכם הקורא ל-Claude API עם הכלים שלכם. אתם כותבים את הלולאה, או משתמשים ב-tool runner של ה-SDK, ומארחים את הכל על ה-VPS שלכם. זו הבחירה הנפוצה, כיוון שהיא מעניקה לכם שליטה מלאה על הכלים, הנתונים והאבטחה, והיא רצה כתוכנית רגילה על השרת שלכם. רוב המדריך הזה מניח נתיב זה.
השנייה היא ה-Claude Agent SDK. זהו Claude Code, ה-coding agent, ארוז כספרייה שניתן לבנות עליה. הוא מספק לולאת agent מלאה וכלים מובנים לקריאה וכתיבה של קבצים, הרצת פקודות shell וחיפוש, כך שאינכם צריכים להרכיב אותם מאפס. הוא גם רץ על השרת שלכם, מה שהופך אותו למתאים מאוד ל-VPS כשאתם רוצים agent מבוסס קבצים ו-shell חזק מבלי לבנות את המעטפת בעצמכם. agent שקורא קבצים ומריץ פקודות shell זקוק ל-containment לפני שהוא יכול לעבוד ללא השגחה, ו-running Claude Code safely on a server מכסה את מערכת ההרשאות, ה-sandbox ואפשרויות הבידוד.
השלישית היא Managed Agents, שבהם Anthropic מפעילה את הלולאה ומארחת sandbox שבו הכלים של ה-agent מופעלים. זוהי האופציה ללא התעסקות (hands-off): יש הרבה פחות מה להפעיל, אך סביבת העבודה של ה-agent נמצאת בתשתית של Anthropic ולא ב-VPS שלכם. בחרו בזה כשאתם רוצים את מינימום העבודה התפעולית ואינכם זקוקים לכך שהכלים ירוצו על המכונה שלכם. עבור שתי האופציות האחרות, השרת שלכם הוא הבית של ה-agent, וזה מה ששאר המדריך עוסק בו.
חיבור כלים באמצעות MCP
לא משנה באיזה נתיב תבחרו, תרצו לחבר את ה-agent למערכות אמיתיות, ו-Model Context Protocol הוא הדרך המסודרת לעשות זאת. MCP הוא תקן פתוח לחשיפת כלים ונתונים ל-agent. במקום לכתוב אינטגרציה ידנית עבור כל שירות, אתם מכוונים את Claude לשרת MCP שכבר מציג את היכולות הללו ככלים. ניתן להריץ שרתי MCP כשירותים קטנים על אותו VPS, כל אחד עם הגישה הדרושה לו בלבד, כפי שאני מכסה ב-running MCP servers on a VPS.
בחירת מודל
Claude מגיע במספר מודלים, ובחירה באחד היא פשרה בין יכולת, מהירות ועלות. נכון לכתיבת שורות אלו, הבחירות המרכזיות הן Claude Opus 4.8 (claude-opus-4-8), ברירת המחדל היכולתית להסקות קשות והרצות agent ארוכות; Claude Sonnet 5 (claude-sonnet-5), אופציה מאוזנת שהיא זולה ומהירה יותר תוך שמירה על קרבה ל-Opus במשימות רבות; ו-Claude Haiku 4.5 (claude-haiku-4-5), המהיר והזול ביותר, עבור שלבים פשוטים ובנפח גבוה. מעליהם נמצא Claude Fable 5 (claude-fable-5), המודל היכולתי ביותר, עבור העבודה התובענית ביותר. השתמשו במזהה המודל המדויק בקוד שלכם, ללא תאריך מוסף.
דפוס פרקטי הוא לשלב ביניהם. תנו למודל זול יותר לטפל בקריאות כלים שגרתיות ואחד חזק יותר לטפל בהחלטות קשות. כיוון שהמודל הוא רק מחרוזת (string) בבקשה שלכם, המעבר הוא שינוי של שורה אחת, לכן התחילו עם ברירת מחדל יכולתית וכוונו כלפי מטה במקומות שבהם המהירות או העלות חשובות יותר מהאיכות הסופית.
הריצו זאת כשירות מוגן (hardened) על ה-VPS שלכם
agent הוא שימושי רק אם הוא נשאר פועל, והוא בטוח רק אם הוא מוגבל (contained). ב-VPS, שני אלה מגיעים מהרצת ה-agent כשירות מערכת מוגן ולא כתוכנית שהתחלתם ידנית ב-terminal. כשירות, הוא מתחיל בעלייה (boot), מופעל מחדש אם הוא קורס, ושולח לוגים ל-journal. כשהוא מוגן, הוא רץ כמשתמש ללא הרשאות עם הגישה הדרושה לו בלבד, כך שלבאג או לפקודה שגויה יש תקרה.
הכלל החשוב ביותר הוא לשמור את מפתח ה-Claude API שלכם בצד השרת (server-side). המפתח משלם עבור כל קריאה ומאשר אותה, לכן הוא שייך לקובץ שניתן לקריאה רק על ידי המשתמש של ה-agent, נטען לשירות כמשתנה סביבה (environment variable), ולעולם אין להניח אותו בקוד, במאגר (repository) או בכל מקום שדפדפן יכול להגיע אליו. צרו יחידת שירות (service unit) מלאה ומוגנת עבור ה-agent שלכם כאן:
לאחר מכן, השלימו את השרת עצמו. הגדירו SSH באמצעות מפתחות בלבד ונעלו את החשבון שממנו אתם מנהלים, כפי שמוסבר ב-SSH hardening on a VPS. אם אתם מעדיפים להפעיל את ה-agent בסשן אינטראקטיבי בזמן שאתם בונים אותו, running Claude Code on a VPS with tmux הוא כלי עזר טוב. ואם אתם רוצים את הקונספטים שמאחורי כל זה, מבלי לקשור אותם למודל אחד, המדריך המקביל על building your own AI agent on a VPS מפרט את היסודות.
אם אתם מחפשים עוזר תכנות ב-terminal, running a coding AI agent on a VPS מכסה את Aider ו-Goose.
FAQ
באיזה מודל Claude כדאי לי להשתמש כדי לבנות agent?
התחילו עם 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) הוא היכולתי ביותר למשימות הקשות ביותר. דפוס נפוץ הוא להשתמש במודל זול יותר לשלבים שגרתיים ובאחד חזק יותר להחלטות קשות, מכיוון שהמעבר הוא שינוי של שורה אחת.
האם אני מריץ את כל ה-agent על ה-VPS שלי, או ש-Anthropic מריצה אותו?
זה תלוי בגישה. אם אתם כותבים לולאה משלכם מול ה-Claude API, או משתמשים ב-Claude Agent SDK, ה-agent רץ לחלוטין על ה-VPS שלכם ורק הקריאות למודל יוצאות ל-Anthropic. אם אתם משתמשים ב-Managed Agents, Anthropic מפעילה את הלולאה ומארחת את ה-sandbox שבו הכלים מופעלים, כך שפחות ממנו נמצא על השרת שלכם. עבור agent שרץ על המכונה שלכם, השתמשו באחת משתי האופציות הראשונות.
מה ההבדל בין ה-Claude API לבין ה-Claude Agent SDK?
ה-Claude API הוא ה-endpoint הגולמי של ה-Messages: אתם שולחים שיחה וכלים, וכותבים את לולאת ה-agent סביבם, או משתמשים ב-tool runner של ה-SDK כדי להפעיל אותה. ה-Claude Agent SDK הוא ספרייה ברמה גבוהה יותר, Claude Code ארוז לבנייה, שמספק לולאה מלאה וכלים מובנים לקבצים, shell וחיפוש. השתמשו ב-API כשאתם רוצים להגדיר הכל בעצמכם, וב-Agent SDK כשאתם רוצים agent יכולתי מבלי להרכיב את המעטפת.
איך אני שומר על מפתח ה-Claude API שלי בטוח בשרת?
שמרו אותו בצד השרת ומחוץ לקוד שלכם. שמרו אותו בקובץ שניתן לקריאה רק על ידי החשבון שבו ה-agent רץ, טענו אותו לשירות כמשתנה סביבה, ולעולם אל תעשו לו commit למאגר או תחשפו אותו לדפדפן. מכיוון שכל בקשה ל-Claude יוצאת מהשרת שלכם, המפתח לעולם אינו צריך להגיע למכשיר של משתמש, מה שהופך agent שרץ על שרת לקל יותר לאבטחה מאשר כזה המוטמע באפליקציית לקוח.
האם אני צריך לארח מודל בעצמי כדי לבנות agent עם Claude?
לא. עם Claude, המודל הוא שירות מארח שאתם קוראים לו דרך ה-API, כך שאין צורך להריץ דבר על GPU. ה-VPS שלכם מריץ את לולאת ה-agent, את הכלים ואת הנתונים, וההסקה מתרחשת בצד של Anthropic. זה מה שמאפשר לשרת צנוע להריץ agent יכולתי. אם אתם רוצים מודל מקומי לחלוטין במקום זאת, זהו נתיב ה-self-hosted המפורט במדריך המקביל על בניית agent AI משלכם.