اتصال Claude به n8n روی VPS
راهنمای کامل اتصال Claude به n8n در VPS شامل تنظیمات Credential، انتخاب مدل و 3 نمونه workflow عملی برای مدیریت هزینهها و جلوگیری از خطاهای تکرار.
آنچه در حال ساخت آن هستید
سه گردشکار (workflow) فعال هوش مصنوعی روی نمونه n8n که از قبل اجرا کردهاید: یک webhook که هر چیزی را به آن بدهید خلاصه میکند، یک RSS feed-reader زمانبندی شده که مقالات را به سطرهای ساختاریافته در spreadsheet تبدیل میکند، و یک AI Agent که خودش یک HTTP API را برای پاسخ به سوالات فراخوانی میکند. این معادل بدون کدنویسی (no-code) برای calling the Claude API from Python on your VPS است — همان API، همان توکنها، همان صورتحساب، اما مدیریت فرآیند به جای یک اسکریپت، در نودهای n8n انجام میشود.
من فرض میکنم n8n طبق self-hosted n8n on Docker guide از قبل پشت HTTPS فعال شده است. اگر اینطور نیست، ابتدا این کار را انجام دهید — webhookها به یک endpoint واقعی TLS نیاز دارند و مخزن اعتبارنامهها (credential store) که قرار است یک API key در آن قرار دهید، به آن backup از encryption-key نیاز دارد که در آن راهنما به آن تاکید شده است.
مسائل جالب در اینجا کشیدن و رها کردن (drag-and-drop) نیستند. بلکه انتخاب مدل برای هر نود، فیلدهای پرامپت که به صورت بیصدا undefined را جایگذاری میکنند، و این واقعیت است که یک اتوماسیون بدون نظارت اجرا میشود — یک workflow که هزینه هر اجرای آن نصف یک سنت است، ارزان است تا زمانی که یک حلقه تکرار (retry loop) آن را چهار هزار بار در طول شب اجرا کند. بیشتر این راهنما درباره همین موارد است.
یک اعتبارنامه، رمزگذاری شده با کلیدی که backup کردهاید
یک API key از Anthropic Console در platform.claude.com دریافت کنید — Settings، سپس API Keys، و سپس کلیدی با نامی مانند n8n-vps بسازید. این کلید فقط یک بار نمایش داده میشود. حساب خود را شارژ کنید یا billing را تنظیم کنید؛ استفاده از API بر اساس pay-per-token است و کاملاً از هر اشتراک Claude.ai جداست.
در n8n: به Credentials بروید، Create credential را بزنید، Anthropic را انتخاب کنید، کلید را در فیلد API Key بچسبانید و save کنید. هر نود Claude در هر workflow به این یک اعتبارنامه ذخیره شده ارجاع میدهد — شما هرگز کلید را مستقیماً داخل یک نود نمیچسبانید.
دو نکته عملیاتی. اول، n8n اعتبارنامههای ذخیره شده را با N8N_ENCRYPTION_KEY رمزگذاری میکند. اگر آن env var را مطابق راهنمای n8n در فایل compose خود به صورت صریح تنظیم کنید، اعتبارنامه شما در بازسازی container باقی میماند؛ اگر اجازه دهید n8n یکی بسازد و سپس volume را از دست بدهید، هر اعتبارنامه ذخیره شده — از جمله این کلید — به ciphertext غیرقابل بازیابی تبدیل میشود. اگر از مرحله backup کردن آن صرفنظر کردهاید، همین حالا آن را backup کنید. دوم، با مخزن اعتبارنامههای n8n به عنوان محدوده آسیب (blast radius) برخورد کنید: هر کسی که بتواند workflowها را در نمونه شما ویرایش کند، میتواند با کلید Anthropic شما درخواست ارسال کند. یک محدودیت هزینه (spend limit) در Console زیر بخش Settings تنظیم کنید تا اگر نمونهای هک شد یا از کنترل خارج شد، سقفی برای آن وجود داشته باشد.
انتخاب مدل یک تصمیم در سطح هر نود است
منوی کشویی مدل در نودهای Claude در n8n مستقیماً از API دریافت میشود، بنابراین آنچه کلید شما به آن دسترسی دارد را نشان میدهد. تا جولای 2026، لیست مدلها و قیمت API به ازای هر میلیون توکن ورودی/خروجی به این شرح است: Claude Haiku 4.5 (claude-haiku-4-5) با قیمت $1/$5 و پنجره context 200K، Claude Sonnet 5 (claude-sonnet-5) با قیمت $3/$15 — که در دوره معرفی تا 31 August 2026، $2/$10 است — و Claude Opus 4.8 (claude-opus-4-8) با قیمت $5/$25، هر دو با پنجره context 1M-token. همچنین Claude Fable 5 (claude-fable-5) با قیمت $10/$50 برای سختترین کارهای استدلالی وجود دارد؛ هیچکدام از موارد این راهنما به آن نیاز ندارند. از همین شناسهها (IDs) دقیق استفاده کنید — نسخهای که با پسوند تاریخ از یک آموزش قدیمی به یاد دارید با خطای 404 مواجه میشود، و قیمتها تغییر میکنند، بنابراین قبل از اعتماد به هر عددی که در هر جایی میخوانید، از جمله اینجا، platform.claude.com را چک کنید.
عادتی که باید بسازید: مدل را برای هر نود انتخاب کنید، نه برای کل پلتفرم. طبقهبندی (classification)، استخراج (extraction)، خلاصهسازی (summarization)، مسیریابی (routing) — که اساس اتوماسیون هستند — روی Haiku با یک سوم قیمت لیست Sonnet و یک پنجم قیمت Opus به زیبایی اجرا میشوند. Sonnet را برای agentها و استدلالهای چند مرحلهای رزرو کنید، و Opus را برای آن workflowهای نادری که یک پاسخ اشتباه، هزینه بیشتری نسبت به توکنها دارد. یک workflow با پنج نود Claude میتواند و باید مدلها را با هم ترکیب کند.
دو نود Claude، و اینکه کدام را کجا استفاده کنیم
n8n دارای دو ادغام (integration) مجزا برای Anthropic است و انتخاب اشتباه آنها رایجترین انحراف مبتدیان است.
نود Anthropic یک نود اپلیکیشن معمولی است: یک درخواست ورودی، یک پاسخ خروجی. منبع Text آن دارای عملیات Message a Model است، به علاوه عملیاتی برای تحلیل تصاویر و اسناد. هر زمان که منطق workflow در n8n قرار دارد — trigger، فراخوانی Claude، نود بعدی — از آن استفاده کنید. Workflowهای 1 و 2 در زیر از آن یا معادل زنجیرهای آن استفاده میکنند.
نود Anthropic Chat Model یک sub-node است — یک ضمیمه کوچک که مدل را برای یک نود ریشه مانند AI Agent یا Basic LLM Chain فراهم میکند. این نود خودش trigger یا خروجی ندارد؛ بلکه انتخابگر مدل و گزینههای نمونهبرداری مانند Maximum Number of Tokens و Sampling Temperature را ارائه میدهد. یک نکته از مستندات n8n که باید به خاطر بسپارید: عبارتها (expressions) در داخل sub-nodeها همیشه نسبت به اولین آیتم ورودی حل میشوند، نه هر آیتم — عبارتهای مربوط به هر آیتم را در فیلدهای پرامپت نود ریشه قرار دهید، نه در sub-node.
Workflow 1: webhook ورودی، خلاصه خروجی
Hello-world اتوماسیون هوش مصنوعی: هر چیزی که به یک URL با متد POST ارسال شود، خلاصه شده و در Slack یا Inbox شما قرار میگیرد.
- نود Webhook — HTTP Method: POST، مسیر
summarize. n8n یک URL تست و یک URL production به شما میدهد؛ URL production تنها زمانی گوش میدهد که workflow فعال باشد. - نود Anthropic — عملیات Message a Model، مدل
claude-haiku-4-5، Max Tokens حدود 300. - نود Slack (یا Send Email) — ارسال متن پاسخ به یک کانال.
پرامپت جایی است که عبارتهای n8n با Claude ملاقات میکنند. بدنه POST زیر $json.body قرار میگیرد، بنابراین فیلد user message به این صورت خواهد بود:
Summarize the following feedback in three bullets, then one line:
verdict: praise | complaint | churn-risk. No preamble.
{{ $json.body.text }}دستورالعملهای نقش (role) و فرمت را در فیلد system prompt نود قرار دهید، نه در user message — system prompt ثابت میماند در حالی که payload تغییر میکند، که این کار رفتار را پایدار و پرامپت را شش ماه بعد خوانا نگه میدارد. آن را از خود 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 توکن به علاوه پرامپت حدود $0.0012 برای ورودی و 300 توکن خروجی حدود $0.0015 است — تقریباً یک چهارم یک سنت. هزار بار اجرا در ماه کمتر از $3 است. همان نود اگر به Opus 4.8 متصل شود، حدود پنج برابر آن است. این نسبت، وقتی در هر workflow که میسازید ضرب شود، دلیل اهمیت عادت انتخاب مدل در هر نود است.
Workflow 2: RSS زمانبندی شده به سطرهای ساختاریافته
حالا چیزی بر اساس ساعت، با خروجی ساختاریافته: خواندن یک RSS feed به صورت ساعتی، طبقهبندی هر آیتم، و اضافه کردن سطرها به یک sheet.
- Schedule Trigger — هر ساعت.
- RSS Read — URL فید. یک آیتم برای هر مقاله خروجی میدهد.
- Basic LLM Chain — با یک sub-node از نوع Anthropic Chat Model تنظیم شده روی
claude-haiku-4-5، و یک sub-node از نوع Structured Output Parser که یک JSON schema دارد. - Google Sheets (یا Postgres) — اضافه کردن یک سطر برای هر آیتم.
Structured Output Parser همان چیزی است که "Claude, please return JSON" را از یک آرزو به یک قرارداد تبدیل میکند: این نود پاسخ مدل را با schema شما اعتبارسنجی میکند و به جای نوشتن سطرهای بیارزش، در صورت خطا، آیتم را با خطا متوقف میکند. یک schema مانند:
{
"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"]
}و پرامپت زنجیره (chain) به آیتم فید ارجاع میدهد:
Classify this article for a VPS hosting audience.
Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}محاسبات هزینه در اینجا تغییر میکند: این هزینه به ازای هر آیتم است، نه هر اجرا. 50 مقاله در ساعت، 24 ساعت در روز، میشود 36,000 فراخوانی Claude در ماه — در Haiku شاید بین $40 تا $90 بسته به طول مقاله، و در Opus حدود پنج برابر آن. قبل از نود LLM، موارد تکراری را حذف کنید (یک IF ساده بر اساس لینکهای قبلاً دیده شده، یا نود Remove Duplicates در n8n) و تعداد فراخوانیها کاهش مییابد، زیرا بیشتر بررسیهای ساعتی حاوی چیز جدیدی نیستند. ارزانترین توکن، فراخوانیای است که هرگز انجام نمیدهید.
Workflow 3: یک AI Agent که از ابزارها استفاده میکند
دو workflow اول خط لوله (pipeline) هستند — شما مراحل را تعیین میکنید. یک نود AI Agent این روند را معکوس میکند: شما به Claude یک هدف و ابزار میدهید، و او تصمیم میگیرد کدام ابزارها را، با چه ترتیبی، فراخوانی کند تا کار تمام شود. n8n به یک sub-node از نوع chat model و حداقل یک sub-node از نوع tool متصل نیاز دارد.
یک ساختار مشخص — یک دستیار عملیاتی که به سوال "چه چیزی از کار افتاده و چرا" از مانیتورینگ شما پاسخ میدهد:
- Chat Trigger (یا webhook) — سوال وارد میشود.
- AI Agent — با یک sub-node از نوع Anthropic Chat Model تنظیم شده روی
claude-sonnet-5. Agentها برنامهریزی میکنند و فراخوانیهای ابزار را زنجیره میکنند؛ Haiku میتواند agentهای ساده تک-ابزاری را مدیریت کند، اما Sonnet وقتی تعداد ابزارها زیاد میشود، حداقل سطح منطقی است. - نود HTTP Request که به عنوان یک ابزار متصل شده است — متصل به Uptime Kuma status API یا endpoint Zabbix شما. یک ابزار HTTP دوم میتواند به هر چیز دیگری با یک REST API متصل شود.
دو تنظیم بیشتر کار را انجام میدهند. System Message در agent وظیفه را تعریف میکند: "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 را در agent (پیشفرض 10 است) روی کوچکترین عددی که کار میکند تنظیم کنید — این تفاوت بین "agent بعد از 4 فراخوانی ابزار تسلیم شد" و یک حلقه از دهها رفت و برگشت مدل است. و ساختار صورتحساب را درک کنید: هر تکرار، تمام مکالمه تا آن لحظه را مجدداً ارسال میکند — system message، سوال، و هر نتیجه قبلی ابزار — به عنوان توکنهای ورودی. یک اجرای agent با 6 تکرار میتواند به راحتی مجموعاً 20,000 توکن ورودی و 2,000 توکن خروجی داشته باشد: در قیمتهای معرفی شده Sonnet 5 حدود $0.06، و در قیمت استاندارد $3/$15 حدود $0.09 — یعنی تقریباً بیست برابر یک اجرای ساده خلاصهسازی. اگر متوجه شدید که در حال وصل کردن ابزارهای بسیار زیاد به یک agent هستید، آنجاست که running MCP servers on your VPS به معماری تمیزتر تبدیل میشود.
محدودیتهای هزینه، چون کسی نظارت نمیکند
یک workflow بدون نظارت به کنترلهایی نیاز دارد که یک انسان پشت کیبورد به طور ضمنی فراهم میکند. چهار لایه، از ارزانترین شروع میکنیم.
Max Tokens در هر نود Claude. این یک سقف خروجی سخت است. یک خلاصهساز به 300 توکن نیاز دارد، یک طبقهبندیکننده به 100. این کار بخش گرانقیمت ترازنامه ($5–$25 در هر میلیون توکن خروجی در مقابل $1–$5 برای ورودی) را محدود میکند و به عنوان یک ترمز برای خروج از کنترل عمل میکند — یک باگ در پرامپت که باعث میشود Claude زیادهگویی کند، 300 توکن هزینه دارد، نه 8,000 توکن.
مدل در هر نود. در بالا توضیح داده شد؛ این یک اهرم قیمت پنج تا ده برابری در میان محصولات فعلی است و تنظیم آن ده ثانیه زمان میبرد.
محدود کردن حلقهها. Max Iterations در agentها. یک timeout در تنظیمات workflow تا یک اجرای گیر کرده (wedged) به جای چرخیدن، متوقف شود. و در مورد Retry On Fail در هر نود مراقب باشید: این ابزار مناسب برای خطاهای گذرا است، اما تکرارها هزینه را چند برابر میکنند — Max Tries برابر با 3 با Wait Between Tries برابر با 5000 ms یعنی یک شکست مداوم، تا قبل از تسلیم شدن، تا سه بار هزینه شما را افزایش میدهد. هرگز یک retry را دور نودی که قبلاً با هزینه بالا موفق شده است، نکشید.
یک workflow خطا (error workflow) به عنوان پشتیبان. یک workflow با نود Error Trigger بسازید که نام workflow شکست خورده و خطا را در Slack ارسال کند، سپس آن را به عنوان Error Workflow در تنظیمات هر workflow هوش مصنوعی قرار دهید. حالت شکستی که این مورد شناسایی میکند، بدترین حالت است: خطای یک workflow زمانبندی شده که در هر اجرا، هر ساعت، برای یک هفته رخ میدهد — هر اجرا توکنها را میسوزاند تا زمانی که متوقف شود. آن را با یک محدودیت هزینه ماهانه در Anthropic Console جفت کنید و در چند روز اول پس از فعالسازی هر چیز زمانبندی شده، صفحه usage در 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 باطل شده است یا اینکه یک restore از volume به اعتبارنامهای که با یک N8N_ENCRYPTION_KEY متفاوت رمزگذاری شده، بازگشته است.
اجراها در دستههای بزرگ با خطای 429 rate_limit_error شکست میخورند، با پیامی شبیه به "Number of request tokens has exceeded your per-minute rate limit." محدودیتهای نرخ (rate limits) در بستههای یک دقیقهای هستند و n8n بسیار راحت اجازه میدهد پنجاه اجرای webhook یا RSS همزمان اجرا شوند. آن را به صورت ساختاری اصلاح کنید: آیتمها را به صورت متوالی (Loop Over Items) پردازش کنید تا نه موازی، و Retry On Fail را با Max Tries برابر با 3 و Wait Between Tries در حداکثر 5000 ms تنظیم کنید — n8n آن فیلد را در 5000 ms محدود میکند. وقتی به یک وقفه طولانیتر نیاز دارید تا تکرارها در پنجره دقیقه بعدی قرار بگیرند، یک نود Wait در مسیر خطا قرار دهید یا آیتمها را یکی یکی پردازش کنید. پاسخ شامل یک header از نوع 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 را در پرامپت شما جایگذاری میکند، و Claude با اشتیاق به پرامپتی درباره هیچ پاسخ میدهد. اگر نود مرجع اصلاً اجرا نشده باشد، پیام "Referenced node is unavailable" را دریافت میکنید، اما یک فیلد مفقود شده بیصدا است. قبل از فعالسازی، همیشه یک بار با داده واقعی اجرا کنید و پرامپت واقعی رندر شده را در پنل ورودی نود بخوانید — ویرایشگر عبارت، مقدار حل شده را پیشنمایش میدهد و undefined درست در آنجا است اگر نگاه کنید.
FAQ
چگونه Claude را به n8n متصل کنم؟
یک API key در Anthropic Console در platform.claude.com بسازید، سپس در n8n یک اعتبارنامه از نوع Anthropic اضافه کنید و آن را در فیلد API Key بچسبانید. هر نود Claude — هم نود اپلیکیشن Anthropic و هم sub-node Anthropic Chat Model — به آن اعتبارنامه ذخیره شده ارجاع میدهد. n8n آن را با N8N_ENCRYPTION_KEY رمزگذاری میکند، بنابراین آن کلید را backup کنید وگرنه اعتبارنامههای شما با volume از دست میروند.
هزینه یک workflow هوش مصنوعی در هر اجرا چقدر است؟
توکنها را در هر اجرا تخمین بزنید، سپس در قیمتهای هر میلیون مدل ضرب کنید — تا جولای 2026، Haiku 4.5 با قیمت $1/$5 برای هر میلیون توکن ورودی/خروجی و Sonnet 5 با قیمت $3/$15 ($2/$10 در دوره معرفی تا August 2026) است. یک خلاصهسازی webhook در Haiku حدود یک چهارم یک سنت هزینه دارد؛ اجرای یک agent در Sonnet با چندین فراخوانی ابزار، به حدود $0.06–$0.10 نزدیک میشود زیرا هر تکرار، کل مکالمه را به عنوان ورودی مجدداً ارسال میکند. به جای اعتماد به تخمینها، اجرا را در صفحه usage در Console بررسی کنید.
از کدام مدل Claude برای اتوماسیونهای n8n استفاده کنم؟
Haiku 4.5 برای طبقهبندی، استخراج، خلاصهسازی و مسیریابی — کارهای با حجم بالا که در آن سرعت و قیمت اهمیت دارند. Sonnet 5 برای نودهای AI Agent و استدلالهای چند مرحلهای. Opus 4.8 فقط در جایی که یک پاسخ اشتباه به اندازه کافی گران است که قیمت لیست $5/$25 آن را توجیه کند — پنج برابر Haiku، کمی کمتر از دو برابر Sonnet. مدل را برای هر نود تنظیم کنید، نه برای کل workflow — یک workflow میتواند هر سه را ترکیب کند.
چگونه از زیادهروی در هزینه n8n در Claude API جلوگیری کنم؟
محدودیتها را لایه لایه اعمال کنید: یک Max Tokens پایین در هر نود Claude، Max Iterations در agentها، یک timeout برای workflow، و تنظیمات محافظهکارانه Retry On Fail تا شکستها باعث چند برابر شدن هزینه توکن نشوند. سپس یک workflow Error Trigger اضافه کنید که وقتی هر workflow هوش مصنوعی شکست خورد به شما در Slack هشدار دهد، و یک محدودیت هزینه ماهانه در Anthropic Console به عنوان سقف نهایی که هیچچیز در VPS نمیتواند آن را دور بزند، تنظیم کنید.
آیا فراخوانی ابزارهای AI Agent هزینه اضافی دارد؟**
هزینه جداگانهای برای ابزار وجود ندارد، اما ابزارها رایگان نیستند: هر نتیجه ابزار به عنوان توکن ورودی به مدل بازگردانده میشود، و هر تکرار agent، کل مکالمه تا آن لحظه را مجدداً ارسال میکند. یک پاسخ API پرحجم که بدون فیلتر کردن ارسال شود، میتواند از پرامپت اصلی شما بسیار بزرگتر باشد — گزینه Optimize Response را در ابزارهای HTTP Request فعال کنید و فقط فیلدهایی را که agent نیاز دارد برگردانید.