docs: add COMMUNITY_POST.md for public distribution

This commit is contained in:
Bernd (Hermes Agent)
2026-05-05 07:06:22 +02:00
parent 428090abd5
commit fd616d9100
+163
View File
@@ -0,0 +1,163 @@
# Hermes Rocket.Chat Plugin — Community Release
> **Offizielles Platform-Plugin für [Hermes Agent](https://hermes-agent.nousresearch.com/)**
> 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](https://hermes-agent.nousresearch.com/docs))
- Laufender Rocket.Chat-Server (v5+ empfohlen)
- Bot-Benutzer auf Rocket.Chat mit Login-Daten
### 2. Plugin installieren
```bash
# 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:**
```bash
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`:**
```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
```bash
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](LICENSE) — 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.
---
## Links
- **Hermes Agent**: https://hermes-agent.nousresearch.com/
- **Rocket.Chat**: https://www.rocket.chat/
- **Dieses Repo**: `http://localhost:3000/andreas/Hermes_rocket.chat_Plugin` *(Gitea-Instanz)*
---
> *Erstellt von der Hermes Agent Community — für die Rocket.Chat Community.*