اجرای Hermes Agent روی VPS ارزان 5 دلاری
برای اجرای Hermes Agent نیازی به GPU ندارید چون مدل در جای دیگری پردازش میشود. با تنظیم ProtectSystem=strict در systemd و پیکربندی UFW برای IPv6، ایجنت خود را ایمن کنید.
Hermes Agent چیست
Hermes Agent یک ایجنت هوش مصنوعی خودمیزبان (self-hosted) از Nous Research است که در فوریه 2026 منتشر شد. شما آن را روی سرور شخصی خود اجرا میکنید؛ این ایجنت حافظهای پایدار از پروژههای شما نگه میدارد، در حین کار مهارتهای قابلاستفادهٔ مجدد برای خود مینویسد و از طریق اپلیکیشنهای چت مانند Telegram و Discord با شما در ارتباط است. این ابزار مدل-آگنوستیک (model-agnostic) است، بنابراین میتوانید آن را به هر مدل زبانی که ترجیح میدهید متصل کنید. Hermes Agent به اندازهای سبک است که روی یک VPS با قیمت 5 دلار، در Docker یا از طریق SSH اجرا شود. این جداسازی—که در آن مدل در جای دیگری اجرا میشود و حلقهٔ پردازش، ابزارها و حافظه روی سیستم شما قرار دارند—همان چیزی است که Hermes را به یک harness ایجنت تبدیل میکند، نه یک مدل؛ و به همین دلیل است که یک سرور کوچک برای اجرای آن کافی است.
مانند هر ایجنت دیگری، ارزش آن در انجام کارها به نمایندگی از شما نهفته است و به همین دلیل باید آن را با دقت پیکربندی کنید. ایجنتی که به خاطر میسپارد، یاد میگیرد و وظایف را اجرا میکند، یک پردازش دائمی با دسترسی واقعی به سرور شماست. این راهنما آن را به روشی ایمن نصب میکند و hardening (سختسازی) ارائه شده در اینجا، مشابه همان مواردی است که برای اجرای ایمن OpenClaw اعمال میکنید.
نصب با یک دستور، و دلیل اولویت مطالعه آن
نصب Hermes با یک دستور انجام میشود:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashاین روش راحت است و الگویی است که ارزش رعایت کردن دارد. پایپ کردن مستقیم یک اسکریپت از اینترنت به داخل یک shell، هر آنچه در آن اسکریپت باشد را با دسترسی کاربری که آن را اجرا کرده است، به اجرا در میآورد. پیش از اجرای آن روی یک سرور واقعی، ابتدا آن را دانلود کنید، مطالعهاش کنید و به جای کاربر root، آن را با یک کاربر اختصاصی اجرا کنید:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o hermes-install.sh
less hermes-install.shاین موضوع به معنای بیاعتمادی به Hermes به طور خاص نیست. این عادتی است که باعث میشود هر نصب curl | bash به آرامی به ضعیفترین حلقه در پیکربندی شما تبدیل نشود.
اجرای برنامه با یک کاربر بدون دسترسی ویژه
برنامه Hermes را با حساب کاربری سیستمی مخصوص به خودش اجرا کنید و هرگز آن را با کاربر root اجرا نکنید تا در صورت بروز باگ یا دستور مخرب، دسترسی به سایر بخشهای سیستم محدود بماند. یک کاربر بدون shell ورود ایجاد کنید:
sudo useradd --system --home /opt/hermes --shell /usr/sbin/nologin hermesHermes را در /opt/hermes نصب کنید و مالکیت آن را به همان حساب بدهید. نصبکننده رسمی برای کاربری نصب میکند که آن را اجرا کرده است؛ بنابراین اسکریپتی را که دانلود کردهاید با کاربر hermes اجرا کنید، برای مثال با sudo -u hermes bash hermes-install.sh. در این صورت فایلها بهجای دایرکتوری خانگی شما، در دایرکتوری خانگی همان حساب قرار میگیرند. دلیل این کار همان دلیلی است که در اجرای سرویسها با کاربر غیرمجاز توضیح داده شد: حسابی که agent با آن اجرا میشود، سقف خسارتی را که میتواند ایجاد کند تعیین میکند. حساب کاربری سیستم فقط نیمی از ماجراست، زیرا تنظیمات خود agent نیز تعیین میکنند که بدون درخواست تأیید، چه مقدار عملیات انجام دهد. این همان پرسشی است که حالتهای مجوز Claude Code به آن میپردازند؛ بهویژه زمانی که agent روی سیستمی اجرا میشود که مقابل آن حضور ندارید. اگر این سیستم در نهایت قرار باشد به بیش از یک کاربر سرویس بدهد، OneCLI ایدهٔ یک حساب برای هر agent را به کل تیم گسترش میدهد: هر فرد agent sandboxشدهٔ خود را دارد و کلیدهای مدل در یک gateway واحد نگهداری میشوند؛ بنابراین هیچکس مجبور نیست آنها را در سیستمهای مختلف کپی کند.
ایمنسازی سرور با فایروال و جداسازی اسرار
Hermes وظایف خود را با برقراری ارتباط با یک مدل و برنامههای چت متصلشده انجام میدهد، بنابراین نیازی به پذیرش اتصالات ورودی از اینترنت ندارد. یک فایروال با سیاست پیشفرض deny در مقابل سرور قرار دهید:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableمراقب شکاف فایروال IPv6 باشید، زیرا مجموعهقوانینی که فقط IPv4 را پوشش میدهد میتواند یک سرویس را روی IPv6 در معرض دسترسی قرار دهد. اگر agent باید به چیزی دسترسی پیدا کند که فقط در شبکه خانگی شما وجود دارد، مانند NAS یا یک پایگاهداده محلی، اعلام آن شبکه به tailnet با subnet router این دسترسی را از طریق یک اتصال خروجی برقرار میکند، نه از طریق یک پورت ورودی باز. کلید API مدل و هر token مربوط به chat را در فایلی قرار دهید که فقط کاربر hermes بتواند آن را بخواند (mode 600)، و آن را در سرویس بارگذاری کنید؛ آن را در خط فرمان paste نکنید، زیرا در shell history ذخیره میشود. چنین فایل secrets همان هدف کوچک و ارزشمندی است که admin token در یک password manager خودمیزبان دارد، و استدلال مطرحشده در فرآیند hardening مربوط به Vaultwarden در اینجا نیز کاربرد دارد: از تنها فایلی که همهچیز دیگر را باز میکند محافظت کنید و از backupهای آن نیز به همان اندازه دقیق محافظت کنید. مجوزهای فایل مانع دسترسی کاربران دیگر روی همان host میشوند، اما مانع provider زیرساخت آن نمیشوند؛ بنابراین اگر کلیدهایی که agent در اختیار دارد آنقدر حساس هستند که این ملاحظه را تغییر دهند، حافظه رمزنگاریشده و attestation مشخص میکنند که آیا شرکت hosting شما میتواند آنها را از RAM بخواند یا نه.
اجرای Hermes به عنوان یک سرویس systemd امنشده
یک unit در systemd باعث میشود Hermes پس از خروج شما از سیستم و پس از reboot همچنان در حال اجرا باقی بماند، در صورت crash آن را restart کند و به شما اجازه میدهد sandboxing در سطح kernel را اضافه کنید تا دسترسیهای آن محدود شود. گزینههای NoNewPrivileges، ProtectSystem=strict، PrivateTmp و ProtectHome را فعال کنید تا در صورت بروز نفوذ، دامنهٔ آسیب محدود باقی بماند.
یک unit امنشده در اینجا تولید کنید و سپس آن را در /etc/systemd/system/hermes.service کپی کنید. این unit برنامهٔ hermes gateway را اجرا میکند که یک process طولانیمدت برای اتصال برنامههای چت شماست؛ پیش از فعالسازی سرویس، hermes --help را پس از نصب اجرا کنید تا از صحت دستور و مسیر binary در نسخهٔ خود مطمئن شوید:
دستورالعملها و مراحل daemon-reload و enable --now در اجرای یک برنامه به عنوان سرویس systemd پوشش داده شدهاند:
sudo systemctl daemon-reload
sudo systemctl enable --now hermesبرای مشاهدهٔ یک نمونهٔ عملی از همین الگو روی یک agent دیگر، اجرای dsh به صورت headless تحت systemd زمان بیشتری را صرف قوانین Restart و دستورات journalctl میکند که در اولین باری که سرویس در طول شب از کار میافتد، به آنها نیاز خواهید داشت. بهتر از آن، تا صبح منتظر نمانید تا متوجه شوید: یک unit از نوع OnFailure= که هشدار را به سرور ntfy شخصی شما ارسال میکند، در لحظهای که Hermes از restart کردن دست میکشد، یک اعلان روی گوشی شما نمایش میدهد.
اگر ترجیح میدهید systemd به جای نصب native، یک container را مدیریت کند، زنده نگهداشتن KiroCrew به عنوان یک container ثابت به همان نتیجهٔ پایداری پس از reboot میرسد، با این تفاوت که نسخهٔ image را نیز ثابت نگه میدارد.
ایمنسازی سرور پیرامون آن
در نهایت، با ایمنسازی درگاه ورودی کار را به پایان برسانید. مطابق راهنمای ایمنسازی SSH روی VPS، احراز هویت SSH را فقط به کلید محدود کنید و ورود کاربر root را غیرفعال نمایید تا امکان حدس زدن حساب کاربری که برای مدیریت سرور استفاده میکنید، از بین برود. عاملی که حافظهٔ دائمی دارد ارزش محافظت را دارد و ارزانترین راه محافظت، اطمینان از این است که هیچکس نتواند به سروری که عامل روی آن قرار دارد وارد شود.
هنگامی که خود سرور قفل شد، قابلیتی که اکثر افراد در مرحلهٔ بعد اضافه میکنند جستجوی وب است و اتصال عامل به نمونهٔ SearXNG شخصی باعث میشود آن پرسوجوها روی سرور خودتان باقی بمانند، هرچند به قیمت تغذیهٔ آن با صفحاتی که توسط کسی بررسی نشدهاند. Hermes بهندرت تنها عامل موجود روی سرور است و اگر Claude Code را نیز در آنجا اجرا میکنید، دو نشست میتوانند کارها را مستقیماً به یکدیگر واگذار کنند بهجای اینکه هر انتقال را از طریق شما مسیریابی کنند. اگر عامل بعدی که اضافه میکنید عاملی است که بهجای برنامههای چت، کدهای شما را میخواند، اجرای اسکنهای امنیتی open-kritt روی همان سرور از الگوی مشابهی پیروی میکند: یک نسخهٔ ثابت (pinned release)، حساب کاربری اختصاصی و یک رابط کاربری وب که بهجای باز کردن پورت، از طریق تونل SSH به آن دسترسی پیدا میکنید.
اگر ترجیح میدهید بهجای اجرای یک عامل بستهبندیشده، سازوکار آن را درک کنید، ساخت عامل هوش مصنوعی شخصی روی VPS این مسیر را گامبهگام توضیح میدهد. اگر اصطلاحات موجود در آن راهنما هنوز برایتان جدید است، مسیر مرحلهبندیشده برای یادگیری عاملهای هوش مصنوعی حلقه، ابزارها، حافظه و ایمنی را به ترتیبی که بر پایهٔ یکدیگر ساخته میشوند بررسی میکند تا تصمیماتی که Hermes برای شما میگیرد دیگر شبیه به جادو به نظر نرسند.
FAQ
آیا میتوانم Hermes Agent را روی یک VPS ارزانقیمت اجرا کنم؟
بله. Hermes برای اجرا روی سرورهای کوچک طراحی شده است و یک VPS با قیمت 5 دلار برای یک ایجنت شخصی که همیشه روشن باشد، کافی است. این برنامه بهجای سرویسدهی به ترافیک سنگین، با یک مدل زبانی و اپلیکیشنهای چت شما در ارتباط است، بنابراین از نظر منابع بسیار سبک است. کافی است یک کاربر اختصاصی برای آن بسازید، فایروال را تنظیم کنید و یک سرویس systemd برای آن تعریف کنید؛ یک VPS کوچک بهراحتی از پس آن برمیآید. اگر در خانه دستگاهی دارید، ابتدا سختافزار و هزینههای برق آن را با آن هزینه ماهانه مقایسه کنید، زیرا یک سرور Proxmox خانگی و یک VPS اجارهای هر کدام در زمینههای متفاوتی برتری دارند.
آیا اجرای اسکریپت نصب تکخطی ایمن است؟
نصب با curl | bash راحت است، اما عادت ایمن این است که اسکریپت را دانلود کرده و پیش از اجرا آن را بخوانید، و همچنین آن را بهجای root با یک کاربر اختصاصی اجرا کنید. به این ترتیب، یک نصبکننده که از طریق pipe اجرا میشود، در هیچ پروژهای نمیتواند فراتر از دسترسیهای آن حساب کاربری محدود عمل کند. این موضوع مختص Hermes نیست؛ بلکه یک رویه استاندارد برای هر نوع نصب مشابه است.
چگونه Hermes را بدون دسترسی root اجرا کنم؟
یک کاربر سیستمی اختصاصی بدون shell ورود ایجاد کنید، Hermes را در دایرکتوری متعلق به همان کاربر مانند /opt/hermes نصب کنید و سرویس را با همان حساب کاربری اجرا نمایید. اگر ایجنت روزی دچار نفوذ شود، خسارت تنها به آنچه آن حساب کاربری به آن دسترسی دارد محدود خواهد بود.
چگونه Hermes را پس از خروج از سیستم (logout) فعال نگه دارم؟
آن را به عنوان یک سرویس systemd اجرا کنید. یک فایل unit باعث میشود Hermes هنگام بوت سیستم شروع به کار کند، در صورت کرش کردن دوباره راهاندازی شود و پس از پایان نشست SSH شما همچنان فعال بماند؛ در حالی که گزینههای sandboxing در systemd محدودیتهایی برای دسترسیهای آن پردازش اعمال میکنند. یک unit امن با ابزار بالا تولید کنید و آن را با systemctl enable --now hermes فعال نمایید.
آیا Hermes Agent به GPU نیاز دارد؟
خیر. Hermes محیط اجرای ایجنت است، نه مدل زبانی؛ بنابراین روی یک VPS کوچک که فقط CPU دارد بهخوبی اجرا میشود. محاسبات سنگین در جایی انجام میشود که مدل اجرا میگردد، که معمولاً یک API میزبانیشده است که شما به آن متصل میشوید. اگر قصد دارید مدل را نیز روی همان دستگاه میزبانی کنید، ابعاد سرور را بر اساس نیاز مدل انتخاب کنید، نه Hermes. برای میزبانی مدل فقط با CPU، اعداد ذکر شده در راهنمای Ollama معتبر هستند.