Blog

Sådan holder du Hermes Agent kørende på en server døgnet rundt

Markdown

Sådan holder du Hermes Agent kørende på en server døgnet rundt: installation på en VPS uden browser, kørsel af gatewayen som en systemtjeneste, automatisk start efter en genstart, linger og Docker.

Læs hele artiklen

Efter at have installeret Hermes Agent på en bærbar computer opstår spørgsmålet: Hvem skal svare på Telegram og samle morgenoversigterne, når computeren er lukket? Ved dit skrivebord er agenten kun til stede, så længe computeren er tændt. Hvis botten skal være online hele tiden, og planlagte opgaver skal køre af sig selv, skal du flytte agenten til en server.

Her kan du se, hvordan du installerer Hermes på en almindelig Linux-server, gør gatewayen til en tjeneste, der kører kontinuerligt og starter automatisk efter en genstart, og begrænser adgangen, så fremmede ikke kan få adgang til terminalen. Guiden bygger på den officielle dokumentation.

Hvis du slet ikke har installeret Hermes endnu, kan du begynde med den separate oversigt over hvad denne agent er, og hvordan du installerer den. Denne guide forudsætter, at du allerede har den kørende på din egen computer, og handler kun om at flytte den til en server.

Oplysninger om at arbejde med Ailoot findes i dokumentationen.

Hvorfor flytte Hermes Agent fra en bærbar computer til en server?

Vigtige punkter

En personlig computer fungerer, så længe du er i nærheden, og den er tændt. Til drift døgnet rundt har du brug for en server: Telegram-botten svarer, når din computer er slukket, og planlagte opgaver kører af sig selv. Du har kun brug for en server til dette; en bærbar computer er nok til almindeligt arbejde med agenten.

På en bærbar computer fungerer Hermes kun, mens låget er åbent, og du er i nærheden. Luk den, og botten bliver tavs; morgenoversigten kommer aldrig. Det duer ikke til en opgave som »svar folk i en beskedtjeneste og tag dig af ting efter en tidsplan«.

Det er dét, der gør en server anderledes: Den sover aldrig og afhænger ikke af noget andet. Du installerer den samme Hermes på den, og den kører uden dig: svarer på Telegram klokken tre om natten, samler nyheder om dine emner hver morgen og bevarer sessioner mellem kørsler.

Det giver mening at flytte den, når du har en løbende opgave til agenten: en bot til dig selv eller dit team, morgenoversigter, automatiske svar eller regelmæssigt arbejde med dokumenter. Hvis du bare afprøver Hermes til et bestemt projekt og er i nærheden, behøver du ikke en server endnu; det er et ekstra trin.

Hvad skal du forberede, før du installerer Hermes på en VPS?

Vigtige punkter

Du skal bruge en Linux-server med SSH-adgang (det officielle team tester på en ny Ubuntu-installation), en model valgt på forhånd og forståelse for, at agenten normalt ikke har brug for en browser på en server. Til uovervåget drift er den mest bekvemme måde at få adgang til en model på via Nous Portal: OAuth-login fornyes automatisk, så en udløbet token ikke får det hele til at gå ned i løbet af natten.

Saml tre ting, før du installerer.

Serveren. En almindelig Linux-VPS er tilstrækkelig. Dokumentationens primære support gælder Linux og WSL2, og der testes på den nyeste Ubuntu. Hvis systemet har glibc, systemd og en velkendt mappestruktur, installeres Hermes korrekt. Det er vigtigt på en server, fordi alle de automatiske starttrin nedenfor afhænger af systemd, som følger med Ubuntu og Debian.

SSH-adgang. Du opretter forbindelse til serveren via en terminal over SSH; du bruger ikke en mus der. Alle kommandoerne nedenfor køres i denne SSH-session. Hvis du vibe-koder og endnu ikke er tryg ved terminalen, skal du ikke bekymre dig: Der er kun nogle få kommandoer, og du kan kopiere hver enkelt i sin helhed.

En valgt model. Agenten tænker ikke selv; den kalder en model. På en server, der arbejder uden dig, er det vigtigt, at adgangen til modellen ikke udløber. Den enkleste mulighed er et Nous Portal-abonnement via hermes setup --portal: Login bruger OAuth, og tokenen fornyes automatisk. Dine egne API-nøgler virker også, men sørg så for, at der er penge på kontoen – en headless-agent med tom saldo bliver simpelthen tavs. Modellen skal have et kontekstvindue på mindst 64,000 tokens, ellers nægter Hermes at starte med den. Alle cloudmodellerne på listen opfylder dette krav.

