Telefonda mesaj atabileceğin, dizüstü bilgisayarı kapattığında çalışmaya devam eden ve yeniden başlatmanın ardından kendi kendine geri gelen bir AI ajanı mı istiyorsun? Hermes Agent tam olarak bunu yapıyor: Telegram üzerinden konuştuğun bir ağ geçidi olarak çalışıyor ve doğru şekilde yapılandırdığında, bir çökme veya elektrik kesintisinden sonra kendini yeniden başlatıyor.
Aynı kurulumu iki kutuda, ucuz bir bulut VPS ve masamdaki Mac Mini'de yaptım, böylece tüm yolu hiçbir şey atlamadan yazabildim. Bu tek bir yol. Kutu, yalnızca iki yerde ne yazdığını değiştiriyor: kurulum komutu ve ağ geçidini canlı tutan kısım. Aradaki her şey aynı.
Aşağıdaki her şey kendi donanımımda çalıştı. Linux yolu, Ubuntu 24.04.4 LTS üzerinde bir Hetzner CX23 (x86, 2 vCPU, 4GB RAM, 40GB disk) - Mac yolu ise macOS 15 üzerinde bir Mac Mini M4. Her ikisi de Hermes Agent v0.16.0 sürümünü çalıştırdı.
sonunda neye sahip olacaksın
- Hermes Agent, root değil normal bir kullanıcı olarak çalışıyor
- Telefonundan mesaj attığın, yalnızca senin hesabına kilitli bir Telegram botu
- Yönetilen bir hizmet olarak çalışan ağ geçidi, böylece bir çökme veya yeniden başlatmadan sonra geri gelir
- VPS'de, güçlendirilmiş bir kutu: yalnızca anahtarlı ssh, root girişi yok, bir güvenlik duvarı
kutunu seç
Bir VPS en ucuz yoldur. 4GB RAM ve yaklaşık 20GB boş disk alanına sahip herhangi bir x86 kutu bunu çalıştırır; benimki ayda 7,79$'lık bir Hetzner CX23 (Hetzner ABD fiyatlandırması, 2026-06-18). Kiralarsın ve tanımı gereği her zaman açıktır.
Zaten sahip olduğun bir Mac diğer seçenektir. Güçte kalan herhangi bir Apple silikon Mac işe yarar ve modelin ötesinde işletme maliyeti sıfırdır. Ödünleşim, macOS'ta dayanıklılık katmanının daha zor olmasıdır, bunu sonunda ele alıyorum.
Kendi makinenizde bir ssh anahtarına (yoksa ssh-keygen -t ed25519), bir Telegram hesabına ve ajan için bir modele ihtiyacınız var. Bu kılavuz, OAuth olan Nous Portal'ı işaret ediyor, bu nedenle bir dosyada tutulacak API anahtarı yok. Hermes'in en az 64k bağlamı olan bir modele ihtiyacı var.
adım 1: kutuyu hazırla
bir VPS'de
Sunucuyu sağlayıcınızda oluşturun: Ubuntu 24.04, bir x86 örneği (Arm değil, maliyet notuna bakın) ve oluşturma sırasında ssh genel anahtarınızı yapıştırın.
Yeni bir genel kutuya bir ajan koymadan önce birkaç dakikalık sağlamlaştırma gerekir. Tarifteki secure-box.sh bunu tek seferde yapar: bir apt yükseltmesi, 2GB takas dosyası, anahtarınızla root olmayan bir sudo kullanıcısı, root girişi kapalıyken yalnızca anahtarlı ssh ve yalnızca ssh'ye izin veren bir güvenlik duvarı. Üstteki iki değişkeni düzenleyin, kopyalayın ve root olarak çalıştırın:
1scp secure-box.sh root@<vps-ipniz>:2ssh root@<vps-ipniz> 'bash secure-box.sh'
Bu Ubuntu imajı, kutuyu bir ssh anahtarıyla oluşturmama rağmen PasswordAuthentication'ı evet olarak ayarlamıştı. Komut dosyası onu kapatır. Root oturumunu kapatmadan önce, ikinci bir terminal açın ve yeni kullanıcının giriş yaptığını onaylayın, böylece bir hata sizi dışarıda bırakamaz:
1ssh hermes@<vps-ipniz>
Buradan itibaren hermes'siniz, root değil.
bir Mac'te
Sağlamlaştırma adımı yok. Kendi ağındaki kendi makinen, genel bir kutu değil. Yoksa Homebrew'u kurun (yükleyici bir sonraki adımda onu kullanır) ve hazırsınız.
adım 2: Hermes'i kur
Kurulum tek bir komuttur, her iki kutuda da aynıdır, normal kullanıcınız olarak çalıştırılır:
1curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash2source ~/.bashrc3hermes --version
Yükleyici işletim sisteminizi algılar ve kendi araç zincirini (uv, Python 3.11, Node.js 22, ripgrep, ffmpeg, tarayıcı araçları için bir Playwright Chromium) ~/.hermes dizinine çeker, böylece sistem Python'unuza asla dokunmaz. Hetzner kutumda Python 3.11.15 üzerinde Hermes Agent v0.16.0 sürümünü kurdu.
Bu ağır adımdır. VPS'de diski 1,2 GB kullanımdan 7,8 GB'a çıkardı, yaklaşık 6,6 GB, çoğu tarayıcı motoru ve Node. 20 GB boş alan planlayın ve endişelenmeyi bırakın. Terminali olmayan düz bir ssh komutu üzerinden çalıştırın, yükleyici "Kurulum sihirbazı atlandı (terminal mevcut değil)" yazdırır, bu sorun değil, kurulum bir sonraki adımdır.
Bir Mac'te aynı komut çalışır, ancak bir pürüz vardır: önce Homebrew'u kurun. Homebrew mevcut olduğunda, yükleyici git ve bağımlılıklarını istemsiz olarak çeker. Olmadan, tıklamanız gereken bir macOS iletişim kutusu açabilen Apple'ın Komut Satırı Araçları'na geri döner ve bir iletişim kutusu ssh üzerinden iyi değildir (bu, yükleyicinin macOS dalındadır). Bundan sonra yukarıdakiyle aynı akıştır.
adım 3: bir modele yönlendir
1hermes setup --portal
Bu, Nous Portal'a karşı OAuth'dur: bir URL ve bir kod yazdırır, tarayıcıda onaylarsınız ve şimdi kutu, bir dosyada API anahtarı olmadan bir modelle konuşur. Nous Portal'ın ücretsiz bir katmanı vardır ve her şeyi ücretsiz bir modelde çalıştırdım. Kendi sağlayıcınızı getirmeyi tercih ederseniz, hermes model komutunu çalıştırın ve birini seçin; anahtar daha sonra ~/.hermes/.env dosyasında yaşar.
adım 4: onunla konuş
bir VPS'de
Ssh'niz düştüğü anda, bir ön plan oturumu onunla birlikte ölür. tmux oturumu canlı tutar: tmux içinde başlatın, ayırın ve çalışmaya devam eder.
1sudo apt-get install -y tmux2tmux new -s hermes # sonra, içinde: hermes
Ctrl-b ve ardından d ile ayırın ve daha sonra her yerden yeniden bağlanın:
1ssh hermes@<vps-ipniz>2tmux attach -t hermes
Etkileşimli ajanın ilk başlatılması biraz zaman alır. Benimki, istem görünmeden önce modeli ve becerileri yüklemek için yaklaşık 30 saniye harcadı. Çalışır duruma geldiğinde, eğik çizgi komutları çalışır.
/goal göstermeye değer olanıdır: ajanın turlar boyunca üzerinde çalıştığı kalıcı bir hedef belirler ve her turdan sonra bir yargıç modeli hedefin tamamlanıp tamamlanmadığını kontrol eder.
1/goal check this box total RAM and free disk using shell tools, then report both on one line and mark the goal done
Benimki kabuk komutunu kendisi çalıştırdı ve yaklaşık 15 saniye içinde "VPS toplam RAM: 3.7Gi, boş disk alanı: 28G" ile geri döndü. Bu, ajanın kendi araçlarını kullanmasıdır.
İki fikri birbirinden ayırın: tmux, düşen bir ssh bağlantısı boyunca etkileşimli bir oturumu açık tutar, ancak yeniden başlatma boyunca değil. Yeniden başlatmadan kurtulan, gözetimsiz bir ağ geçidi için, yönetilen bir hizmet istersiniz, bu da 6. adımdır.
bir Mac'te
Makinenin başında oturuyorsunuz, bu nedenle hermes'i bir terminalde çalıştırabilirsiniz. Dizüstü bilgisayarınızdan ssh yaparsanız tmux yine de yardımcı olur, ancak burada isteğe bağlıdır.
adım 5: Telegram ağ geçidi
Bu kısım her iki kutuda da aynıdır. Bir bot oluşturun: Telegram'da @BotFather'a mesaj atın, /newbot gönderin ve belirteci kopyalayın. @userinfobot'tan sayısal kullanıcı kimliğinizi alın. Ardından ağ geçidini yapılandırın:
1hermes gateway setup
Telegram'ı seçin, belirteci yapıştırın ve yalnızca sizin onunla konuşabilmeniz için izin verilen kullanıcıları sayısal kimliğinize ayarlayın. Belirteç ~/.hermes/.env dosyasına, geri kalanı ~/.hermes/gateway.json dosyasına gider.
Kurulum yalnızca yapılandırmayı yazar. Hiçbir şey başlatmaz, bu nedenle bot sessiz kalır ve bu insanları şaşırtır: henüz hiçbir şey Telegram'ı yoklamıyor. Bağlandığını kontrol etmek için bir kez ön planda başlatın:
1hermes gateway run
Günlükte şunu görmek istersiniz:
1gateway.run: Connecting to telegram...2[Telegram] Connected to Telegram (polling mode)3gateway.run: ✓ telegram connected
Yoklama modu, ağ geçidinin Telegram'a ulaştığı anlamına gelir; kutunuza hiçbir şey bağlanmaz, bu nedenle güvenlik duvarının ssh dışında gelen bir bağlantı noktasına ihtiyacı yoktur. Botunuza mesaj atın; yanıtlamalıdır. Ardından ön plan ağ geçidini Ctrl-C ile durdurun, çünkü aynı anda iki şey aynı belirteci yoklayamaz ve bir sonraki adım onu bir hizmet olarak çalıştırır.
adım 6: yeniden başlatmadan kurtulmasını sağla
Bu, iki kutunun ayrıştığı tek yerdir.
bir VPS'de: systemd
hermes gateway install, ağ geçidini bir systemd hizmeti olarak kaydeder, böylece çökme durumunda yeniden başlar ve yeniden başlatmadan sonra geri gelir. Bu sürümde yükleyici iki [Y/n] sorusu sorar ve bunları atlamak için bir bayrak yoktur. Bir kutuyu komut dosyasıyla oluştururken doğal olan etkileşimli olmayan bir ssh komutu üzerinden çalıştırın ve yanıt alamaz, iptal eder ve hiçbir şey kurmaz. Cevapları stdin'de besleyin:
1printf 'n\nY\n' | hermes gateway install
İki soru "ağ geçidini şimdi başlat?" ve "oturum açma/başlatmada otomatik olarak başlat?" şeklindedir. n ve ardından Y şunu söyler: bu saniye başlatma, ancak önyüklemede etkinleştir. Yükleyici ayrıca, bir kullanıcı hizmetinin oturum açmadan önce çalışmasına izin veren kullanıcı oturumu kalıcılığını da açar. Bunu onaylayın, çünkü "yeniden başlatmadan kurtulur" ifadesini yalnızca "oturumu kapatmadan kurtulur" değil de doğru yapan şey budur:
1loginctl show-user $USER -p Linger # istenen: Linger=yes
Başlatın ve kontrol edin:
1hermes gateway start2systemctl --user status hermes-gateway
active (running) ve NRestarts=0 istiyorsunuz. Kutumda ağ geçidi yaklaşık 280MB kullandı ve tüm makine yaklaşık 556MB'de kaldı, 4GB'da rahat.
Şimdi gerçek test. Yeniden başlatın ve dokunmayın:
1sudo reboot
Benimki yaklaşık 15 saniye içinde geri geldi, ağ geçidi kendi kendine başladı, Telegram'a yeniden bağlandı ve yeniden başlatmadan önceki konuşma geçmişi bozulmamış olarak bir sonraki mesajı yanıtladı. Bütün mesele bu.
bir Mac'te: launchd ve bir bekçi köpeği
macOS, systemd değil launchd kullanır ve bir tuzak vardır. macOS 15 ve Hermes v0.16.0'da, hermes gateway start, launchd hizmetini kaydedemeyebilir ve size söylemeden, denetimsiz bir arka plan işlemine geri dönebilir. Bunu görürsünüz:
1Bootstrap failed: 5: Input/output error2⚠ launchd cannot manage the gateway on this macOS version (launchctl exit 5)3✓ Started gateway as a background process instead4 It will NOT auto-start at login or auto-restart on crash.
Daha önce çalışan bir launchd işiniz varsa, komut onu kaldırdı ve geri dönüş, ilk çökme veya yeniden başlatmaya kadar sorunsuz çalışır, ardından ajanınız size söyleyecek hiçbir şey olmadan gider. Ham launchctl, cli'nin başarısız olduğu yerde, ssh üzerinden de dahil olmak üzere çalışır:
1launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.hermes.gateway.plist2launchctl print gui/$(id -u)/ai.hermes.gateway | grep state # istenen: state = running
plist, ağ geçidini oturum açmada başlatır, ancak çökme durumunda yeniden başlatmaz. Bir cron bekçi köpeği her iki boşluğu da kapatır ve cron, oturum açmaya gerek kalmadan önyüklemede çalışır. Tarif, gateway-watchdog.sh dosyasını gönderir; ağ geçidi işleminin canlı olup olmadığını her 5 dakikada bir kontrol eder ve değilse yeniden başlatır. Bir zamanlamaya yükleyin:
1(crontab -l 2>/dev/null; echo '*/5 * * * * $HOME/scripts/gateway-watchdog.sh >/dev/null 2>&1') | crontab -
Bu dizinin kendi Mac Mini'mde düşürülmüş bir ağ geçidini kurtardığını izledim. Yeniden başlatın ve ağ geçidinin oturum açmadan beş dakika içinde geri döndüğünü onaylayın.
kurulumunu doğrula
- Hizmet çalışıyor: Linux'ta systemctl --user status hermes-gateway (active (running)) veya macOS'ta launchctl print gui/$(id -u)/ai.hermes.gateway | grep state (state = running)
- Botuna mesaj at: sana yanıt verir ve izin verilen kullanıcılarında olmayan herkesi yok sayar
- Linux'ta, loginctl show-user $USER -p Linger, Linger=yes okur
- Kutuyu yeniden başlat, bekle, tekrar oturum açmadan botuna mesaj at: yanıtlar
maliyet
VPS'de, kutu tek harcamadır. Benimki saatte 0,012$'lık bir Hetzner CX23, ayda en fazla 7,79$ (Hetzner ABD fiyatlandırması, 2026-06-18; AB CX22 aynı şekle sahiptir ve daha ucuzdur).
Mac'te, zaten sahip olduğun bir makinedir, sıfır ekstra hizmet. Model her iki durumda da Nous Portal'ın ücretsiz katmanında ücretsizdir.
Burada bellek sınır değildir: ağ geçidi yaklaşık 280MB, tüm kutu yaklaşık 556MB kullandı, bu nedenle 1GB RAM yeterlidir. Disk gerçek sınırdır: kurulum yaklaşık 6,6GB'dir, bu nedenle 1GB veya 10GB'lık bir görüntü dardır, 20GB verin. Ve x86 kullanın, güvenli seçimdir.
kendin çalıştır ve sırada ne var
Her iki kutuda da tam tarif, olduğu gibi çalıştırılabilir komut dosyalarıyla birlikte:
- VPS yolu: cheap-vps
- Mac yolu: mac-mini-24-7
Artık Telegram'da yeniden başlatmadan kurtulan, her zaman açık bir ajanınız var.
Bir sonraki Flightplan bunun üzerine inşa edilir: yalnızca bir şey önemli olduğunda size mesaj atan zamanlanmış işler, ajanın okuyup yazdığı git ile senkronize bir çalışma alanı ve her genel eylemde bir insanı tutan taslak ve onay akışı.
okuduğun için teşekkürler





