Files
Hermes_rocket.chat_Plugin/COMMUNITY_POST.md
T

4.9 KiB
Raw Blame History

Hermes Rocket.Chat Plugin — Community Release

Nützliches Add-on für Hermes Agent
Verbindet Hermes Agent mit einem selbst-gehosteten Rocket.Chat-Server.


Was ist das?

Dieses Plugin verwandelt Hermes Agent in einen nativen Rocket.Chat-Benutzer — mit Echtzeit-Nachrichten, Präsenz-Status und interaktiven Buttons.

Statt über ein separates Gateway-Binary zu kommunizieren, spricht Hermes Agent direkt mit Rocket.Chat:

  • Eingehend: WebSocket/DDP für sofortige Nachrichten
  • Ausgehend: REST-API für Antworten, Buttons, Dateien

Features

Feature Beschreibung
🚀 Echtzeit-Streaming DDP/WebSocket für instant eingehende Nachrichten
🟢 Präsenz Grüner Online-Status im Rocket.Chat
✍️ Markdown Fett, kursiv, Code, Blöcke, Links
🔘 Interaktive Buttons Ja/Nein, Bestätigen/Abbrechen, Mehrfachauswahl
📢 Räume Kanäle, private Gruppen, Direktnachrichten
🔒 Allowlist Nur erlaubte Benutzer dürfen den Bot nutzen
📦 Zero-Dependency Nutzt ausschließlich Python-Standardbibliothek

Schnellstart

1. Voraussetzungen

  • Hermes Agent installiert (Setup-Guide)
  • Laufender Rocket.Chat-Server (v5+ empfohlen)
  • Bot-Benutzer auf Rocket.Chat mit Login-Daten

2. Plugin installieren

# In das Hermes Agent Verzeichnis wechseln
cd ~/.hermes/hermes-agent

# Plugin-Verzeichnis anlegen und Dateien hineinkopieren
mkdir -p plugins/platforms/rocketchat
cp plugin.yaml   plugins/platforms/rocketchat/
cp __init__.py   plugins/platforms/rocketchat/
cp adapter.py    plugins/platforms/rocketchat/

3. Konfigurieren

Variante A — Umgebungsvariablen:

export ROCKETCHAT_BASE_URL="https://rocketchat.example.com"
export ROCKETCHAT_USER="bernd"
export ROCKETCHAT_PASSWORD="dein-passwort"
export ROCKETCHAT_ROOM_ID="J3jvMyrKTMzKvKHSh"      # optional
export ROCKETCHAT_ALLOWED_USERS="andreas,max"       # optional
export ROCKETCHAT_ALLOW_ALL_USERS="false"           # default

Variante B — config.yaml:

plugins:
  platforms:
    rocketchat:
      enabled: true
      base_url: "https://rocketchat.example.com"
      user: "bernd"
      password: "dein-passwort"
      room_id: "J3jvMyrKTMzKvKHSh"
      allowed_users: ["andreas", "max"]
      allow_all_users: false

4. Starten

hermes gateway start

Hermes Agent verbindet sich automatisch mit Rocket.Chat und erscheint als Online-Benutzer.


Architektur

┌─────────────┐      DDP/WebSocket      ┌─────────────────┐
│ Hermes Agent│  ◄────────────────────► │  Rocket.Chat    │
│  (Plugin)   │                         │   Server        │
│             │      REST API           │                 │
│             │  ─────────────────────► │  (v5+)          │
└─────────────┘                         └─────────────────┘
  • Adapter.py (~20 k LOC): DDP-Client, Session-Handling, Nachrichten-Parsing, Button-Rendering
  • __init__.py: Plugin-Registrierung, Template-Definitionen für Buttons
  • plugin.yaml: Metadaten, Env-Vars, Dependency-Check

Button-Templates

Das Plugin bringt vordefinierte Interaktionen mit — kein YAML, keine Extra-Config:

Template Nutzung
yes_no Ja / Nein
confirm_cancel Bestätigen / 🚫 Abbrechen
ok 👍 OK
multi_choice_3 1. Links / 2. Rechts / 3. Zwei Runden

Custom-Buttons werden aus reinen Label-Strings generiert (Rocket.Chat schneidet nach ~1112 Zeichen ab — daher kurze Labels mit Emoji).


Aktueller Status

  • Version: 1.0.0
  • Stabilität: Produktiv im Einsatz (seit Mai 2026)
  • Getestet mit: Rocket.Chat v5.x, Hermes Agent Gateway
  • Lizenz: Unlicense — Public Domain

Roadmap / Offen

  • OAuth / Token-Auth neben Passwort-Login
  • Threading-Unterstützung für Kanäle
  • Datei-Upload (Bilder, Dokumente)
  • Slash-Command-Integration auf Rocket.Chat-Seite
  • Mehrsprachige Button-Templates

Mitmachen

Da das Plugin reines Python und nur Standardbibliothek nutzt, ist der Einstieg niedrig:

  1. Repo clonen
  2. adapter.py bearbeiten
  3. Testen mit hermes gateway start --debug
  4. Pull Request oder Patch schicken

Kein Build-Step, keine Node-Dependencies, kein Docker nötig.



Erstellt von der Hermes Agent Community — für die Rocket.Chat Community.