Kako poskrbeti, da Hermes Agent na strežniku deluje ves čas
MarkdownKako poskrbeti, da Hermes Agent na strežniku deluje 24 ur na dan: namestitev na VPS brez brskalnika, zagon gatewaya kot sistemske storitve, samodejni zagon po ponovnem zagonu, linger in Docker.
Preberi celoten članek
Po namestitvi Hermes Agenta na prenosnik se pojavi vprašanje: kdo bo odgovarjal na Telegramu in pripravljal jutranje povzetke, ko bo prenosnik zaprt? Za vašo mizo agent deluje le, dokler je računalnik vklopljen. Če želite, da je bot ves čas na spletu in da se načrtovana opravila izvajajo sama, morate agenta preseliti na strežnik.
Spodaj je opisano, kako namestiti Hermes na običajen strežnik Linux, spremeniti gateway v stalno delujočo storitev, ki se samodejno zažene po ponovnem zagonu, in omejiti dostop, da neznanci ne morejo dostopati do terminala. Ta vodnik temelji na uradni dokumentaciji.
Če Hermesa še niste namestili, začnite z ločenim pregledom kaj je ta agent in kako ga namestiti. Ta vodnik predpostavlja, da ga že uporabljate na svojem računalniku, in obravnava samo njegovo selitev na strežnik.
Informacije o uporabi Ailoota so na voljo v dokumentaciji.
Zakaj preseliti Hermes Agent s prenosnika na strežnik?
Ključne točke
Osebni računalnik deluje, dokler ste v njegovi bližini in je vklopljen. Za neprekinjeno delovanje potrebujete strežnik: bot na Telegramu odgovarja, ko je vaš računalnik izklopljen, načrtovana opravila pa se izvajajo sama. Strežnik potrebujete samo za to; za običajno delo z agentom zadostuje prenosnik.
Na prenosniku Hermes deluje le, ko je pokrov odprt in ste v bližini. Zaprite ga in bot utihne; jutranjega povzetka ne bo. To ni primerno za opravilo, kot je »odgovarjanje ljudem v aplikaciji za sporočanje in urejanje stvari po urniku«.
Prav v tem se strežnik razlikuje: nikoli ne spi in ni odvisen od ničesar drugega. Nanj namestite isti Hermes in deluje brez vas: ob treh zjutraj odgovarja na Telegramu, vsako jutro zbira novice o vaših temah in ohranja seje med zagoni.
Selitev je smiselna, kadar ima agent stalno opravilo: bot za vas ali vašo ekipo, jutranje povzetke, samodejne odgovore ali redno delo z dokumenti. Če Hermesa preizkušate za določen projekt in ste v bližini, strežnika še ne potrebujete; to je dodaten korak.
Kaj pripraviti pred namestitvijo Hermesa na VPS?
Ključne točke
Potrebujete strežnik Linux z dostopom SSH (uradna ekipa preizkuša na sveži namestitvi Ubuntuja), vnaprej izbran model in zavedanje, da agent na strežniku običajno ne potrebuje brskalnika. Za delovanje brez nadzora je najprimernejši dostop do modela prek Nous Portala: prijava OAuth se samodejno osvežuje, zato potekli žeton ponoči ne bo prekinil delovanja.
Pred namestitvijo pripravite tri stvari.
Strežnik. Zadostuje običajen Linux VPS. Dokumentacija kot osnovno raven podpore navaja Linux in WSL2, testiranje pa poteka na najnovejšem Ubuntuju. Če ima sistem glibc, systemd in običajno razporeditev map, se bo Hermes pravilno namestil. To je na strežniku pomembno, saj vsi spodnji koraki za samodejni zagon temeljijo na systemd, ki je že vključen v Ubuntu in Debian.
Dostop SSH. S terminalom se prek SSH povežete s strežnikom; tam miške ne boste uporabljali. Vse spodnje ukaze izvedete v tej seji SSH. Če uporabljate vibe-coding in terminala še ne obvladate, brez skrbi: ukazov je le nekaj, vsakega pa lahko v celoti kopirate.
Izbran model. Agent ne razmišlja sam; pokliče model. Za strežnik, ki deluje brez vas, je pomembno, da dostop do modela ne poteče. Najpreprostejša možnost je naročnina na Nous Portal prek hermes setup --portal: prijava uporablja OAuth, žeton pa se samodejno osvežuje. Delujejo tudi vaši lastni ključi API, vendar poskrbite, da bo na računu dovolj sredstev — agent brez grafičnega vmesnika in s praznim stanjem bo preprosto utihnil. Model mora imeti kontekstno okno z najmanj 64.000 žetoni, sicer ga Hermes ne bo želel zagnati. Vsi modeli v oblaku na seznamu izpolnjujejo to zahtevo.
Opomba
Uradna dokumentacija ne navaja natančnih številk za izbiro VPS ali minimalne zahteve glede virov, zato jih tukaj tudi ne navajamo. Glede na opisane izkušnje skromen računalnik zadostuje za gateway z botom in urnikom, saj se zahtevno računanje izvaja na strani modela. Strežnik sam je zelo malo obremenjen. Avtomatizacija brskalnika je najzahtevnejši del, vendar na strežniku običajno ni potrebna (več o tem kmalu).
Kako namestiti Hermes Agent na strežnik z enim ukazom?
Ključne točke
Prek SSH se povežite s strežnikom in zaženite namestitveni program z zastavico, ki na strežniku preskoči brskalnik: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser. Nato znova zaženite lupino terminala in izberite model z ukazom hermes setup --portal. Namestitev preverite z ukazom hermes doctor.
Namestitev na strežnik je skoraj enaka kot na prenosnik, z eno razliko: agent tam običajno ne potrebuje brskalnika. Avtomatizacija brskalnika poleg tega namesti zajetni Chromium. Zato uporabite zastavico --skip-browser.
Povežite se s strežnikom prek SSH
ssh root@your-server-addressVse naslednje ukaze izvedite v tej seji neposredno na strežniku.
Zaženite namestitveni program brez brskalnika
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browserSkript prenese potrebno okolje in namesti ukaz
hermes. Zastavica--skip-browserpreskoči namestitev avtomatizacije brskalnika; na strežniku brez grafičnega vmesnika bi ta samo zasedala prostor. Če boste brskalnik potrebovali pozneje, ga lahko namestite ločeno.Znova zaženite lupino in izberite model
source ~/.bashrc hermes setup --portalPrva vrstica naloži novo vrednost
PATH, da lahko najdete ukazhermes. Druga odpre prijavo v Nous Portal: potrdite prijavo in agent dobi dostop do modela in storitev brez ločenih ključev za vsako od njih.Preverite namestitev
hermes doctorUkaz prikaže, kaj je nameščeno, kaj manjka in kako to odpraviti. Zelene oznake pomenijo, da je vse pripravljeno.
Preden dodate bot in urnik, poskrbite, da na strežniku neposredno deluje en nemoten pogovor: zaženite hermes in mu dajte preprosto opravilo z odgovorom, ki ga je mogoče preveriti. Dokumentacija izrecno odsvetuje dodajanje funkcij, preden deluje običajen pogovor — to je dober nasvet.
Kako poskrbeti, da Hermes deluje ves čas?
Ključne točke
Najprej nastavite gateway z ukazom hermes gateway setup in povežite Telegram. Nato gateway z enim ukazom spremenite v storitev: hermes gateway install namesti uporabniško storitev, sudo hermes gateway install --system pa sistemsko storitev, ki se zažene ob zagonu strežnika. Za uporabniško storitev uporabite hermes gateway start, stop in status. Za sistemsko storitev VPS pri vsakem preverjanju in spremembi ohranite izrecni obseg --system ter potrebne pravice.
Gateway je en sam Hermesov proces v ozadju, ki vzdržuje povezave z vsemi aplikacijami za sporočanje, upravlja seje in izvaja načrtovana opravila. Vse neprekinjeno delovanje je odvisno od njega. Cilj je, da se ta proces zažene sam in ostane aktiven.
Najprej nastavite gateway in povežite aplikacijo za sporočanje:
hermes gateway setup
Čarovnik za nastavitev vas vodi skozi platforme in pomaga vnesti žeton bota ter seznam dovoljenih uporabnikov. Koraki za povezavo Telegrama (ustvarjanje bota z BotFatherjem, iskanje vašega ID-ja in vnos žetona) so opisani v glavnem vodniku za namestitev; tukaj jih ne bom ponavljal.
Sledi past, ki jo ljudje najpogosteje spregledajo. Če preprosto zaženete hermes gateway, bo proces deloval samo, dokler ostane seja SSH odprta. Zaprite terminal in gateway se bo ustavil. Za neprekinjeno delovanje morate prepustiti nadzor nad njim sistemu. Za to obstaja en ukaz:
hermes gateway install
Gateway namesti kot storitev: v Linuxu kot uporabniško storitev systemd, v macOS-u pa prek launchd. Sistem spremlja proces in ga znova zažene, če se zruši.
Na strežniku boste pogosteje potrebovali drugo možnost: sistemsko storitev, ki se zažene, ko se zažene računalnik, še preden se prijavi kateri koli uporabnik:
sudo hermes gateway install --system
Točno to potrebujete za VPS: strežnik se znova zažene, storitev se zažene sama in bot je spet na spletu. Upravljajte jo s temi preprostimi ukazi:
hermes gateway start # start
hermes gateway stop # stop
hermes gateway status # check status
Za sistemsko storitev tem ukazom dodajte sudo in zastavico --system. Sicer bodo ukazi ciljali uporabniško storitev namesto tiste, ki se zažene ob zagonu računalnika:
sudo hermes gateway start --system
sudo hermes gateway stop --system
sudo hermes gateway status --system
Zakaj je potreben linger in kaj gre brez njega narobe?
Ključne točke
Če ste gateway namestili kot uporabniško storitev (brez --system), ga systemd ustavi takoj, ko zapustite SSH, in ga ob zagonu računalnika ne zažene. To odpravite z enim ukazom: sudo loginctl enable-linger username. Nato storitev deluje neodvisno od vaših prijav in odjav.
To je najpogostejša ovira: namestili ste storitev, vendar bot ponoči še vedno utihne. Razlog je način delovanja uporabniških storitev v Linuxu.
Uporabniška storitev systemd je privzeto vezana na vašo sejo. Povežete se prek SSH in zažene se vaš upravitelj uporabniških storitev; storitev začne delovati. Odjavite se, sistem pa uporabnika obravnava kot nedejavnega in zato skupaj z gatewayem zaustavi njegove storitve. Pri strežniku, v katerega se prijavljate in odjavljate, je to težava: bot je na spletu samo, ko ste povezani prek SSH.
To lahko odpravite z načinom linger, ki sistemu omogoča, da upravitelj uporabniških storitev ohranja zagnan tudi, ko uporabnik ni prijavljen:
sudo loginctl enable-linger username
Po tem ukazu uporabniška storitev deluje samostojno in se zažene ob zagonu strežnika, ne da bi čakala na vašo prijavo. Brez načina linger se vrne prvotno vedenje: gateway se ustavi, ko zapustite SSH, in se ob zagonu strežnika ne zažene. Dokumentacija to izrecno navaja.
Pozor
To ne velja za sistemsko storitev (nameščeno z ukazom sudo hermes gateway install --system): ta že deluje na ravni računalnika in se zažene ob zagonu. Linger je potreben samo za uporabniško storitev. Izberite eno možnost: sistemsko storitev ali uporabniško storitev skupaj z načinom linger.
Kako zagnati Hermes na strežniku v Dockerju s samodejnimi ponovnimi zagoni?
Ključne točke
Če vam bolj ustreza Docker, lahko Hermes ohranjate kot trajni gateway v vsebniku: docker run -d --name hermes --restart unless-stopped -v ~/.hermes:/opt/data -p 8642:8642 nousresearch/hermes-agent gateway run. Zastavica --restart unless-stopped po ponovnem zagonu znova zažene vsebnik, znotraj slike pa se znova zažene tudi proces gatewaya, če se zruši.
Docker je še en delujoč način za ohranjanje agenta na strežniku, zlasti če ste že vajeni vsebnikov ali želite agenta ločiti od glavnega sistema. Enkrat ga nastavite z docker run ... setup, nato zaženite vsebnik v ozadju:
docker run -d \
--name hermes \
--restart unless-stopped \
-v ~/.hermes:/opt/data \
-p 8642:8642 \
nousresearch/hermes-agent gateway run
Tukaj je opisano, kaj naredijo vrstice, odgovorne za neprekinjeno delovanje:
-d— vsebnik deluje v ozadju in ne zadržuje odprtega terminala.--restart unless-stopped— Docker znova zažene vsebnik po ponovnem zagonu strežnika ali sesutju. Ne zažene ga znova le, če ste ga ustavili ročno.-v ~/.hermes:/opt/data— nastavitve, ključi, seje in pomnilnik so shranjeni na strežniku zunaj vsebnika in ostanejo na voljo tudi po njegovi ponovni vzpostavitvi.
Slika doda še en varnostni ukrep: proces gatewaya se izvaja pod nadzornikom s6. Če se gateway zruši, se v nekaj sekundah znova zažene, ne da bi se pri tem izgubil vsebnik. To je dvojna zaščita: Docker od zunaj ohranja vsebnik v delovanju, s6 pa spremlja proces v njem.
Upoštevajte eno razliko pri uporabi Dockerja: te namestitve se ne posodabljajo z ukazom hermes update. Za posodobitev v Dockerju zamenjajte sliko z novo — prenesite najnovejšo in znova ustvarite vsebnik.
Kako preveriti, ali vse deluje in bo delovalo tudi po ponovnem zagonu?
Ključne točke
Stanje storitve preverite z ukazom systemctl in spremljajte sprotni dnevnik. Nato sledi najpomembnejši preizkus strežnika: znova zaženite računalnik in se prepričajte, da bot sam spet vzpostavi povezavo. Hermesove seje in odgovori se ohranijo po ponovnem zagonu; nedokončan odgovor bo poslan po obnovitvi.
Stanje uporabniške storitve in njene dnevnike preverite takole:
hermes gateway status
journalctl --user -u hermes-gateway -f
Za sistemsko storitev, priporočeno za VPS, namesto tega uporabite sistemski obseg:
sudo hermes gateway status --system
sudo journalctl -u hermes-gateway -f
Prvi ukaz preveri izbrano storitev; drugi spremlja dnevnik istega obsega. Ta imena enot veljajo za privzeto namestitev ~/.hermes. Drugi domači imeniki Hermes imajo lahko pripono v imenu enote: preglejte izpis stanja in uporabite točno navedeno enoto. Med preverjanjem sistemske namestitve ne spremljajte uporabniške enote. Hermesovi dnevniki so v ~/.hermes/logs/, skrivnosti pa se iz njih samodejno odstranijo, zato jih lahko varno pošljete podpori.
Zdaj znova zaženite strežnik in se prepričajte, da se agent sam zažene. To je glavni preizkus strežnika, na katerega ljudje najpogosteje pozabijo:
sudo reboot
Ko je strežnik znova dosegljiv, se povežite prek SSH. Pri sistemski namestitvi preverite sudo hermes gateway status --system in sistemski dnevnik; pri uporabniški namestitvi z linger preverite hermes gateway status in uporabniški dnevnik. Nato botu pošljite sporočilo na Telegramu. Če odgovori brez vašega posega, je samodejni zagon pravilno nastavljen. To je bil ves namen.
Ni vam treba skrbeti, da bi izgubili pogovor. Hermes zapisuje seje na disk in te se ohranijo tudi po ponovnem zagonu gatewaya. Poleg tega bo gateway, če se zruši ravno med pošiljanjem odgovora, po obnovitvi poslal ta odgovor, namesto da bi znova izvedel opravilo. To je pomembno za neprekinjeno delujoč bot: nepričakovan ponovni zagon ne bo prekinil pogovora.
Kako zavarovati agenta z dostopom do terminala na strežniku?
Ključne točke
Trije glavni zaščitni ukrepi: dostop do bota je privzeto zaprt (odgovarja samo osebam na seznamu), agent pred izvajanjem nevarnih ukazov zahteva potrditev, za popolno izolacijo pa agenta na strežniku zaženete v peskovniku Docker. Na strežniku je najbolje, da ne omogočite načina brez potrjevanja (YOLO).
Agent na strežniku je program z dostopom do terminala, ki deluje brez vašega nadzora. Najprej preverite te tri nastavitve.
Zaprt dostop do bota. Gateway privzeto odgovarja samo osebam s seznama za dostop ali tistim, ki so v neposrednem sporočilu opravili povezovanje s kodo. To je primerno vedenje za bot z dostopom do terminala: naključna oseba, ki mu pošlje sporočilo, ne more storiti ničesar. Seznam nastavite z numeričnimi ID-ji, na primer za Telegram:
TELEGRAM_ALLOWED_USERS=123456789,987654321
Potrditev za nevarne ukaze. Preden stori kaj uničujočega, vas agent prosi za dovoljenje. Obstaja način YOLO, ki onemogoči potrditve; najbolje je, da ga na strežniku, ki deluje brez vas, ne omogočite. Potrditve so namenjene prav preprečevanju nepovratnih dejanj brez vaše vednosti.
Peskovnik za popolno izolacijo. Če želite, da agent fizično ne more videti glavnega sistema strežnika, naj njegove ukaze izvaja v vsebniku Docker:
hermes config set terminal.backend docker
Tako se vse, kar agent počne v terminalu, dogaja v izoliranem peskovniku in ne more doseči strežnika v živo. To je smiseln varnostni ukrep, kadar agentu omogočite samostojno delovanje.
Kaj storiti, če bot molči ali se gateway zruši?
Ključne točke
Najprej preverite stanje storitve in dnevnike; najpogostejši vzroki so žeton bota, seznam za dostop ali model. Če celoten proces popolnoma zamrzne, ima storitev systemd časovnik watchdog, ki znova zažene gateway, če ta ne kaže več znakov delovanja.
Ko se bot preneha odzivati, sledite temu vrstnemu redu. Najprej preverite obseg, ki ste ga namestili: sudo hermes gateway status --system in sistemski dnevnik za sistemsko storitev ali hermes gateway status in uporabniški dnevnik za uporabniško storitev. Če gateway deluje, sporočila pa ne pridejo skozi, je skoraj vedno težava v nastavitvah platforme: žeton bota je napačen ali pa oseba ni na seznamu za dostop. Znova zaženite hermes gateway setup v istem domačem imeniku Hermes, nato izbrano storitev preverite z hermes gateway status --system za sistemsko ali hermes gateway status za uporabniško namestitev. Uspešna nastavitev ne dokazuje, da deluje pravi gateway.
Če model vrača prazne ali nenavadne odgovore, ga preverite z ukazom hermes model ter potrdite ponudnika in prijavo. Splošno zaporedje za obnovitev, ki vas iz stanja »vse je pokvarjeno« pripelje nazaj do delujočega sistema, je: hermes doctor, hermes model, hermes setup, nato hermes gateway status --system za sistemsko ali hermes gateway status za uporabniško namestitev.
Še nekaj za redek, a neprijeten primer, ko celoten proces zamrzne, ne da bi se dejansko zrušil. Storitev systemd ima časovnik watchdog: dodajte to vrstico v ~/.hermes/config.yaml in znova namestite storitev.
gateway:
systemd_watchdog_seconds: 120
# Za sistemsko storitev VPS (isti domači imenik Hermes kot pri prvotni namestitvi):
sudo hermes gateway install --system --force
sudo hermes gateway status --system
Za uporabniško storitev namesto tega obnovite samo ta obseg z hermes gateway install --force in preverite hermes gateway status. Izberite en obseg; za popravilo enega gatewaya ne nameščajte obeh.
Gateway bo nato sistemu redno sporočal: »Delujem.« Če se signali ustavijo, bo systemd samodejno znova zagnal proces. To deluje samo v Linuxu s systemd in samo pri zamrznitvi procesa. Časovnik watchdog ne vpliva na običajno prekinitev omrežne povezave med strežnikom in aplikacijo za sporočanje.
Kaj ljudje še sprašujejo o Hermes Agentu na strežniku?
Ključne točke
Kratki odgovori na pogosta vprašanja: ali je VPS izrecno potreben, ali lahko na enem računalniku deluje več botov, ali strežnik potrebuje grafični vmesnik in kaj se zgodi z načrtovanimi opravili, ko agent deluje na strežniku.
Pogosta vprašanja
Ali moram najeti VPS ali bo zadostoval moj računalnik?
Za neprekinjeno delovanje potrebujete računalnik, ki je vedno vklopljen. Vaš računalnik je primeren samo, če ste ga pripravljeni nikoli ne izklopiti. VPS je priročnejši: vedno je vklopljen in ni odvisen od tega, ali delate ali spite. Zadostuje običajen strežnik Linux — dokumentacija kot osnovno raven podpore navaja Linux, testiranje pa poteka na sveži namestitvi Ubuntuja.
Ali lahko na enem strežniku zaženem več botov?
Da. Hermes ima profile, vsak profil pa svojo storitev. Ukaz, kot je <profile> gateway install, ustvari ločeno storitev z imenom hermes-gateway-<profile>, profila pa delujeta neodvisno. Vsak profil ima svoje nastavitve, žeton bota in pomnilnik.
Ali strežnik potrebuje monitor in grafiko?
Ne. Strežnik deluje brez zaslona, upravljate pa ga prek SSH iz terminala. Avtomatizacija brskalnika za agenta na takem strežniku običajno ni potrebna, zato namestitveni program zaženite z zastavico --skip-browser; s tem odstranite edino večjo komponento, ki potrebuje grafično okolje.
Ali se bodo načrtovana opravila izvajala, ko me ne bo?
Da, zato ga preselite na strežnik. Isti gateway izvaja načrtovana opravila: urnik preveri enkrat na minuto in opravila zažene, ko so na vrsti, nato pa rezultat pošlje v isti klepet. Ker gateway kot storitev deluje neprekinjeno, se urnik izvaja sam, brez vašega sodelovanja.
Bo bot preživel posodobitev in ponovni zagon strežnika?
Da. Nastavitve, seje in pomnilnik so shranjeni v mapi ~/.hermes in se ne izgubijo. Po ponovnem zagonu sistemska storitev (ali Docker z nastavitvijo --restart unless-stopped) sama zažene gateway. Nedokončan odgovor bo dostavljen po ponovnem zagonu in nič se ne bo izgubilo — če pa je bilo pošiljanje odgovora ob sesutju že na polovici, lahko prispe še enkrat z obvestilom o možni podvojitvi.
Viri
Spoznajte Ailoot.
Več podrobnosti
Vprašanja in odgovori: Kako poskrbeti, da Hermes Agent na strežniku deluje ves čas
Zakaj je lahko gateway videti ustavljen po namestitvi kot sistemska storitev?
Preverjanje brez obsega lahko cilja drugo storitev. Za sistemsko namestitev uporabite hermes gateway status --system in njen sistemski dnevnik; stanje brez zastavice in uporabniški dnevnik uporabite le za uporabniško storitev. Ves čas ohranite isti domači imenik Hermes.
Ali sistemska storitev VPS potrebuje loginctl linger?
Ne. Linger je namenjen uporabniški storitvi systemd, ki mora preživeti odjavo in se zagnati ob zagonu računalnika. Sistemska storitev se že zažene ob zagonu; izberite en namestitveni obseg ter po ponovnem zagonu ponovite preverjanje njegovega stanja in odgovora bota.