Bemærk

Den officielle dokumentation angiver ikke præcise tal for valg af VPS eller minimumsressourcer, så der angives heller ikke præcise tal her. Ud fra den beskrevne erfaring er en beskeden maskine nok til en gateway med en bot og en tidsplan, fordi den tunge beregning foregår på modellens side. Selve serveren er meget lidt belastet. Browserautomatisering er den tungeste del, men den er normalt unødvendig på en server (mere om det lige nedenfor).

Hvordan installerer du Hermes Agent på en server med én kommando?

Vigtige punkter

Opret forbindelse til serveren over SSH, og kør installationsprogrammet med flaget, der springer browseren over på en server: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser. Genstart derefter terminalskallen, og vælg en model med hermes setup --portal. Kontrollér installationen med hermes doctor.

Installation på en server er næsten det samme som på en bærbar computer, med én forskel: Agenten har normalt ikke brug for en browser dér. Browserautomatisering medfører også den ressourcekrævende Chromium. Derfor bruger du flaget --skip-browser.

  1. Opret forbindelse til serveren over SSH

    ssh root@your-server-address
    

    Kør alle de følgende kommandoer i denne session på selve serveren.

  2. Kør installationsprogrammet uden browseren

    curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser
    

    Scriptet downloader det nødvendige miljø og installerer kommandoen hermes. Flaget --skip-browser springer installationen af browserautomatisering over; på en server uden grafisk brugerflade ville det kun optage plads. Hvis du får brug for en browser senere, kan du installere den separat.

  3. Genstart skallen, og vælg en model

    source ~/.bashrc
    hermes setup --portal
    

    Den første linje indlæser den nye PATH, så kommandoen hermes kan findes. Den anden åbner Nous Portal-login: Bekræft login, så får agenten en model og tjenester uden separate nøgler til hver enkelt.

  4. Kontrollér installationen

    hermes doctor
    

    Kommandoen viser, hvad der er installeret, hvad der mangler, og hvordan det løses. Grønne markeringer betyder, at alt er på plads.

Før du tilføjer en bot og en tidsplan, skal du få en problemfri samtale til at fungere direkte på serveren: Kør hermes, og giv den en enkel opgave med et svar, der kan verificeres. Dokumentationen fraråder udtrykkeligt at føje funktioner til, før en almindelig samtale fungerer – en fornuftig anbefaling.

Hvordan holder du Hermes kørende døgnet rundt?

Vigtige punkter

Konfigurér først gatewayen med hermes gateway setup, og tilslut Telegram. Gør derefter gatewayen til en tjeneste med én kommando: hermes gateway install installerer en brugertjeneste, mens sudo hermes gateway install --system installerer en systemtjeneste, der starter, når serveren starter. Brug hermes gateway start, stop og status til brugertjenesten. Bevar det udtrykkelige --system-scope og nødvendige rettigheder i hver tjenestekontrol og -ændring for VPS-systemtjenesten.

Gatewayen er én enkelt Hermes-proces i baggrunden, som holder forbindelser til alle beskedtjenester åbne, administrerer sessioner og kører planlagte opgaver. Al drift døgnet rundt drejer sig om den. Målet er at få processen til at starte af sig selv og blive ved med at køre.

Konfigurér først gatewayen, og tilslut en beskedtjeneste:

hermes gateway setup

Opsætningsguiden fører dig gennem platformene og hjælper dig med at indtaste bot-tokenen og adgangslisten. Trinnene til at tilslutte Telegram (oprette en bot med BotFather, finde dit ID og indtaste tokenen) gennemgås i hovedguiden til installation; jeg gentager dem ikke her.

Dernæst kommer den fælde, som folk oftest glemmer. Hvis du blot kører hermes gateway, lever processen kun, så længe SSH-sessionen er åben. Luk terminalen, og gatewayen stopper. For at holde den kørende kontinuerligt skal du lade systemet styre den. Der er én kommando til det:

hermes gateway install

Den installerer gatewayen som en tjeneste: på Linux en systemd-brugertjeneste; på macOS via launchd. Systemet overvåger processen og starter den igen, hvis den går ned.

På en server har du oftere brug for den anden mulighed: en systemtjeneste, der starter, når maskinen starter, før nogen bruger logger ind:

sudo hermes gateway install --system

Det er præcis, hvad du har brug for til en VPS: Serveren genstarter, tjenesten starter af sig selv, og botten er online igen. Administrér den med disse enkle kommandoer:

