איך לחבר Claude ל-n8n ב-VPS
מדריך מעשי לחיבור Claude ל-n8n בשרת VPS: כולל הגדרת API Keys, בחירת מודלים, שלושה workflows מוכנים וחישוב עלויות הרצה ללא שגיאות לופים.
מה אתם בונים
שלושה תהליכי עבודה (workflows) של AI פעילים על מופע ה-n8n שכבר מופעל אצלכם: webhook שמסכם כל דבר שתשלחו אליו, קורא פיד מתוזמן שהופך מאמרים לשורות מובנות בגיליון נתונים, ו-AI Agent שקורא ל-HTTP API באופן עצמאי כדי לענות על שאלות. זהו המקביל ללא-קוד (no-code) ל-calling the Claude API from Python on your VPS — אותו API, אותם טוקנים, אותו חשבון, אך הניהיול (orchestration) מתבצע באמצעות צמתים (nodes) של n8n במקום סקריפט.
אני מניח ש-n8n כבר פועל מאחורי HTTPS בהתאם ל-self-hosted n8n on Docker guide. אם לא, בצעו זאת תחילה — webhooks זקוקים לנקודת קצה TLS אמיתית, ומאגר האישורים (credentials) שבו תכניסו מפתח API זקוק לגיבוי של מפתח ההצפנה שהמדריך מדגיש.
הבעיות המעניינות כאן אינן גרירה והשלכה (drag-and-drop). הן בחירת המודל לכל צומת, שדות prompt שמחליפים בשקט את undefined, והעובדה שהאוטומציה רצה ללא השגחה — תהליך עבודה שעולה חצי סנט להרצה הוא זול, עד שלולאת ניסוי-מחדש (retry loop) מריצה אותו ארבעת אלפים פעמים במהלך הלילה. רוב המדריך עוסק בכך.
אישור אחד, מוצפן עם המפתח שגיביתם
קבלו מפתח API מה-Anthropic Console בכתובת platform.claude.com — Settings, לאחר מכן API Keys, ואז צרו מפתח בשם כלשהו כמו n8n-vps. המפתח מוצג פעם אחת בלבד. הטעינו את החשבון או הגדירו חיוב; השימוש ב-API הוא בתשלום לפי טוקן (pay-per-token) ונפרד לחלוטין מכל מנוי Claude.ai.
ב-n8n: Credentials, Create credential, בחרו Anthropic, הדביקו את המפתח בשדה API Key, ושמרו. כל צומת Claude בכל תהליך עבודה מתייחס לאישור המאוחסן הזה — לעולם אל תדביקו את המפתח בתוך צומת.
שתי הערות תפעוליות. ראשית, n8n מצפינה אישורים מאוחסנים באמצעות N8N_ENCRYPTION_KEY. אם תגדירו משתנה סביבה זה במפורש בקובץ ה-compose שלכם לפי המדריך של n8n, האישור שלכם יישמר גם לאחר בנייה מחדש של הקונטיינר; אם תתנו ל-n8n ליצור אחד ואז תאבדו את ה-volume, כל אישור מאוחסן — כולל מפתח זה — יהיה ciphertext בלתי ניתן לשחזור. גבקו את המפתח עכשיו אם דיפقتם את השלב הזה. שנית, התייחסו למאגר האישורים של n8n כאל "רדיוס הפיצוץ": כל מי שיכול לערוך תהליכי עבודה במופע שלכם יכול לבצע בקשות עם מפתח ה-Anthropic שלכם. הגדירו מגבלת הוצאה ב-Console תחת Settings כדי שלמופע שנפרץ או שרץ ללא שליטה יהיה תקרה מקסימלית.
בחירת המודל היא החלטה ברמת הצומת
תפריט בחירת המודלים בצמתי Claude ב-n8n נמשך בזמן אמת מה-API, ולכן הוא מציג את מה שהמפתח שלכם יכול לגשת אליו. נכון ליולי 2026, הרשימה ומחירי ה-API למיליון טוקנים של קלט/פלט הם: Claude Haiku 4.5 (claude-haiku-4-5) ב-$1/$5 עם חלון הקשר (context window) של 200K, Claude Sonnet 5 (claude-sonnet-5) ב-$3/$15 — מחיר הכרה של $2/$10 עד ה-31 באוגוסט 2026 — ו-Claude Opus 4.8 (claude-opus-4-8) ב-$5/$25, שניהם עם חלון הקשר של 1M-token. קיים גם Claude Fable 5 (claude-fable-5) ב-$10/$50 למשימות הסקת מסקנות קשות ביותר; שום דבר במדריך זה אינו זקוק לו. השתמשו ב-IDs המדויקים הללו — גרסה עם סיומת תאריך שתזכרו ממדריך ישן תזכה ב-404, והמחירים משתנים, לכן בדקו ב-platform.claude.com לפני שאתם סומכים על כל מספר שקראתם איפשהו, כולל כאן.
ההרגל לבנות: בחרו את המודל לכל צומת, לא לכל פלטפורמה. סיווג, חילוץ, סיכום, ניתוב — עמוד השדרה של האוטומציה — עובדים בצורה מצוינת על Haiku בשליש ממחיר הרשימה של Sonnet ובחמישית ממחיר Opus. שמרו את Sonnet עבור סוכנים (agents) והסקת מסקנות רב-שלבית, ואת Opus עבור תהליך העבודה הנדיר שבו תשובה שגויה עולה יותר מהטוקנים. תהליך עבודה עם חמישה צמתי Claude יכול, ואף צריך, לשלב מודלים שונים.
שני צמתי Claude, ובאיזה להשתמש בכל מקום
n8n מספק שתי אינטגרציות נפרדות של Anthropic, ובחירה לא נכונה היא הסטייה הנפוצה ביותר של מתחילים.
צומת ה-Anthropic הוא צומת אפליקציה רגיל: בקשה אחת פנימה, תגובה אחת החוצה. משאב הטקסט שלו כולל פעולה של Message a Model, בנוסף לפעולות לניתוח תמונות ומסמכים. השתמשו בו בכל פעם שהלוגיקה של תהליך העבודה נמצאת ב-n8n — טריגר, קריאה ל-Claude, הצומת הבא. תהליכי העבודה 1 ו-2 להלן משתמשים בו או בשקלו המקביל.
צומת ה-Anthropic Chat Model הוא צומת משנה (sub-node) — תוספת קטנה המספקת את המודל לצומת שורש כמו AI Agent או Basic LLM Chain. אין לו טריגר ואין לו פלט משלו; הוא חושף את בורר המודלים בתוספת אפשרויות דגימה כמו Maximum Number of Tokens ו-Sampling Temperature. הערה אחת מהתיעוד של n8n ששווה לשנן: ביטויים (expressions) בתוך צמתי משנה תמיד נפתרים מול פריט הקלט הראשון, לא מול כל פריט — שימו ביטויים המבוססים על פריט-פריט בשדות ה-prompt של צומת השורש, לא בצומת המשנה.
Workflow 1: webhook נכנס, סיכום יוצא
ה-"Hello World" של אוטומציית AI: כל מה שנשלח ב-POST לכתובת URL יסוכם ויגיע ל-Slack או לתא הדואר שלכם.
- צומת Webhook — HTTP Method POST, נתיב
summarize. n8n נותן לכם כתובת URL לבדיקה וכתובת URL לייצור; הכתובת לייצור מאזינה רק לאחר שתהליך העבודה יהיה פעיל. - צומת Anthropic — Message a Model, מודל
claude-haiku-4-5, Max Tokens בסביבות 300. - צומת Slack (או Send Email) — פרסום טקסט התגובה לערוץ.
ה-prompt הוא המקום שבו הביטויים של n8n פוגשים את Claude. גוף ה-POST מגיע תחת $json.body, לכן שדה הודעת המשתמש נראה כך:
Summarize the following feedback in three bullets, then one line:
verdict: praise | complaint | churn-risk. No preamble.
{{ $json.body.text }}שימו הוראות תפקיד ופורמט בשדה ה-system prompt של הצומת, לא בהודעת המשתמש — ה-system prompt נשאר קבוע בעוד שהמידע המשתנה (payload) משתנה, מה ששומר על התנהגות יציבה והופך את ה-prompt לקריא שישה חודשים מהיום. בדקו זאת מה-VPS עצמו:
curl -X POST https://n8n.example.com/webhook/summarize \
-H 'Content-Type: application/json' \
-d '{"text": "Third support ticket this month about slow disk IO..."}'עלות להרצה ב-Haiku: payload של 1,200 טוקנים פלוס prompt עולה בערך $0.0012 לקלט, ו-300 טוקנים פלט עולים $0.0015 — בערך רבע סנט. אלף הרצות בחודש עולות פחות מ-$3. אותו צומת המופנה ל-Opus 4.8 עולה בערך פי חמישה מזה. היחס הזה, כשהוא מוכפל בכל תהליך עבודה שתבנו, הוא הסיבה לכך שההרגל לבחור מודל לכל צומת הוא קריטי.
Workflow 2: RSS מתוזמן לשורות מובנות
עכשיו משהו מבוסס זמן, עם פלט מובנה: קריאת פיד RSS מדי שעה, סיווג כל פריט, והוספת שורות לגיליון.
- Schedule Trigger — בכל שעה.
- RSS Read — כתובת ה-URL של הפיד. פולט פריט אחד לכל מאמר.
- Basic LLM Chain — עם צומת משנה Anthropic Chat Model המוגדר ל-
claude-haiku-4-5, וצומת משנה Structured Output Parser המכיל סכימת JSON. - Google Sheets (או Postgres) — הוספת שורה לכל פריט.
ה-Structured Output Parser הוא מה שהופך את המשפט "Claude, please return JSON" מתקווה לחוזה: הוא מאמת את תשובת המודל מול הסכימה שלכם ומכשיל את הפריט בצורה מפורשת במקום לכתוב שורות של זבל. סכימה לדוגמה:
{
"type": "object",
"properties": {
"category": { "type": "string", "enum": ["release", "security", "tutorial", "other"] },
"relevance": { "type": "number" },
"one_line_summary": { "type": "string" }
},
"required": ["category", "relevance", "one_line_summary"]
}וה-prompt של השרשרת מתייחס לפריט הפיד:
Classify this article for a VPS hosting audience.
Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}חישוב העלות משנה צורה כאן: זהו חישוב לפי פריט, לא לפי הרצה. חמישים מאמרים בשעה, עשרים וארבע שעות ביממה, הם 36,000 קריאות Claude בחודש — ב-Haiku אולי $40–$90 תלוי באורך המאמר, ב-Opus בערך פי חמישה מזה. בצעו הסרת כפילויות לפני צומת ה-LLM (בדיקת IF פשוטה מול קישורים שנראו בעבר, או צומת Remove Duplicates של n8n) ומספר הקריאות יצטמצם, מכיוון שרוב הבדיקות השעתיות אינן מכילות דבר חדש. הטוקן הזול ביותר הוא הקריאה שמעולם לא ביצעתם.
Workflow 3: AI Agent שמשתמש בכלים (tools)
שני תהליכי העבודה הראשונים הם צינורות (pipelines) — אתם קובעים את השלבים. צומת AI Agent הופך זאת: אתם נותנים ל-Claude מטרה וכלים, והוא מחליט אילו כלים לקרוא, ובאיזה סדר, עד לסיום המשימה. n8n דורש צומת משנה של מודל צ'אט ולפחות צומת משנה אחד של כלי המחובר אליו.
בנייה קונקרטית — עוזר תפעולי שעונה על "מה למטה ולמה" מתוך המערכת המנטרת שלכם:
- Chat Trigger (או webhook) — השאלה נכנסת.
- AI Agent — עם צומת משנה Anthropic Chat Model המוגדר ל-
claude-sonnet-5. סוכנים מתכננים ומשלבים קריאות כלים; Haiku יכול להפעיל סוכנים פשוטים עם כלי יחיד, אך Sonnet הוא הרף הסביר ברגע שמספר הכלים גדל. - צומת HTTP Request המחובר ככלי — מופנה ל-Uptime Kuma status API או לנקודת קצה של Zabbix. כלי HTTP שני יכול לפנות לכל דבר אחר עם ממשק REST API.
שתי הגדרות עושות את רוב העבודה. ה-System Message של הסוכן מגדיר את התפקיד: "You are an ops assistant. Use the status tool to check current monitor state before answering. Report only monitors that are down, with duration." ותיאור (description) כל כלי אינו תיעוד לבני אדם — זו הדרך שבה Claude מחליט מתי לקרוא לו. "Returns current up/down state for all monitored services as JSON" יקרה ברגעים הנכונים; "status API" יתעלם ממנו או ישתמש בו بشكل שגוי. כשאתם מחברים את צומת ה-HTTP Request ככלי, הפעילו את אפשרות ה-Optimize Response ובחרו את שדות ה-JSON שחשובים — אחרת כל תגובת API מפורטת תיזרק לתוך ההקשר (context) של המודל כטוקנים של קלט שעבורם אתם משלמים.
הגדירו Max Iterations על הסוכן (ברירת המחדל היא 10) למספר המינימלי שעובד — זה ההבדל בין "הסוכן ויתר אחרי 4 קריאות כלים" לבין לולאה של תריסר סבבי מודל. והבינו את מבנה החיוב: כל איטרציה שולחת מחדש את כל השיחה עד כה — system message, השאלה, וכל תוצאת כלי קודמת — כטוקנים של קלט. הרצה של סוכן עם שש איטרציות יכולה בקלות להגיע ל-20,000 טוקנים מצטברים של קלט ו-2,000 פלט: בשיעורי ההכרה של Sonnet 5 זה בערך $0.06, ובערך $0.09 במחיר הסטנדרטי של $3/$15 — זה שווה בערך עשר פעמים הרצת סיכום פשוטה. אם אתם מוצאים את עצמכם מחברים כלים רבים לסוכן אחד, זה הנקודה שבה running MCP servers on your VPS הופכת לארכיטקטורה נקייה יותר.
מגנוני הגנה על עלויות, כי אף אחד לא צופה
תהליך עבודה ללא השגחה זקוק לבקרה שאדם ליד המקלדת מספק באופן מובנה. ארבעה שכבות, מהזולה ביותר.
Max Tokens בכל צומת Claude. זהו תקרה קשיחה לפלט. מסכם זקוק ל-300, מסווג ל-100. זה מגביל את הצד היקר של הדו"ח ($5–$25 למיליון טוקנים של פלט לעומת $1–$5 לקלט) ומשמש גם כבלם למצבים של ריצה לא מבוקרת — באג ב-prompt שגורם ל-Claude לפטפט יעלה 300 טוקנים, לא 8,000.
מודל לכל צומת. הוזכר לעיל; זהו כלי להפחתת מחיר פי חמישה עד עשרה לאורך המגוון הנוכחי, וזה לוקח עשר שניות להגדיר.
הגבלת לולאות. Max Iterations בסוכנים. timeout (פסק זמן) של תהליך העבודה בהגדרות התהליך כדי שביצוע תקוע ייעצר במקום להמשיך להסתובב. וזהירות עם Retry On Fail בכל צומת: זהו הכלי הנכון לשגיאות זמניות, אך ניסיונות חוזרים מכפילים את העלות — Max Tries של 3 עם Wait Between Tries של 5000 ms פירושו שכישלון מתמשך יחייב אתכם עד שלוש פעמים לכל פריט לפני שהוא מוותר. לעולם אל תעטפו ב-retry צומת שכבר הצליח בצורה יקרה.
תהליך עבודה לשגיאות (Error workflow) כגיבוי. צרו תהליך עבודה שמתחיל בצומת Error Trigger שפרסם את שם תהליך העבודה שנכשל ואת השגיאה ב-Slack, ולאחר מכן הגדירו אותו כ-Error Workflow בכל תהליך עבודה של AI. מצב הכישלון שזה תופס הוא המכוער ביותר: תהליך עבודה מתוזמן שנכשל בכל הרצה, בכל שעה, במשך שבוע — כל הרצה שורפת טוקנים לפני שהיא קורסת. שלבו זאת עם מגבלת הוצאה חודשית ב-Anthropic Console ובדקו את דף השימוש ב-Console בימים הראשונים לאחר הפעלת משהו מתוזמן. אם אתם רוצים להבין בדיוק על מה אתם מחויבים, the token-usage guide מנתח זאת.
מצבי כשל, עם ה"חוטים" שתראו
הצומת נכשל מיידית עם "Authorization failed - please check your credentials". ה-API החזיר 401. גוף השגיאה הוא:
{"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}מפתח שהודבק לא נכון — קטוע, עם רווחים בסוף, או מפתח זמני ממדריך. צרו מחדש את האישור ב-n8n והדביקו שוב; אם זה עשוי לעבוד אתמול, בדקו אם המפתח בוטל ב-Console או אם שחזור volume החזיר את המערכת לאישור מוצפן עם N8N_ENCRYPTION_KEY שונה.
ביצועים נכשלים בפרצי עם 429 rate_limit_error, הודעה בסגנון "Number of request tokens has exceeded your per-minute rate limit". מגבלות קצב הן בתוך "דליים" של דקה, ו-n8n הופכת את זה לקל מאוד להפעיל חמישים הרצות של webhook או RSS בו-זמנית. תקנו זאת מבנית: עבדו על פריטים ברצף (Loop Over Items) במקום במקביל, והגדירו Retry On Fail עם Max Tries של 3 ו-Wait Between Tries על המקסימום שלו של 5000 ms — n8n מגבילה שדה זה ב-5000 ms. כשאתם זקוקים להשהיה ארוכה יותר כדי שהניסיונות החוזרים יגיעו בחלון הדקה הבאה, שימו צומת Wait במסלול השגיאה או עבדו על פריטים אחד אחד. התגובה נושאת כותרת retry-after שאומרת לכם בדיוק כמה זמן עליכם לחכות — ההשהיה הקבועה של n8n אינה יכולה לקרוא אותה, לכן בנו את ההשהיה הארוכה בעצמכם.
404 not_found_error בשם המודל שלכם. גוף השגיאה חוזר על הטעות:
{"type": "error", "error": {"type": "not_found_error", "message": "model: claude-haiku-4.5"}}נקודות במקום מקפים (4.5 עבור 4-5), סיומת תאריך מפוסט שקרי, או מודל שפורש. תקנו את ה-ID מול הרשימה הנוכחית — זה מכה באנשים שמקלידים בשדה המודל כביטוי במקום לבחור מהתפריט.
Claude עונה על שאלה שלא שאליתם. אין שגיאה בשום מקום — ההרצה היא ירוקה. ביטוי n8n המתייחס לשדה חסר, כמו {{ $json.body.text }} כאשר ה-payload השתמש ב-message, מחליף את המחרוזת המילולית undefined בתוך ה-prompt שלכם, ו-Claude עונה בנחישות על prompt שאין בו כלום. אם הצומת שצוין לא התבצע בכלל תקבלו "Referenced node is unavailable", אך שדה חסר הוא שקט. לפני ההפעלה, תמיד הריצו פעם אחת עם נתונים אמיתיים וקראו את ה-prompt המרונדר בפועל בפאנל הקלט של הצומת — עורך הביטויים מציג תצוגה מקדימה של הערך המחושב, ו-undefined נמצא ממש שם אם תסתכלו.
FAQ
איך אני מחבר את Claude ל-n8n?
צרו מפתח API ב-Anthropic Console בכתובת platform.claude.com, ולאחר מכן ב-n8n הוסיפו אישור מסוג Anthropic והדביקו אותו בשדה API Key. כל צומת Claude — צומת האפליקציה Anthropic וצומת המשנה Anthropic Chat Model — מתייחס לאישור המאוחסן הזה. n8n מצפינה אותו באמצעות N8N_ENCRYPTION_KEY, לכן גבקו את המפתח הזה אחרת האישורים שלכם יאבדו עם ה-volume.
כמה עולה תהליך עבודה של AI בכל הרצה?
העריכו את מספר הטוקנים להרצה, ואז הכפילו במחירי המודל למיליון — נכון ליולי 2026, Haiku 4.5 עולה $1/$5 למיליון טוקנים של קלט/פלט ו-Sonnet 5 עולה $3/$15 ($2/$10 מחיר הכרה עד אוגוסט 2026). סיכום webhook ב-Haiku עולה בערך רבע סנט; הרצת סוכן ב-Sonnet עם מספר קריאות כלים מגיעה קרוב ל-$0.06–$0.10 מכיוון שכל איטרציה שולחת מחדש את כל השיחה כקלט. ודאו את ההרצה בדף השימוש ב-Console במקום לסמוך על הערכות.
באיזה מודל Claude כדאי לי להשתמש לאוטומציות ב-n8n?
Haiku 4.5 לסיווג, חילוץ, סיכום וניתור — עבודה בנפחים גבוהים שבהם המהירות והמחיר הם המכריעים. Sonnet 5 עבור צמתי AI Agent והסקת מסקנות רב-שלבית. Opus 4.8 רק במקומות שבהם תשובה שגויה יקרה מספיק כדי להצדיק את מחיר הרשימה שלו של $5/$25 — פי חמישה מ-Haiku, קצת פחות מפי שניים מ-Sonnet. הגדירו את המודל לכל צומת, לא לכל תהליך עבודה — תהליך עבודה אחד יכול לשלב את שלושתם.
איך אני מונע מתהליך עבודה ב-n8n לבזבז יותר מדי כסף ב-Claude API?
השתמשו בשכבות הגנה: Max Tokens נמוך בכל צומת Claude, Max Iterations בסוכנים, timeout בתהליך העבודה, והגדרות Retry On Fail שמרניות כדי שכישלונות לא יכפילו את הוצאת הטוקנים. לאחר מכן הוסיפו תהליך עבודה של Error Trigger שמתריע לכם ב-Slack כשأي תהליך עבודה של AI נכשל, והגדירו מגבלת הוצאה חודשית ב-Anthropic Console כמחסום קשיח ששום דבר ב-VPS לא יכול לעקוף.
האם קריאות כלים של AI Agent עולות תוספת תשלום?
אין עלות נפרדת לכלים, אך הכלים אינם בחינם: כל תוצאת כלי מוזנת בחזרה למודל כטוקנים של קלט, וכל איטרציה של סוכן שולחת מחדש את כל השיחה עד כה. תגובת API מפורטת שעוברת ללא סינון יכולה להגדיל משמעותית את מספר הטוקנים שאתם משלמים — הפעילו את האפשרות Optimize Response בצמתי HTTP Request והחזירו רק את השדות שהסוכן זקוק להם.