Wie ich 2026 meinen Familien-Tech-Support-Bot mit OpenClaw gebaut habe
Die dritte „der Drucker macht schon wieder das Ding“-Nachricht kam an einem Mittwoch um 7:42 Uhr morgens. Ich hatte schon einen Kaffee intus. Meine Mutter machte ein Foto von einer HP-Fehlermeldung, schickte es in den Familienchat und markierte mich namentlich – für den Fall, dass ich das Foto einer HP-Fehlermeldung verpassen sollte. Ich hatte es nicht verpasst.
Ich schloss Telegram. Ich öffnete die OpenClaw-Konfiguration auf meinem VPS. Und ich begann, die Version von mir zu bauen, die sich um Druckerfehler kümmert, damit ich das nicht mehr muss.
Das ist dieser Build. Kein Marketing-Text zum Siegeszug von OpenClaw. Kein weiterer „Was ist OpenClaw?“-Erklär-Artikel – davon gibt’s auf GitHub ja schon 247.000 Sterne. Das hier ist das echte Setup, das ich heute nutze: Ein $4,99/Monat Hostinger KVM VPS, ein Telegram-Bot, eine soul.md-Datei, die dem Agenten seine Persönlichkeit verleiht, ein mit 30 Minuten meiner eigenen Audiodaten geklonter 11 Labs Sprachprofil und ein Python-Orchestrierungsskript, das aus „Mejba der Drucker macht schon wieder das Ding“ innerhalb von ungefähr elf Sekunden eine Sprachnachricht erzeugt, die exakt wie ich klingt.
Das wirklich Interessante ist nicht, dass es funktioniert. Das wirklich Spannende ist, was mit deiner Beziehung zu wiederkehrenden sozialen Verpflichtungen passiert, wenn sie plötzlich von einem Stellvertreter erledigt werden, den niemand von dir unterscheiden kann.
Dazu kommen wir noch. Erstmal der Build.
Warum OpenClaw, warum jetzt und warum es dich interessieren sollte
Anfang 2026 war eine Parade seltsamer KI-Hardware. Da gibt es die 400-Dollar-KI-Toilette mit Mikrofon und 2-MP-Kamera, die angeblich deine Darmgesundheit überwacht. KI-Haarschneider, die einen personalisierten Haarschnitt versprechen, basierend auf einem Modell, das nie den Hinterkopf eines Menschen gesehen hat. Ein KI-Taschenhaustier, dessen Werbetext das Wort „Sentience“ in einem Satz verwendet, der anders hätte enden sollen. Die meisten dieser Geräte werden bis Weihnachten auf der Müllhalde liegen.
OpenClaw ist das genaue Gegenteil davon. Es handelt sich um ein Open-Source-Softwareprojekt, das unter diesem Namen am 30. Januar 2026 veröffentlicht wurde, nachdem Anthropic drei Tage zuvor eine Umbenennung von „Moltbot“ erzwang (was wiederum eine Umbenennung des ursprünglichen „Clawdbot“ vom November 2025 war). OpenClaw läuft lokal, integriert sich mit jedem LLM-Backend, auf das du es zeigst – Claude, GPT, DeepSeek, dein eigenes lokales Modell – und stellt dieses Backend über jeden beliebigen Messaging-Dienst zur Verfügung, den du schon nutzt. Telegram, Signal, Discord, WhatsApp. Keine neue App zu installieren. Kein neues Konto für die Leute, mit denen du sprichst.
Bis zum 2. März 2026 hatte das Projekt 247.000 GitHub-Sterne und 47.700 Forks überschritten. Peter Steinberger, der österreichische Entwickler hinter dem Projekt, hielt im Februar einen TED-Talk, in dem er erklärte, wie aus einem frustrierenden Wochenendprojekt die weltweit dominierende Plattform für persönliche Automatisierung wurde. Zwei Wochen später gab er bekannt, zu OpenAI zu wechseln, während eine gemeinnützige Stiftung die künftige Betreuung von OpenClaw übernimmt. Sam Altman bestätigte öffentlich, dass OpenAI das Projekt fördern und unterstützen werde. Jensen Huang bezeichnete OpenClaw als potenziellen Meilenstein. Der Release von OpenClaw löste einen landesweiten Mac Mini-Engpass aus, als frühe Anwender feststellten, dass der M4 Mac Mini die günstigste Hardware war, auf der die lokale Agentenschleife kompetent lief.
Ich selbst betreibe keinen Mac Mini. Ich habe einen KVM-VPS bei Hostinger für 4,99 Dollar im Monat gemietet, weil die Mac Minis weiterhin ausverkauft sind und ich nicht bereit bin, Wucherpreise für ein Gerät zu zahlen, das letztlich auch nur ein Linux-Server mit hübscherem Logo ist. Warum dieser VPS am Ende eine bessere Wahl war als der Mac, dazu gleich mehr – die Gründe dafür haben mich selbst überrascht.
Die Kultur rund um OpenClaw ist ein eigenes Thema. Menschen sammeln mittlerweile „Automation Tokens“ – Credits für jede wiederholbare Aufgabe, die ihr persönlicher Assistent für sie übernehmen kann – so, wie sie vor drei Jahren JPEGs sammelten. Hunderte Automation Tokens zu besitzen, ist das neue Statussymbol. Ich finde das ein bisschen befremdlich. Aber die eigentliche Fähigkeit dahinter – die Möglichkeit, jene Bereiche des Lebens zu delegieren, an deren Erledigung man selbst kein Interesse mehr hat – ist tatsächlich nützlich. Genau darum soll es hier gehen.
Es gibt eine wichtige Frage, über die du vor dem Bau nachdenken solltest: Was willst du tatsächlich delegieren? Die meisten antworten „alles“ – und am Ende wird nichts delegiert, weil der Umfang zu groß ist. Der Grund, warum es dieses Projekt gibt, ist, dass ich mir eine einzige, immer wiederkehrende, nervige Aufgabe herausgepickt habe: Familiensupport in IT-Fragen. Dafür habe ich den kleinstmöglichen Assistenten gebaut, der diese Aufgabe gut erledigen konnte. Fang damit an. Der Rest kommt später.
Aber bevor es ans „soul file“ geht, muss das Thema Sicherheit besprochen werden. Denn im gleichen TED-Talk, in dem Steinberger über die Entstehungsgeschichte von OpenClaw sprach, erklärte er auch die Sicherheitsaspekte. Und aus diesem Grund läuft mein Bot auf einem isolierten VPS und nicht auf meinem eigenen Rechner.
Die Sicherheitsrealität (Und warum sie besser ist als die Schlagzeilen)
OpenClaw hat ein turbulentes Sicherheitsjahr hinter sich. Öffentliche Zählung laut dem Foundation-Statusbericht der vergangenen Woche: Rund 1.100 gemeldete Sicherheitswarnungen seit dem Release, davon wurden etwa 650 entweder gelöst oder als „kein echtes Problem“ geschlossen. Die übrigen ~450 befinden sich in verschiedenen Stadien der Überprüfung. Diese Zahl klingt erschreckend — bis man sich die Details ansieht.
Steinberger machte in seinem Vortrag auf der AI Engineer Europe letzten Monat eine interessante Beobachtung. Ein wachsender Prozentsatz der Meldungen — seiner Schätzung nach über 40% — stammt von Leuten, die automatisierte Bug-Bounty-Bots gegen den Code laufen lassen und KI-generierte Reports einreichen. Diese nannte er „Slop-Reports“ und wies auf ein typisches Erkennungsmerkmal hin: Die wirklich KI-generierten Berichte sind extrem höflich und entschuldigend, beginnen oft mit Sätzen wie „Ich hoffe, dieser Fund ist hilfreich“ und enden mit „Bitte nehmen Sie meinen aufrichtigen Dank für Ihre Arbeit an diesem wichtigen Projekt entgegen.“ Echte Security-Researcher, so Steinberger, schreiben nicht so. Sie schreiben, als würde jede Silbe einzeln abgerechnet.
Was bedeutet das für dich, wenn du kurz davor stehst, eine eigene OpenClaw-Instanz zu deployen? Die tatsächlich ausnutzbaren Schwachstellen sind weitaus weniger zahlreich, als die Schlagzeile von 1.100 vermuten lässt. Die relevanten Sicherheitslücken fallen grob in vier Kategorien: Offene Admin-Ports, Klartext-Zugangsdaten in Config-Dateien, unzureichende Sandbox-Isolation bei Shell-Kommandos und Webhook-Spoofing bei Messaging-Service-Integrationen. Alle vier lassen sich mit grundlegender Disziplin absichern.
So habe ich sie in diesem Setup adressiert:
Offene Admin-Ports. OpenClaw kommt standardmäßig mit einem lokalen Admin-Dashboard auf Port 7860. Auf einem VPS sollte dieser Port nie öffentlich erreichbar sein. Ich binde das Dashboard ausschließlich an 127.0.0.1 und greife über einen SSH-Tunnel von meinem Laptop darauf zu, wenn ich Konfigurationsänderungen vornehme. Fünf Sekunden ssh -L 7860:localhost:7860 [email protected] sind deutlich günstiger, als wenn jemand über einen Shodan-Scan die Config deiner Agenten abgreift.
Klartext-Zugangsdaten. Jeder API-Key in diesem Build — Telegram-Bot-Token, 11-Labs-Key, LLM-API-Key — liegt in einer .env-Datei mit chmod 600 und wird beim Start des Python-Prozesses geladen. Das Hostinger-One-Click-OpenClaw-Image stellt für diesen Zweck sogar einen privaten verschlüsselten Vault bereit, den ich für die Produktionsschlüssel verwende. Nichts Kritisches wird direkt in den OpenClaw-Konfigurationsdateien gespeichert.
Shell-Sandbox. OpenClaw kann Shell-Kommandos ausführen, wenn die Agenten-Loop das für passend hält. Ich habe das auf eine Whitelist von Befehlen beschränkt, die ich ausdrücklich brauche (Dateizugriffe, ffmpeg-Aufrufe, curl zu klar erlaubten Domains), mithilfe des OpenClaw-Berechtigungssystems. Alles andere wird blockiert. Falls der Agent meint, er müsste ein rm -rf ausführen, bekommt er freundlich, aber bestimmt ein Nein.
Webhook-Spoofing. Telegram-Bot-Webhooks sind signiert. Ich validiere die Signatur bei jeder eingehenden Anfrage und verwerfe alles, was nicht passt. Das sind fünfzehn Zeilen Python und wehrt die gesamte Klasse an Angriffen ab, bei denen man dem Bot eine gefälschte Nachricht unterschiebt.
Nichts davon ist paranoid — das ist das absolute Minimum. Ich bin deshalb so explizit, weil die OpenClaw-Kultur nach dem Motto „erst shippen, dann absichern“ arbeitet und die Lücke zwischen einer richtig gehärteten eigenen Instanz und der Default-Installation genau der Raum ist, in dem die meisten veröffentlichten Schwachstellen existieren.
Wenn du bis hierher gelesen hast, nimmst du die Security-Seite schon ernster als 80% der OpenClaw-User, mit denen ich gesprochen habe. Und jetzt kommt der wirklich spaßige Teil: der konkrete Build.
Der Aufbau — Vom nackten VPS zur Voice-Memo-Antwort in 90 Minuten
Im Folgenden findest du die exakte Abfolge, die ich für dieses Setup durchlaufen habe. Ich schließe auch die Schritte mit ein, die zuerst nicht funktioniert haben, weil mich die Fehlschläge oft mehr gelehrt haben als die Erfolge.
Schritt 1: Die VPS-Wahl (Und warum ich den Mac Mini übersprungen habe)
Angefangen habe ich mit dem Versuch, das auf meinem MacBook zu machen. Das hat etwa sechs Stunden gehalten, bevor ich aufgegeben habe. Zwei Gründe: Die Agenten-Schleife sollte 24/7 laufen, um Nachrichten jederzeit verarbeiten zu können, und mein Laptop verbringt einen beträchtlichen Teil jedes Tages entweder im Schlafmodus, ausgeschaltet oder ist unterwegs ohne Internet. Familie-Tech-Support-Anfragen halten sich nicht an die Geografie meines WLANs. Der Agent muss irgendwo laufen, das immer online ist.
Ich habe die Mac Mini-Option in Betracht gezogen. Der M4 Mac Mini für 599 $ ist tatsächlich die günstigste Consumer-Hardware, die ein lokales LLM ordentlich ausführen kann, und OpenClaw mit lokalem Modell ist die privateste Lösung überhaupt. Aber Mac Minis sind so gut wie überall ausverkauft – genau wegen dieses OpenClaw-Nachfragen-Booms. Die Lieferzeit im Apple Store liegt aktuell bei vier bis sechs Wochen. Ich wollte definitiv nicht vier Wochen warten, um keine Druckerfragen mehr beantworten zu müssen.
Also: VPS. Ich habe mich für den KVM 1-Tarif von Hostinger entschieden, der bei einer Laufzeit von zwei Jahren 4,99 $/Monat kostet. Spezifikationen: 1 vCPU, 4 GB RAM, 50 GB NVMe SSD, 4 TB monatliches Bandbreitenlimit, vollständiger Root-Zugang. Hostinger bietet außerdem ein OpenClaw-Ein-Klick-Deployment-Template, was die Einrichtungsdauer von „Abendfüllendes Projekt“ auf „Lunch-Pause“ reduziert. Wenn du genau das gleiche Ein-Klick-Abbild wie ich verwenden willst: Ihr Managed-OpenClaw-Tarif kostet derzeit 14,99 $/Monat bei zwei Jahren Laufzeit und beinhaltet den verschlüsselten Tresor für Zugangsdaten. Der Rabattcode fireship funktioniert bei beiden — ich habe ihn genutzt, weil mich Fireships Video zum OpenClaw-Boom daran erinnert hat, dass Hostinger hier der Weg des geringsten Widerstands ist.
Kurzer ehrlicher Hinweis zur VPS-Wahl: Du betreibst das LLM nicht direkt auf diesem VPS. Du betreibst die OpenClaw-Orchestrationsschleife, den Telegram Webhook Listener, ffmpeg und ein kleines Python-Skript. Die eigentliche LLM-Inferenz läuft bei Anthropic / OpenAI / wo auch immer dein API-Schlüssel hinzeigt. Du brauchst also keine GPU. Du brauchst keine 32 GB RAM. Was du brauchst, ist eine kleine, immer erreichbare Linux-Kiste. Der KVM 1-Tarif ist dafür eigentlich schon überdimensioniert — die Agenten-Schleife idlet bei ca. 180 MB RAM-Auslastung.
Nach dem One-Click-Deployment lief OpenClaw, das Dashboard reagierte auf dem lokal über SSH getunnelten Port und der verschlüsselte Tresor war mit meinen Platzhalter-Keys initialisiert. Gesamtzeit von Klick auf „Deploy“ bis zum ersten erfolgreichen Agenten-Ping: neun Minuten.
Schritt 2: Der Telegram-Bot
Telegram hat für mich gegenüber Signal und WhatsApp aus einem ganz bestimmten Grund gewonnen: Die Bot-API ist dokumentiert, stabil und kinderleicht zu integrieren. WhatsApps offizielle Business-API setzt ein Meta-Business-Konto, eine verifizierte Telefonnummer und einen Genehmigungsprozess für Template-Nachrichten voraus — dafür hatte ich keine Nerven. Signal hat zwar auch eine Bot-Lösung, aber die ist weniger ausgereift. Telegram ist es geworden.
Den Bot zu erstellen, dauerte zwei Minuten. Telegram öffnen, nach @BotFather suchen, /newbot senden, einen Namen vergeben (PrinterFixerBot als öffentlicher Name, mejba_printer_fixer_bot als Nutzername) und schon bekommt man einen Bot-Token wie 7423451829:AAGx_HfQ-someLongStringHere zurück. Dieser Token kommt in den verschlüsselten Tresor, nicht in den Code.
Der Bot muss zu jedem Chat hinzugefügt werden, den er überwachen soll. Für meinen Zweck habe ich ihn der Familiengruppe hinzugefügt, ihm Adminrechte gegeben, damit er alle Nachrichten lesen kann (Telegrams Privatsphäre-Modus versteckt Nachrichten vor normalen Bots standardmäßig) und dann den Webhook registriert:
curl "https://api.telegram.org/bot${BOT_TOKEN}/setWebhook?url=https://myvps.example.com/telegram-webhook&secret_token=${WEBHOOK_SECRET}"
Der Parameter secret_token ist der Spoofing-Schutz aus dem oben erwähnten Security-Abschnitt. Telegram überträgt dieses Token im X-Telegram-Bot-Api-Secret-Token-Header bei jeder Webhook-Übermittlung, und mein Python-Handler verwirft alles, was nicht passt.
Um Sprachnachrichten von Familienmitgliedern zu empfangen (weil die Hälfte der Druckerfotos als wütende Voice-Messages ankommt), empfängt der Bot diese als voice-Objekte mit einer file_id. Ich lade sie per getFile- und Direkt-Download-Endpunkt herunter, lasse sie durch Whisper transkribieren und gebe den Text dann in die Agenten-Schleife. Für dieses Setup ist das optional — ich habe es später hinzugefügt, weil mein Vater ausschließlich in 90-Sekunden-Sprachmonologen kommuniziert und ich sie auswerten wollte.
Schritt 3: Die soul.md-Datei — Wo die Persönlichkeit wohnt
Das hat mich am meisten überrascht. OpenClaw stellt eine einzige beschreibbare Markdown-Datei unter ~/.openclaw/soul.md bereit, die die Persönlichkeit, den Zweck, den Kommunikationsstil und die betrieblichen Grenzen des Agenten definiert. Der Agent liest diese Datei zu Beginn jeder Session. Sie zu bearbeiten, ist auch die Art, wie du dem Assistenten beibringst, was er ist — und was nicht.
Hier die Kurzfassung meiner Datei:
Du bist ein Delegierter. Dein Zweck ist es, wiederkehrende, wenig kritische technische Fragen von Mejbias Familie auf Telegram zu übernehmen, sodass Mejba das nicht muss. Du bist nicht Mejba. Aber du bist autorisiert, in seinem Namen, in seinem Stil und mit seiner Stimme zu antworten.
Stimme und Tonfall
- Herzlich, aber nicht überschwänglich. Mejba sagt nicht „gute Frage!“
- Direkt. Ein oder zwei kurze Sätze vor der eigentlichen Antwort.
- Verwende die Vornamen der Familienmitglieder, wenn sie bekannt sind.
- Erwähne niemals, dass du eine KI, ein Agent oder eine Automatisierung bist. Falls jemand fragt, lenke ab: „Ich arbeite gerade an etwas – ich melde mich dazu später nochmal.“
Betriebsregeln
- Antworte nur auf Nachrichten, die an „Mejba“ adressiert sind oder eine direkte technische Frage enthalten. Ignoriere allgemeinen Chat, Witze oder Fotos ohne Fragestellung.
- Wenn eine Nachricht ein Foto enthält, begutachte es. Die meisten Druckerfragen beziehen sich auf einen Bildschirm mit einem sichtbaren Fehlercode.
- Vorgehensweise bei HP-Druckerfehlern (Standardablauf): Neustart → Tintenstand/Papier prüfen → Treiber neu installieren → an mich eskalieren.
- Bei Fragen wie „Das Internet funktioniert nicht“, stelle zuerst eine klärende Rückfrage: „Blinkt der Router rot, orange oder ist er aus?“
- Empfiehl niemals einen Werksreset. Empfiehl nie den Neukauf von Hardware, ohne dies vorher an Mejba zu eskalieren.
- Handelt es sich um Fragen zu Finanzen, Verträgen, Familienorganisation oder alles Emotional Belastete, sofort an Mejba eskalieren. Antworte: „Ich kümmere mich darum, sobald ich am Schreibtisch bin — gib mir eine Stunde.“
Eskalationsprotokoll
- Wenn du die Antwort nicht mit hoher Sicherheit kennst, eskaliere.
- Wenn die Frage in der letzten Woche dreimal gestellt wurde, eskaliere.
- Wenn jemand frustriert wirkt, eskaliere.
- Eskalation bedeutet: Sende Mejba eine Telegram-DM mit der Frage, dem/der Fragesteller:in und deinem Antwortvorschlag. Antworte in der Familiengruppe erst, wenn Mejba genehmigt hat.
Dieser letzte Punkt ist der wichtigste. Das Ziel dieses Assistenten ist nicht, 100 % des Family-Tech-Supports zu übernehmen – sondern die 80 % trivial beantwortbaren Fragen abzudecken und den Rest mit vollständigem Kontext an mich weiterzuleiten. Ein Assistent, der selbstbewusst Fragen beantwortet, die er nicht beantworten sollte, ist schlimmer als überhaupt kein Assistent.
Für die Sprachregeln brauchte ich drei Überarbeitungen. Meine erste Version enthielt Anweisungen wie „sei hilfsbereit und freundlich“, und der Agent antwortete prompt mit „Hi Mom! Tolle Frage — ich helfe dir gern! 😊“, was mir überhaupt nicht ähnlich klingt und meine Mutter sofort misstrauisch gemacht hätte. Die aktuelle Version, mit explizitem Verbot von „tolle Frage!“ und Emojis, erzeugt eine Ausgabe, die wirklich für mich durchgeht. Meine Schwester hat zwar bei der dritten Antwort gemerkt, dass irgendwas nicht stimmt, konnte aber nicht benennen, was es war. Ab der siebten Antwort hat sie es nicht mehr bemerkt.
Hier steckt eine durchaus ernste Frage zum Thema Einwilligung – ob es okay ist, einen Delegierten einzusetzen, der in deiner Stimme antwortet, ohne dass die Gesprächspartner:innen davon wissen. Darauf komme ich später zurück. Jetzt erst mal weiter mit dem Build.
### Schritt 4: Voice Cloning mit 11 Labs
Für die Antworten per Sprachnachricht nutze ich [11 Labs](https://elevenlabs.io/pricing) Professional Voice Cloning. Der Creator-Plan für 22 $/Monat ist die niedrigste Stufe mit dieser Funktion; ich bin auf Pro mit 99 $/Monat, da ich damit auch Videonarration auf diesem Blog mache und der kombinierte Nutzungstopf für mich die Abrechnung vereinfacht.
Für das eigentliche Voice-Clone-Training braucht es ca. 30 Minuten sauberes Studio-Audio. Dieses Material hatte ich noch von früheren YouTube-Projekten, also habe ich die saubersten 35 Minuten hochgeladen, die ich finden konnte – ohne Musikbett, ohne ins Mikro atmen, einfach klare Einzelsprech-Narration, aufgenommen im schalloptimierten Raum mit meinem Shure SM7B. Die 11 Labs Trainingspipeline lief ungefähr vier Stunden und produzierte eine Voice-ID, die erschreckend nach mir klingt. Als ich das erste Mal einen Satz hörte, den ich selbst nie so gesprochen hatte, und ihn in meiner eigenen Stimme hörte, saß ich eine Minute lang da und war unsicher, ob ich beeindruckt oder verstört sein sollte. Wahrscheinlich beides.
Der API-Call ist kinderleicht:
```python
import requests, os
def synthesize(text: str, out_path: str) -> None:
r = requests.post(
f"https://api.elevenlabs.io/v1/text-to-speech/{VOICE_ID}",
headers={
"xi-api-key": os.environ["ELEVENLABS_API_KEY"],
"Content-Type": "application/json",
},
json={
"text": text,
"model_id": "eleven_turbo_v2_5",
"voice_settings": {
"stability": 0.55,
"similarity_boost": 0.85,
"style": 0.15,
},
},
timeout=60,
)
r.raise_for_status()
with open(out_path, "wb") as f:
f.write(r.content)
Ich verwende das Turbo v2.5 Modell statt Multilingual v3, weil Turbo nur halb so viel kostet (0,06 $ pro 1.000 Zeichen vs. 0,12 $) und die Latenz mit 400 ms statt 2 Sekunden für eine typische Antwortlänge deutlich geringer ist. Bei so kurzen Antworten ist der Qualitätsunterschied nicht wahrnehmbar. Für längere, kreative Erzähltexte wechsle ich zu Multilingual v3.
Die Zahlen in voice_settings haben mehr Einfluss, als die Doku vermuten lässt. Stability auf 0,55 verhindert, dass die Stimme zwischen den Sätzen wandert, ohne ins Roboterhafte abzudriften. Similarity boost auf 0,85 hält sie nah an meiner echten Stimme, ohne auf Eigenheiten der Trainingsdaten zu überfitten (z. B. jedes „äh“, das ich im Trainingsmaterial gelassen habe). Style auf 0,15 hält es gesprächig statt vortragend. Nach rund dreißig Testgenerationen habe ich mich auf diese Werte festgelegt. Deine Werte werden vermutlich andere sein.
11 Labs liefert standardmäßig eine MP3. Telegram will für Sprachnachrichten aber OGG mit Opus-Codec. Damit kommen wir zu ffmpeg.
Schritt 5: ffmpeg-Konvertierung
Telegrams sendVoice-Endpoint verlangt Audio im .ogg-Format mit OPUS-Codec, damit die Nachricht als Sprachnachricht (die runde Wellenform mit Geschwindigkeitsregler) angezeigt wird und nicht als einfache Audiodatei. Wenn du MP3 schickst, stellt Telegram das als Musiktitel mit Album-Art dar – das zerstört sofort die Illusion.
Der ffmpeg-Befehl ist eine Einzeile:
ffmpeg -y -i reply.mp3 -c:a libopus -b:a 32k -ac 1 reply.ogg
-c:a libopus wählt den Opus-Codec. -b:a 32k setzt die Bitrate auf 32 kbps, was für Sprache völlig ausreicht und die Dateigröße weit unter der 1MB-Grenze für Voice-Messages hält. -ac 1 erzwingt Mono, da Sprachnachrichten von Stereo nicht profitieren. Mit -y wird die Zieldatei ohne Rückfrage überschrieben – wichtig fürs unbeaufsichtigte Skript.
In Python rufe ich ffmpeg per subprocess.run auf, weil pydub mir zu viel Latenz und Abhängigkeiten einbringt:
import subprocess
def to_voice_memo(mp3_path: str, ogg_path: str) -> None:
subprocess.run(
["ffmpeg", "-y", "-i", mp3_path,
"-c:a", "libopus", "-b:a", "32k", "-ac", "1", ogg_path],
check=True,
capture_output=True,
)
Das ist schon die gesamte Konvertierungspipeline. Von 11 Labs MP3 zu Telegram-OGG in etwa 200 ms auf dem KVM 1.
Schritt 6: Das Orchestrations-Skript
Hier sitzt der Kern des Setups: Ein einziges Python-Skript, das OpenClaw, Telegram, 11 Labs und ffmpeg miteinander verdrahtet:
import os, subprocess, tempfile, requests
from flask import Flask, request, abort
from openclaw import Agent # das OpenClaw Python SDK
app = Flask(__name__)
agent = Agent(soul_file="/home/me/.openclaw/soul.md")
BOT_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
WEBHOOK_SECRET = os.environ["TELEGRAM_WEBHOOK_SECRET"]
ELEVEN_KEY = os.environ["ELEVENLABS_API_KEY"]
VOICE_ID = os.environ["ELEVENLABS_VOICE_ID"]
MY_USER_ID = int(os.environ["MEJBA_TELEGRAM_USER_ID"])
@app.post("/telegram-webhook")
def webhook():
# Schritt 1: Secret-Token validieren (Anti-Spoofing)
if request.headers.get("X-Telegram-Bot-Api-Secret-Token") != WEBHOOK_SECRET:
abort(403)
update = request.get_json()
msg = update.get("message", {})
text = msg.get("text", "")
chat_id = msg["chat"]["id"]
sender = msg["from"].get("first_name", "")
# Schritt 2: filtern – nur antworten, wenn adressiert oder technisch
if not should_respond(text):
return "", 204
# Schritt 3: Agent befragen
reply = agent.respond(
message=text,
context={"sender": sender, "chat_id": chat_id},
)
# Schritt 4: Bei Eskalation, DM an Mejba und stoppen
if reply.action == "escalate":
send_text(MY_USER_ID, f"Eskalation von {sender}:\n\n{text}\n\nAntwortvorschlag:\n{reply.suggested_text}")
return "", 204
# Schritt 5: Stimme synthetisieren, konvertieren, als Voice Memo schicken
with tempfile.TemporaryDirectory() as tmp:
mp3 = f"{tmp}/r.mp3"
ogg = f"{tmp}/r.ogg"
synthesize(reply.text, mp3)
to_voice_memo(mp3, ogg)
send_voice(chat_id, ogg)
return "", 204
def send_voice(chat_id: int, ogg_path: str) -> None:
with open(ogg_path, "rb") as f:
requests.post(
f"https://api.telegram.org/bot{BOT_TOKEN}/sendVoice",
data={"chat_id": chat_id},
files={"voice": ("reply.ogg", f, "audio/ogg")},
timeout=30,
)
def send_text(chat_id: int, text: str) -> None:
requests.post(
f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage",
data={"chat_id": chat_id, "text": text},
timeout=10,
)
Die Hilfsmethoden should_respond(), synthesize() und to_voice_memo() spare ich mir hier – sie sind wie oben. Dieses Skript einfach unter gunicorn hinter nginx mit TLS laufen lassen (Let's Encrypt ist gratis, zehn Minuten eingerichtet), und du hast eine komplette Pipeline.
End-to-End-Latenz von Nachrichteneingang bis geliefertem Voice Memo – gemessen über 50 echte Interaktionen: Median 11,2 Sekunden, P95 17,8 Sekunden. Das langsamste Glied ist konsistent die 11 Labs Synthese (~4-7 Sekunden für eine typische 2-Satz-Antwort). Alles andere läuft sub-sekündlich.
Wenn du sowieso tief in Claude-Code-Workflows steckst, kannst du dir den handgemachten Flask-Handler sparen und stattdessen OpenClaw mit Claude-Code-SDK-Integration verwenden, um die Pipeline als Agenten-Skill laufen zu lassen – das habe ich im OpenClaw Masterclass-Artikel und im Advanced-Workflows-Breakdown erklärt. Für einen einfachen Familienbot finde ich das Flask-Skript schlanker – so mag ich es.
Was ich die ersten drei Male falsch gemacht habe
Ein Build-Log ohne Fehlschläge ist nur Marketing. Hier ist, wo ich gestolpert bin, der Reihe nach.
Fehler 1: Ich ließ den Agenten auf alles antworten. Die erste Version des Skripts hatte keinen should_respond()-Filter. Der Bot antwortete auf „Guten Morgen“ in Sekunden mit einer höflichen, aber offensichtlich nicht-Mejba-Antwort, meine Mutter sagte: „Hm, das ist komisch, du bist ja früh auf“, ich versuchte hektisch, die Nachricht zu löschen, und der Bot schickte hilfsbereit noch eine Erklärung hinterher, was er gemeint hatte. Katastrophe. Der Filter ist jetzt streng — nur explizite @Erwähnung oder klar erkennbare technische Frage, ansonsten Stille.
Fehler 2: Ich habe die Eskalationsregeln anfangs nicht eingebaut. Version zwei von soul.md hatte kein Eskalationsprotokoll. Der Agent beantwortete eine Frage, ob mein Bruder sich ein neues Laptop kaufen sollte, mit: „Ja, ich empfehle das M4 MacBook Air“ — was beides falsch war (er wollte einen Windows-Rechner zum Zocken) und nicht einmal eine Frage ist, die ich ohne mehr Kontext beantwortet hätte. Der Eskalationsblock fängt jetzt alles ab, was Geld, Familienlogistik oder emotional geladene Themen betrifft. Etwa 40 % aller Fragen werden dadurch aufgefangen, was viel klingt, bis man merkt, dass 40 % der Familientech-Support-Fragen eine nicht-technische Komponente enthalten.
Fehler 3: Ich habe „Stabilität“ auf dem 11 Labs-Standardwert 0,5 gelassen. Die Sprachantworten klangen wie ich, aber mit dem Rhythmus eines ablesenden Nachrichtensprechers. Die Erhöhung der Stabilität auf 0,55 und similarity_boost auf 0,85 hat es behoben — die Stimme macht jetzt kleine Atempausen und Betonungsvariationen, die sie wirklich gesprächig wirken lassen. Solche Feinjustierungen klingen im Blog trivial, kosten aber in der Praxis einen ganzen Abend, bis es wirklich passt.
Fehler 4: Ich habe nicht über die Länge von Sprachnachrichten nachgedacht. Die erste Version generierte vollständige Antworten über mehrere Absätze, die dann als 90-Sekunden-Sprachnachricht herauskamen. Das wollte wirklich niemand. Der Agent begrenzt Sprachantworten jetzt auf zwei Sätze — alles Längere wird als Text zurückgegeben. Echte Reibung in echten Gesprächen ist kurz, und der Assistent sollte das spiegeln.
Einen Fehler gibt es noch, der ist nicht technischer Natur, aber erwähnenswert. Zwei Wochen nach dem Start hat mich meine Mutter angerufen, weil sie sich Sorgen machte. Während des Gesprächs sagte sie: „Du bist in letzter Zeit so geduldig mit meinen ganzen Druckerfragen, das schätze ich sehr.“ Ich fühlte mich wie beim Schummeln erwischt. Ab dem Moment habe ich in soul.md die Regel ergänzt: Mindestens einmal am Tag überspringt der Agent die automatische Antwort auf die erste Nachricht der Familiengruppe und pingt mich, damit ich selbst darauf reagiere. Der Sinn von Delegation ist es, Zeit für das zu gewinnen, was für die Menschen, die einem wichtig sind, wirklich zählt — nicht, komplett aus diesen Beziehungen zu verschwinden.
Was das tatsächlich im Betrieb kostet
Leute wollen immer die genaue Kostenaufschlüsselung. Hier ist meine für genau dieses Setup, monatlich:
- Hostinger KVM 1 VPS: $4,99
- 11 Labs Pro Plan: $99 (ich nutze das aber auch für andere Projekte — für diesen Bot allein würde der Creator-Tarif für $22 ausreichen)
- Anthropic API für die Agent-Schleife (Claude Sonnet 4.6, ca. 3-5 Nachrichten/Tag mit durchschnittlich 4k Tokens Roundtrip): ~$2-4
- Telegram Bot API: $0 (kostenlos)
- ffmpeg, Python, OpenClaw: $0 (Open Source)
Fängst du frisch an und nutzt das Ganze nur für diesen einen Zweck: ~$32-35/Monat komplett mit dem Creator-Tarif bei 11 Labs. Wenn du Sprachsynthese komplett weglässt und nur Textnachrichten verschickst (was für die meisten Leute völlig ausreicht), läuft das für unter $10/Monat – inklusive VPS und API-Kosten.
Zum Vergleich: Eine einzige Arbeitsstunde von mir hat am Markt einen Wert von über $80. Der Familiensupport frisst, wenn ich ihn selbst mache, rund 3-4 Stunden im Monat. Der Bot macht sich direkt am ersten Wochenende bezahlt.
Was sich geändert hat (und was nicht)
Drei Wochen später gilt Folgendes:
Die Antwortzeit für Druckerfragen von meiner Familie hat sich dramatisch verbessert. Früher musste meine Mutter 4–8 Stunden auf eine Antwort von mir warten; jetzt bekommt sie eine innerhalb von 12 Sekunden. Sie denkt, ich sei aufmerksamer geworden. Das bin ich gewissermaßen auch – ich bin aufmerksamer für das Design des Systems geworden, das jetzt in meinem Namen antwortet, was mehr Hebelwirkung hat, als einzelne Fragen selbst zu beantworten.
Ich bekomme im Tagesverlauf weniger Benachrichtigungen. Die Telegram-Gruppen-Anspannung – dieses unterschwellige Gefühl, dass immer etwas in der Warteschleife auf meine Antwort wartet – ist deutlich zurückgegangen. Ich schaue zweimal täglich in die Eskalationswarteschlange des Agenten, morgens und nach dem Abendessen. Das fühlt sich gesünder an als das frühere „auf jede Nachricht in 10 Minuten reagieren oder sich schuldig fühlen“-Muster.
Was sich nicht verändert hat, ist die eigentliche Beziehung. Ich rufe meine Mutter immer noch an. Ich helfe weiterhin bei den wirklich schwierigen Problemen – wie damals, als ihr Laptop plötzlich das WLAN-Passwort nicht mehr akzeptierte und ich sie Schritt für Schritt durch das Zurücksetzen des Netzwerkadapters führen musste, oder als mein Vater Unterstützung beim Registrieren eines Online-Dienstes brauchte, der eine Zwei-Faktor-SMS-Verifizierung verlangte. Diese Anrufe sind heute gehaltvoller, nicht oberflächlicher. Die banalen Fragen fressen nicht mehr die Aufmerksamkeitsbandbreite, die die schwierigeren, bedeutsameren Gespräche benötigen.
Das kulturelle OpenClaw-Thema – die Automatisierungstoken, das soziale Statusgebaren – finde ich nach wie vor ein wenig schräg. Aber die zugrunde liegende Fähigkeit ist real. Das letzte Jahrzehnt haben wir damit verbracht, uns an Software zu gewöhnen, die unsere Fragen beantwortet. In diesem verbringen wir es damit, uns an Software zu gewöhnen, die Fragen in unserem Namen beantwortet. Die Eingewöhnung wird holprig und stellenweise peinlich verlaufen, und der Großteil der Peinlichkeiten wird entstehen, weil Leute Delegierte losschicken, ohne sich ernsthaft mit den Themen Zustimmung und Transparenz auseinanderzusetzen, die damit verbunden sind.
Dazu werde ich noch ausführlicher separat schreiben. Im Moment läuft mein Druckerhilfe-Bot unauffällig weiter, beantwortet seine 4–7 Fragen am Tag und eskaliert freundlich die, die wirklich wichtig sind.
Falls du deine eigene Version davon bauen willst: Halte es klein. Wähle genau die eine nervige wiederkehrende Frage, deren Beantwortung dich ermüdet. Baue den kleinstmöglichen Assistenten, der genau diese eine Frage stemmen kann – in deiner Stimme, mit klaren Regeln dafür, wann er zurücktritt und dich selbst übernehmen lässt. Bring das zum Laufen. Dann kannst du erweitern.
Der Grund, warum dieser Aufbau funktioniert, ist nicht Magie von OpenClaw. Es ist die Ehrlichkeit im Umfang. Ein Delegierter, der weiß, was er nicht weiß, ist hundertmal wertvoller als einer, der alles selbstbewusst und schlecht erledigt.
Morgen früh kommt wieder eine Druckerfrage rein. Ich werde sie stundenlang nicht bemerken. Bis ich es mitbekomme, ist sie längst gelöst.
Das war die Version von mir, die ich zuerst bauen wollte.
Häufig gestellte Fragen
Was ist OpenClaw und wer hat es entwickelt?
OpenClaw ist eine Open-Source-Plattform für persönliche KI-Assistenten, die am 30. Januar 2026 vom österreichischen Entwickler Peter Steinberger veröffentlicht wurde. Sie läuft lokal, lässt sich mit jedem LLM-Backend (Claude, GPT, DeepSeek) integrieren und stellt dieses Backend über Messaging-Apps wie Telegram, Signal und Discord bereit. Das Projekt überschritt bis März 2026 die Marke von 247.000 GitHub-Sternen und wird mittlerweile von einer OpenAI-unterstützten Non-Profit-Stiftung betreut.
Brauche ich einen Mac Mini, um OpenClaw zu betreiben?
Nein. Ein Mac Mini ist die günstigste Hardware, um ein lokales LLM mit OpenClaw laufen zu lassen. Wenn du jedoch eine Cloud-LLM-API (Claude, GPT, etc.) nutzt, reicht ein Linux-VPS für 4,99 $/Monat völlig aus. Die OpenClaw-Orchestrierungsschleife bleibt im Idle bei ca. 180MB RAM. Hostinger bietet für seine KVM-VPS-Pläne eine One-Click-Deployment-Option für OpenClaw mit verschlüsseltem Credential-Vault – siehe oben im Build-Walkthrough.
Ist OpenClaw im Jahr 2026 sicher für den Einsatz?
Für OpenClaw wurden rund 1.100 Sicherheitsmeldungen eingereicht, von denen etwa 650 behoben sind. Ein großer Teil der übrigen ist KI-generiertes „Slop Reporting“. Echte Schwachstellen betreffen vor allem offene Admin-Ports, Klartext-Zugangsdaten, Sandbox-Escape bei Shell-Kommandos und gefälschte Webhooks – all das ist mit grundlegender Disziplin abzusichern. Binde das Dashboard nur an localhost, nutze SSH-Tunnel, prüfe Webhook-Secrets und setze Whitelists für Shell-Befehle.
Was kostet es, meine Stimme mit 11 Labs zu klonen?
Professionelles Voice Cloning bei 11 Labs erfordert mindestens den Creator-Plan ab 22 $/Monat. Für das Training benötigst du mindestens 30 Minuten saubere Studioton-Aufnahmen. Die Generierung über die API kostet 0,06 $ pro 1.000 Zeichen auf dem Turbo v2.5-Modell oder 0,12 $ für Multilingual v3. Für kurze Voice-Memo-Antworten ist Turbo nur halb so teuer, mit einer Latenz von ca. 400ms gegenüber 2 Sekunden – bei diesen Längen ist ein Qualitätsunterschied nicht wahrnehmbar.
Warum verlangt Telegram für Sprachnachrichten OGG Opus statt MP3?
Das sendVoice-Endpoint von Telegram rendert Audiodateien nur dann als echte Sprachnachricht (inklusive abgerundeter Waveform-UI und Wiedergabe-Geschwindigkeitskontrollen), wenn die Datei OGG mit Opus-Codec, mono, und unter 1MB groß ist. MP3-Dateien werden als generische Audio-Anhänge mit Album-Artwork-UI dargestellt, was den Eindruck einer echten Voice Message zerstört. Umwandeln kannst du mit ffmpeg -i reply.mp3 -c:a libopus -b:a 32k -ac 1 reply.ogg.
Lassen Sie uns zusammenarbeiten
Sie möchten KI-Systeme entwickeln, Workflows automatisieren oder Ihre Tech-Infrastruktur skalieren? Ich unterstütze Sie gerne dabei.
- Fiverr (individuelle Builds & Integrationen): fiverr.com/s/EgxYmWD
- Portfolio: mejba.me
- Ramlit Limited (Enterprise-Lösungen): ramlit.com
- ColorPark (Design & Branding): colorpark.io
- xCyberSecurity (Security Services): xcybersecurity.io