hermes gateway start     # start
hermes gateway stop      # stop
hermes gateway status    # kontrollér status

For en systemtjeneste skal du føje sudo og flaget --system til disse kommandoer. Uden dem retter kommandoerne sig mod brugertjenesten i stedet for den, der starter ved opstart:

sudo hermes gateway start --system
sudo hermes gateway stop --system
sudo hermes gateway status --system

Hvorfor er linger nødvendigt, og hvad går galt uden det?

Vigtige punkter

Hvis du installerede gatewayen som en brugertjeneste (uden --system), stopper systemd den, så snart du forlader SSH, og starter den ikke ved opstart. Løs det med én kommando: sudo loginctl enable-linger username. Derefter kører tjenesten uafhængigt af dine logins og logouts.

Det er den mest almindelige snubletråd: Du installerede tjenesten, men botten bliver stadig tavs om natten. Årsagen er, hvordan Linux-brugertjenester fungerer.

En systemd-brugertjeneste er som standard knyttet til din session. Du opretter forbindelse over SSH, og din brugermanager starter; tjenesten kører. Du logger ud, og systemet betragter brugeren som inaktiv, så det lukker brugerens tjenester ned sammen med gatewayen. På en server, du logger ind og ud af, er det et problem: Botten er kun online, mens du er i SSH.

Du kan løse det med linger-tilstand, som lader systemet holde brugermanageren kørende, selv når brugeren ikke er logget ind:

sudo loginctl enable-linger username

Efter denne kommando kører brugertjenesten af sig selv og starter, når serveren starter, uden at vente på, at du logger ind. Uden linger går tingene tilbage til den oprindelige adfærd: Gatewayen lukker ned, når du forlader SSH, og starter ikke ved opstart. Dokumentationen siger det udtrykkeligt.

Vigtigt

Dette gælder ikke systemtjenesten (installeret med sudo hermes gateway install --system): Den kører allerede på maskinniveau og starter ved opstart. Linger er kun nødvendigt for en brugertjeneste. Vælg én: enten en systemtjeneste eller en brugertjeneste plus linger.

Hvordan kører du Hermes på en server i Docker med automatiske genstarter?

Vigtige punkter

Hvis du foretrækker Docker, kan du holde Hermes kørende som en vedvarende gateway i en container: docker run -d --name hermes --restart unless-stopped -v ~/.hermes:/opt/data -p 8642:8642 nousresearch/hermes-agent gateway run. Flaget --restart unless-stopped starter containeren igen efter en genstart, og gatewayprocessen genstartes også inde i imaget, hvis den går ned.

Docker er en anden fungerende måde at holde agenten på en server på, især hvis du allerede er vant til containere eller vil isolere agenten fra hovedsystemet. Konfigurér den én gang med docker run ... setup, og start derefter containeren i baggrunden:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  nousresearch/hermes-agent gateway run

Sådan fungerer linjerne, der sørger for drift døgnet rundt:

  • -d – containeren kører i baggrunden og holder ikke terminalen åben.
  • --restart unless-stopped – Docker starter containeren igen efter en genstart af serveren eller et nedbrud. Den starter kun ikke igen, hvis du stoppede den manuelt.
  • -v ~/.hermes:/opt/data – indstillinger, nøgler, sessioner og hukommelse ligger på serveren uden for containeren og bevares, når containeren genskabes.

Imaget tilføjer endnu en beskyttelse: Gatewayprocessen kører under s6-supervisoren. Hvis gatewayen går ned, genstartes den inden for et par sekunder uden at miste selve containeren. Det er dobbelt beskyttelse: Docker holder containeren kørende udefra, mens s6 overvåger processen indeni.

Husk én forskel ved Docker-metoden: Disse installationer opdateres ikke med kommandoen hermes update. Hvis du vil opdatere i Docker, skal du erstatte imaget med et nyt – download det nyeste, og genskab containeren.

Hvordan kontrollerer du, at alt fungerer og overlever en genstart?

Vigtige punkter

Kontrollér tjenestens status med systemctl, og følg den løbende log. Derefter kommer den vigtigste servertest: Genstart maskinen, og sørg for, at botten kommer online igen af sig selv. Hermes-sessioner og svar overlever en genstart; et ufærdigt svar leveres efter genoprettelsen.

For en brugertjeneste kan du kontrollere status og logfiler sådan her:

hermes gateway status
journalctl --user -u hermes-gateway -f

Brug i stedet systemscopet til den systemtjeneste, der anbefales til en VPS:

