ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

Hermes agent

Napisane przez Igor Brzeżek on 22 września 2026
Napisane w: AI.

Contents
  1. Instalacja Hermes Agent
  2. Konfiguracja w Docker – audio
  3. Plik ze zmiennymi środowiskowymi
  4. Plik budowy kontenera dockerfile
  5. Katalogi na dane z Hermesa
  6. Budujemy kontener
  7. Łączenie modeli językowych
  8. OpenAI

Instalacja Hermes Agent

Hermes agent można instalować jako

  • bezpośrednio na komputerze
  • w kontenerze Dockera

Składa się z elementów:

  • hermes konsola
  • hermes webpanel (aplikacja webowa)
  • hermes dekstop (aplikacja desktopowa)

W tym wpisie pokażę jak uruchomić Hermesa w kontenerze.

Konfiguracja w Docker – audio

Ponieważ chcę aby Hermes potrafił gadać i słuchać to muszę skonfigurować audio. W maszynie na jakiej instaluję Hermesa mam kartę audio, co można sprawdzić poleceniem:

#aplay -l

Powinno pokazać się coś jak niżej:

Sprawdzimy jeszcze zawartość katalogu „urządzeń” audio:

#ls -l /dev/snd


Plik ze zmiennymi środowiskowymi

Jeszcze jest wymagany plik ’.env’ ze zmiennymi środowiskowymi (albo można je umieścić w docker compose) przykładowo taki:

ANTHROPIC_API_KEY=twoj-klucz
GOOGLE_API_KEY=twoj-klucz 
OPENAI_API_KEY=twoj-klucz 
OPENROUTER_API_KEY=twoj-klucz 
HERMES_DASHBOARD_BASIC_AUTH_USERNAME=admin 
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD=ZAQ!2wsx 
HERMES_UID=1000 
HERMES_GID=1000

Ten plik trzeba umieścić w tym samym katalogu gdzie znajdować się będzie plik dockerfile. Można w nim umieścić wiele innych zmiennych. Można to też wykonać w pliku dockerfile.

Plik budowy kontenera dockerfile

Teraz musimy utworzyć plik docker-compose.yaml. Znajda się w nim polecenia budowy kontenera na bazie obrazu ale dołączymy też kwestię audio.

  • tworzymy katalog o nazwie np 'hermes’
  • w tym katalogu tworzymy plik 'asound.conf’ o zawartości:
pcm.!default {
type pulse
hint {
show on
description "Default ALSA Output (PulseAudio)"
}
}

pcm.pulse {
type pulse
}

ctl.!default {
type pulse
}
  • tworzymy też plik 'Dockerfile.audio’ o zawartości:
FROM nousresearch/hermes-agent:latest

USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends libasound2-plugins \
&& rm -rf /var/lib/apt/lists/*

Katalogi na dane z Hermesa

Aby nasz Hermes przechowywał dane między restartami kontenera przygotujemy katalog. Tworzymy zatem w katalogu '/opt’ podkatalog o nazwie np. 'hermes-data’. W nim pojawi się cała konfiguracja Hermesa.

Budujemy kontener

Tworzymy plik budowy kontenera o nazwie 'docker-compose-audio.yaml’:

services:
hermes:
build:
context: .
dockerfile: Dockerfile.audio
image: hermes-agent-audio
container_name: hermes
restart: unless-stopped
command: gateway run
ports:
- "8642:8642" # gateway API
- "9119:9119" # dashboard (only reached when HERMES_DASHBOARD=1)
volumes:
- /opt/hermes-data:/opt/data
- /run/user/${HERMES_UID}/pulse:/run/user/${HERMES_UID}/pulse
# no-tmp: ok — path inside the container
- ~/.config/pulse/cookie:/tmp/pulse-cookie:ro
- ./asound.conf:/etc/asound.conf:ro
environment:
- HERMES_DASHBOARD=1
- HERMES_UID=${HERMES_UID}
- HERMES_GID=${HERMES_GID}
- XDG_RUNTIME_DIR=/run/user/${HERMES_UID}
- PULSE_SERVER=unix:/run/user/${HERMES_UID}/pulse/native
# no-tmp: ok — path inside the container
- PULSE_COOKIE=/tmp/pulse-cookie
# Uncomment to forward specific env vars instead of using .env file:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- GOOGLE_API_KEY=${GOOGLE_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
- HERMES_DASHBOARD_BASIC_AUTH_USERNAME=admin
- HERMES_DASHBOARD_BASIC_AUTH_PASSWORD=ZAQ!2wsx
- WHATSAPP_ENABLED=true
- WHATSAPP_MODE=self-chat
- WHATSAPP_ALLOWED_NUMBERS=4866041166
# - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
devices:
- /dev/snd:/dev/snd
deploy:
resources:
limits:
memory: 4G
cpus: "2.0"

Uwaga: zmienne środowiskowe można wstawić w tym pliku, w pliku ’.env’. Część z nich można potem zmieniać w panelu WWW Hermesa.

  • Teraz budujemy kontener i uruchamiamy całość:
sudo docker compose -f docker-compose-audio.yaml up
  • Sprawdzimy czy działa poleceniem:
sudo docker exec -it hermes env | grep -E "PULSE|XDG|HERMES_UID"
  • Jeśli tak to powinniśmy zobaczyć coś podobnego

Więcej informacji na temat budowy Hermesa znajduje się w jego dokumentacji.

 

Łączenie modeli językowych

OpenAI

Aby połaczyć się z OpenAI można wejść do terminala (maszyny na jakiej pracuje Hermes) i wydać poniższe polecenie:

hermes auth add openai-codex --type oauth

Po chwili pojawi się adres www i kod. Należy otworzyć przeglądarkę, wejść na podany adres i tamże wpisać kod jaki znajduje się w konsoli poniżej. Po autoryzacja czekamy cierpliwie aż ona zostanie ogarnięta przez program w konsoli (tego ona nie zamykamy aż do końca procesu)

Uwaga dla Docker: aby wykonać powyższe polecenia podłącz się najpierw na konsole Hermesa pracującego w Docker poleceniem:

sudo docker exec -it hermes bash

Nazwa kontenera ( tu 'hermes’) może być u Ciebie inna.

Nawigacja

← Opencode – darmowe kredyty
Lokalny model Bielik dla Ollama →
  • Szukaj

  • Kategorie

    • IT ogólnie (164)
      • AI (3)
      • Bezpieczeństwo (19)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (51)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Monitorowanie sieci (6)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (6)
        • Tunelowanie ruchu (6)
          • Tunele GRE (2)
          • Tunele SSH (4)
        • WLAN / WiFi (7)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Instalacja systemu GNS3 na Linux Debian
    • Pomiary prędkości
    • SNMP-Exporter, Prometheus, Grafana + MikroTik
    • Monitorowanie sieci LAN za pomocą SNMP
    • Lokalny model Bielik dla Ollama
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y

Powered by
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by