sudo hermes gateway status --system
sudo journalctl -u hermes-gateway -f

Første kommando kontrollerer den valgte tjeneste; den anden følger loggen for det scope. Disse unit-navne gælder standardinstallationen i ~/.hermes. Andre Hermes-hjem kan have et unit-navn med suffiks: Undersøg statusoutputtet, og brug præcis det navn. Overvåg ikke en bruger-unit, mens du tester en systeminstallation. Hermes-logfiler ligger i ~/.hermes/logs/, og hemmeligheder skjules automatisk i dem, så det er sikkert at sende dem til support.

Genstart nu serveren, og kontrollér, at agenten kommer tilbage af sig selv. Det er den vigtigste servertest, og det er som regel den, folk glemmer:

sudo reboot

Opret forbindelse igen over SSH, når serveren er tilgængelig. Kontrollér sudo hermes gateway status --system og systemjournalen ved en systeminstallation; kontrollér hermes gateway status og brugerjournalen ved en brugerinstallation med linger. Send derefter en besked til botten på Telegram. Hvis den svarer uden din indblanding, er automatisk opstart konfigureret korrekt. Det var hele formålet.

Du behøver ikke bekymre dig om at miste din samtale. Hermes skriver sessioner til disk, og de overlever en genstart af gatewayen. Desuden leverer den svaret efter genoprettelsen i stedet for at køre opgaven igen, hvis gatewayen går ned, lige når den sender et svar. Det er vigtigt for en bot, der kører døgnet rundt: En uventet genstart ødelægger ikke samtalen.

Hvordan sikrer du en agent med terminaladgang på en server?

Vigtige punkter

De tre vigtigste sikkerhedsforanstaltninger: Botadgangen er lukket som standard (den svarer kun personer på listen), agenten spørger, før den kører farlige kommandoer, og hvis du vil have fuld isolation, kører du agenten på serveren i en Docker-sandkasse. Det er bedst ikke at aktivere tilstanden uden bekræftelse (YOLO) på en server.

En agent på en server er et program med terminaladgang, der kører uden dit opsyn. Kontrollér først disse tre indstillinger.

Lukket botadgang. Som standard svarer gatewayen kun personer på adgangslisten eller personer, der har gennemført kodebaseret tilknytning i en direkte besked. Det er den rette adfærd for en bot med terminaladgang: En tilfældig person, der skriver til botten, kan ikke gøre noget. Listen angives med numeriske ID'er, for eksempel for Telegram:

TELEGRAM_ALLOWED_USERS=123456789,987654321

Bekræftelse af farlige kommandoer. Før agenten gør noget destruktivt, beder den om din tilladelse. Der findes en YOLO-tilstand, som deaktiverer bekræftelser; det er bedst ikke at aktivere den på en server, der kører uden dig. Bekræftelserne skal netop forhindre, at noget uigenkaldeligt sker uden din viden.

En sandkasse til fuld isolation. Hvis du vil sikre, at agenten fysisk ikke kan se serverens hovedsystem, skal du køre dens kommandoer i en Docker-container:

hermes config set terminal.backend docker

Så foregår alt, agenten gør i terminalen, i en isoleret sandkasse, og den kan ikke få adgang til den aktive server. Det er en fornuftig sikkerhedsforanstaltning, når du giver agenten frihed til at handle på egen hånd.

Hvad skal du gøre, hvis botten er tavs, eller gatewayen går ned?

Vigtige punkter

Kontrollér først tjenestens status og logfiler; årsagen er oftest bottens token, adgangslisten eller modellen. Hvis hele processen fryser helt fast, har en systemd-tjeneste en watchdog-timer, der genstarter gatewayen, hvis den holder op med at vise livstegn.

Når botten holder op med at svare, skal du følge denne rækkefølge. Kontrollér først det installerede scope: sudo hermes gateway status --system og systemjournalen for en systemtjeneste eller hermes gateway status og brugerjournalen for en brugertjeneste. Hvis gatewayen kører, men beskederne ikke kommer igennem, er det næsten altid et problem med platformskonfigurationen: Bottens token er forkert, eller personen står ikke på adgangslisten. Kør hermes gateway setup igen i samme Hermes-hjem, og undersøg derefter den valgte tjeneste med hermes gateway status --system for system eller hermes gateway status for bruger. Vellykket opsætning beviser ikke, at den rigtige gateway kører.

Hvis modellen returnerer tomme eller mærkelige svar, skal du kontrollere den med hermes model og bekræfte udbyderen og login. Den generelle gendannelsessekvens, der bringer dig fra »alt er gået i stykker« tilbage til fungerende tilstand, er: hermes doctor, hermes model, hermes setup, efterfulgt af hermes gateway status --system ved en systeminstallation eller hermes gateway status ved en brugerinstallation.

En ting mere om det sjældne, men ubehagelige tilfælde, hvor hele processen fryser uden faktisk at gå ned. En systemd-tjeneste har en watchdog-timer: Tilføj denne linje i ~/.hermes/config.yaml, og geninstallér tjenesten.

gateway:
  systemd_watchdog_seconds: 120
# Til VPS-systemtjenesten (samme Hermes-hjem som ved den oprindelige installation):
sudo hermes gateway install --system --force
sudo hermes gateway status --system

Gendan i stedet kun brugerscopet med hermes gateway install --force, og kontrollér hermes gateway status, hvis du bruger en brugertjeneste. Vælg ét scope; installér ikke begge for at reparere én gateway.

Derefter signalerer gatewayen regelmæssigt til systemet: »Jeg er i live«, og hvis signalerne ophører, genstarter systemd automatisk processen. Det fungerer kun på Linux med systemd, og kun ved procesfrysninger. Watchdog-timeren påvirker ikke en almindelig netværksafbrydelse mellem serveren og beskedtjenesten.

Hvad spørger folk ellers om Hermes Agent på en server?

Vigtige punkter

Hurtige svar på almindelige spørgsmål: om en VPS specifikt er nødvendig, om du kan have flere botter på én maskine, om serveren behøver en grafisk brugerflade, og hvad der sker med planlagte opgaver, når agenten kører på en server.

Ofte stillede spørgsmål

Skal jeg have en VPS, eller kan jeg bruge min egen computer?

Til drift døgnet rundt har du brug for en maskine, der altid er tændt. Din egen computer fungerer kun, hvis du er villig til aldrig at slukke den. En VPS er mere bekvem: Den er altid tændt og afhænger ikke af, om du arbejder eller sover. En almindelig Linux-server er tilstrækkelig – dokumentationens primære support gælder Linux, og der testes på en ny Ubuntu-installation.

Kan jeg køre flere botter på én server?

Ja. Hermes har profiler, og hver profil har sin egen tjeneste. En kommando som <profile> gateway install opretter en separat tjeneste med navnet hermes-gateway-<profile>, og de fungerer uafhængigt af hinanden. Hver profil har sine egne indstillinger, bottoken og hukommelse.

Har serveren brug for en skærm og grafik?

Nej. Serveren kører uden skærm, og du administrerer den over SSH fra terminalen. Browserautomatisering er normalt unødvendig for en agent på denne type server, så du kører installationsprogrammet med flaget --skip-browser; det fjerner den eneste ressourcekrævende komponent, der kræver grafik.

Kører planlagte opgaver, når jeg er væk?

Ja, det er hele pointen med at flytte til en server. Den samme gateway kører planlagte opgaver: Den kontrollerer tidsplanen én gang i minuttet og kører opgaver, når de skal udføres, og sender derefter resultatet til den samme chat. Fordi gatewayen kører døgnet rundt som en tjeneste, afvikles tidsplanen af sig selv uden din indblanding.

Overlever botten en opdatering og en genstart af serveren?

Ja. Indstillinger, sessioner og hukommelse gemmes i mappen ~/.hermes og går ikke tabt. Efter en genstart starter systemtjenesten (eller Docker med --restart unless-stopped) gatewayen af sig selv. Et ufærdigt svar leveres efter en genstart, og intet går tabt – men hvis svaret allerede var halvvejs gennem afsendelsen, da nedbruddet skete, kan det komme igen med en besked om mulig dublet.

Lær Ailoot at kende.

Flere oplysninger

Spørgsmål og svar

Hvorfor kan gatewayen se stoppet ud, efter at jeg installerede den som systemtjeneste?

En kontrol uden scope kan ramme en anden tjeneste. Brug hermes gateway status --system og systemjournalen til systeminstallationen; brug kun status uden scope og brugerjournalen til en brugertjeneste. Bevar samme Hermes-hjem hele vejen.

Har en VPS-systemtjeneste brug for loginctl linger?

Nej. Linger er til en systemd-brugertjeneste, som skal overleve logout og starte ved opstart. En systemtjeneste starter allerede ved maskinens opstart. Vælg ét installationsscope, og gentag dets statuskontrol og bot-svartest efter genstart.

Alle artikler