2026 OpenClaw v2026.5.20 Leitfaden:
Discord-Echtzeit-Sprache followUsers, xAI Device-Code OAuth und Policy-Plugin doctor-Lint (Tagesmiete-macOS)
Wer ein selbst gehostetes OpenClaw-Gateway auf v2026.5.20 hebt, sieht oft Text in Discord laufen, während Sprachkanäle leer bleiben; xAI-Login scheitert auf dem VPS, weil kein Browser localhost erreicht; und doctor plötzlich Policy-Lint ausgibt, das vorher unsichtbar war. Das ist ein Release-Thema — keine drei Zufallstickets. Dieser Leitfaden liefert drei Schmerzcluster, eine Entscheidungsmatrix, sieben geordnete Schritte, eine Triage-Tabelle, drei Kennzahlen und eine 1–3-Tage-Mietkadenz, mit Links zum Installationsguide, zur Telegram/Discord-Kopplung und Allowlist und zur SSH/VNC-FAQ.
Inhaltsverzeichnis
- 01. Drei Schmerzcluster: Sprach-Follow, headless xAI OAuth, Policy-Lint
- 02. Entscheidungsmatrix: followUsers, bootstrapContextFiles, Device-Code, Policy plugin
- 03. Sieben Umsetzungsschritte: Upgrade → Sprache → xAI → doctor → Evidenz
- 04. Triage-Tabelle: Symptom → erste Maßnahme → falscher Schritt
- 05. Kennzahlen, Mythen und 1–3-Tage-Mietplan
- 06. Headless Linux-VPS vs. Tagesmiete Mac für Sprache und Auth
01. Drei Schmerzcluster: Sprach-Follow, headless xAI OAuth, Policy-Lint
1) Discord-Sprache folgt dem falschen Raum oder tritt gar nicht bei: v2026.5.20 bringt voice.followUsers — der Bot wechselt Sprachkanäle mit konfigurierten Discord-User-IDs, statt auf /vc join oder festes autoJoin zu warten. Wer Anzeigenamen statt Snowflakes einträgt oder Guild-/Kanal-Allowlists vergisst, sieht DMs funktionieren und Sprache tot. Release Notes betonen Allowed-Channel-Checks, Multi-User-Handoff, begrenzte Reconciliation und DAVE-Recovery — Sprache ist nicht mehr «überall hören, wo jemand redet». Kombinieren Sie das mit dem Kopplungs- und Allowlist-Guide: gesprochener Ingress unterliegt denselben Mitglieds- und Kanalrichtlinien wie Text.
2) xAI-Auth bricht auf VPS/SSH, weil OAuth einen Browser erwartet: Vor 5.20 kopierten Teams Tokens vom Laptop oder bastelten SSH-Port-Forwards für Provider-OAuth. Das Release ergänzt Device-Code OAuth über openclaw models auth login --provider xai --device-code: Terminal zeigt URL und Code, Sie bestätigen auf einem beliebigen Gerät, Credentials landen auf dem headless Host. Die typische Fehlermeldung wechselt von «Callback trifft localhost nicht» zu «Code abgelaufen, niemand am Terminal» oder «falsche Auth-Profil-Reihenfolge nach Login». Device-Code ist eine Change-Window-Aktion mit Mensch am Terminal — kein unbeaufsichtigtes CI.
3) Policy-Plugin-Lint taucht nach Upgrade auf: 5.20 liefert ein Policy plugin für policy-gestützte Kanal-Conformance, doctor-Lint und opt-in Workspace-Repair. WARN-Zeilen wirken wie «Gateway kaputt». Meist markiert Lint DM-Policies, Allowlist-Lücken, Klartext-Secrets in openclaw.json oder Kanäle, die Ihrer Security-Baseline widersprechen. Doctor warnt auch bei Sandbox-Tool-Policy, die MCP-Tools versteckt, und bei symlinked Credential-Dateien (fail-closed). Führen Sie doctor vor der Produktions-Sprache aus — Policy-Befunde auf einem Miet-Mac sind günstiger als im Live-Standup.
Die drei Flächen hängen zusammen: Discord-Echtzeit-Sprache injiziert standardmäßig IDENTITY.md, USER.md und SOUL.md in Provider-Instruktionen — Persona-Drift in Sprache ist oft ein Bootstrap-Datei-Problem, kein Routing-Problem. xAI Device-Code liefert einen funktionierenden Inferenz-Pfad für Sprach-Turns zu Grok-Klassen-Modellen. Policy-Lint sagt, ob der Kanal für follow-users wirklich zu Pairing und Allowlist passt.
02. Entscheidungsmatrix: followUsers, bootstrapContextFiles, Device-Code, Policy plugin
Nutzen Sie die Tabelle im Change Window als Abnahmeblatt — nicht als Marketing. Archivieren Sie die rechte Spalte auf dem Miet-Host, bevor Sie Secrets löschen.
| Fläche (5.20) | Pass-Signal | Miet-Evidenz |
|---|---|---|
voice.followUsers |
Bot tritt bei, wenn gelisteter User erlaubten Sprachkanal betritt; wechselt mit; verlässt bei Disconnect | Redigiertes Voice-State-Log + channels status --channel discord JSON |
voice.followUsersEnabled |
Standard true bei konfigurierter Liste; false pausiert ohne ID-Löschung | Screenshot Control-UI Sprach-Panel |
voice.realtime.bootstrapContextFiles |
Standard IDENTITY/USER/SOUL injiziert; Teilmenge oder [] deaktiviert; AGENTS.md bleibt im Agent-Kontext |
Vorher/nachher Transkript-Snippet zur Persona |
| xAI Device-Code OAuth | models auth login --provider xai --device-code erfolgreich; Modellliste zeigt xAI-Einträge |
Redigierte Auth-Profil-Liste; keine API-Keys in Config-JSON |
| Policy plugin / doctor lint | Conformance-WARN behoben oder mit Ticket gewaived; opt-in repair falls gewählt | openclaw doctor stdout vor/nach Fix archiviert |
| Sprach-Allowlist-Ingress | Nicht allowlistetes Mitglied wird vor Transkription abgewiesen | Probe mit allowlistetem vs. blockiertem Testaccount |
Wählen Sie den Join-Modus bewusst. followUsers, wenn der Bot Operatoren zwischen Huddle-Räumen folgen soll. autoJoin für feste Raum-Assistenten. /vc join für Einmal-Sessions. Alle drei ohne dokumentierte Priorität erzeugen «Geister-Bot im leeren Kanal»-Tickets.
bootstrapContextFiles: was sich in Echtzeit-Sprache ändert
Echtzeit-Sprach-Turns sind schnell und schlank; sie spielen nicht automatisch den vollen Workspace-Kontext ab. Standardmäßig injiziert 5.20 IDENTITY.md, USER.md und SOUL.md, damit gesprochene Antworten zur gerouteten Agent-Persona passen. Setzen Sie voice.realtime.bootstrapContextFiles auf eine Teilmenge für schlankere Prompts oder [] für neutrale Sprache. Das ersetzt nicht openclaw_agent_consult für Tools, Memory oder aktuelle Fakten — nur Identity-Grounding für niedrige Latenz. Klingt der Bot in Sprache generisch, in Text aber nicht: zuerst Bootstrap-Dateien prüfen.
Policy plugin: Lint vs. Repair
Das Policy plugin ergänzt doctor-sichtbares Lint für Kanal-Conformance — strukturierte Hinweise, wenn DM-Policy, Guild-Allowlists oder Kanal-Maps von der Security-Posture abweichen. Opt-in Workspace-Repair wendet sichere Fixes an, wenn Sie explizit zustimmen; kein stilles Auto-Migrate in Produktionsstunden. Plaintext-Provider-Keys? SecretRef migrieren, bevor Sprache in Kunden-Guilds geht. Doctor 5.20 entfernt veraltete thinkingFormat-Compat-Keys bei doctor --fix und warnt, wenn Sandbox-Policy MCP-Tools versteckt — beides steht im selben Report wie Policy-Lint.
03. Sieben Umsetzungsschritte: Upgrade → Sprache → xAI → doctor → Evidenz
- Baseline einfrieren:
openclaw --version, Discord-Sprachblock, xAI-Auth-Profile undopenclaw channels status --jsondokumentieren. Pfad zuopenclaw.jsonund Gateway-Startargs notieren. - Backup und Upgrade: Config und Workspace-Profile (IDENTITY/USER/SOUL) sichern.
openclaw updateauf v2026.5.20; stdout, Exit-Code und npm-Integrität bei Tarball-Pin archivieren. - Discord followUsers konfigurieren: Snowflake-IDs (roh oder
discord:<id>). Guild-/Kanal-Allowlists aus dem Kopplungs-Guide bestätigen. Gateway nach Sprach-Änderungen neu starten. - bootstrapContextFiles abstimmen: Mit Defaults starten; kurze Sprach-Probe. Bei zu schwerer Persona Teilmenge; bei Neutralität
[]und generischen Ton akzeptieren. - xAI auf headless Hosts autorisieren: Device-Code-Login per SSH/VPS; Verifikation auf Handy/Laptop innerhalb der Code-Laufzeit. Modellliste und eine Completion vor Kunden-Traffic prüfen.
- Policy plugin und doctor:
openclaw doctor; Lint beheben oder waiven. Opt-in repair zuerst auf Wegwerf-Host. Nachdoctor --fixerneut laufen lassen. - Kanäle abgleichen und Evidenz archivieren: Discord configured/enabled mit Sprach-Probe abgleichen. Logs redigieren; Demo-Tokens und temporäre OAuth-Profile auf Miet-Maschine löschen.
# Upgrade und Baseline
openclaw --version
openclaw channels status --json | head -c 8000 | tee /tmp/oc520-channels-before.json
openclaw update
# Headless xAI OAuth (URL/Code in beliebigem Browser abschließen)
openclaw models auth login --provider xai --device-code
# Policy-Conformance und Kanalgesundheit
openclaw doctor 2>&1 | tee /tmp/oc520-doctor.txt
openclaw channels status --probe --channel discord
Halten Sie mindestens 15 GB frei vor parallelem Upgrade, Sprach-Provider-Warmup und doctor repair — 5.20 bump Codex-Harness und Baileys rc12. Bandbreite und Mietkosten: SSH/VNC-FAQ. Neuinstallationen: Multiplattform-Guide für Node 24 (oder ≥22.19).
Beispiel followUsers-Konfiguration
Spracheinstellungen unter dem Discord-Kanalblock. IDs müssen numerische Snowflakes aus Developer Mode sein:
{
"channels": {
"discord": {
"voice": {
"enabled": true,
"followUsers": ["123456789012345678", "discord:987654321098765432"],
"followUsersEnabled": true,
"realtime": {
"bootstrapContextFiles": ["IDENTITY.md", "USER.md", "SOUL.md"]
}
}
}
}
}
Nach dem Edit Gateway neu starten; gefolgter User betritt allowlisteten Sprachkanal, Logs tailen. Bewegt sich der Bot nicht: followUsersEnabled, Allowlist, Connect/Speak-Rechte prüfen — nicht sofort Model-Routes ändern.
Device-Code OAuth auf dem VPS
Per SSH einloggen, Device-Code-Login starten, Session offen halten bis Auth fertig. URL auf vertrauenswürdigem Gerät öffnen, Code eingeben, Scopes bestätigen. Codes nicht in Chat-Logs pasten. Auth ok, Completions fail: Auth-Profil-Reihenfolge und alte Klartext-xAI-Keys in Config — doctor WARN zu Plaintext-Secrets existiert genau für diese Mischspeicher-Bugs.
04. Triage-Tabelle: Symptom → erste Maßnahme → falscher Schritt
| Symptom | Erste Maßnahme | Falscher Schritt |
|---|---|---|
| Bot ignoriert Operator in Sprache | User-ID in followUsers; allowlisteten Kanal; Connect-Berechtigung prüfen |
groupPolicy: open am Text setzen, um Sprache zu «fixen» |
| Sprach-Persona weicht vom Text-Agent ab | bootstrapContextFiles und Profile-MD im Workspace prüfen |
Ganzes AGENTS.md in Sprach-Config duplizieren (unsupported) |
| xAI Device-Code abgelaufen | Login mit bereitem Operator wiederholen; Uhr auf VPS prüfen | Lang lebende API-Keys in git-tracked JSON einbetten |
| Doctor flutet Policy-WARN | Nach Kategorie triagieren: Secrets, Allowlists, Sandbox/MCP; fixen oder waiven | Doctor deaktivieren oder Policy plugin blind löschen |
| Zufällige Sprache wird transkribiert | Discord-Mitglied-/Kanal-Allowlists verschärfen; mit blockiertem Account testen | Annehmen, Sprache sei öffentlich, weil Bot im Kanal sitzt |
| Bot hängt nach DAVE-Disconnect | Follow-User-Move wiederholen; 5.20 DAVE-Recovery-Notes; Gateway-Neustart | Allowlists entfernen, um Join zu erzwingen |
Text-Discord ok, Sprache fail: Problem splitten — App-Registrierung teilen sich Text und Sprache, Sprache addiert Realtime-Provider, Follow-State und Ingress-Allowlists. channels status und kurzes Voice-Log vor drei gleichzeitigen Änderungen — wer parallel xAI re-auth, SOUL.md umschreibt und Allowlists weitet, weiß selten, welcher Fix half.
05. Kennzahlen, Mythen und 1–3-Tage-Mietplan
- Kennzahl 1: GitHub-Release v2026.5.20 vom 2026-05-21 dokumentiert Discord
followUsers, Realtime-Bootstrap-Injection, Policy plugin und xAI Device-Code OAuth — Audit-Anker für Ihr Change-Ticket. - Kennzahl 2: npm-Integrität für
openclaw@2026.5.20auf der Release-Seite (sha512-cgshS76CxS3Vp9NGtJR2UGtVZxVR5/4rvok8DKGGL19DugAftNabsXfYajyAEiJ3dC8QTXNqF62MdQNzUnQe8Q==); auf Miet-Hosts pinnen bei Kunden-Reproduktion. - Kennzahl 3: Operator-Proben auf M4-Miet-Hardware melden 3–5 Stunden für followUsers, Device-Code OAuth und Policy-Lint-Clearance bei dokumentierten Discord-Allowlists — länger bei Pairing-Schuld aus Pre-5.12-Beständen.
Mythos A: «followUsers ersetzt Allowlists.» Nein — Ingress bleibt policy-gated. Mythos B: «Device-Code macht SecretRef überflüssig.» Klartext-WARNs bleiben. Mythos C: «Policy-Lint heißt Rollback.» Meist Conformance-Schuld, kein Crash.
Tag 1 (Freeze + Upgrade + doctor): Vormittag channels status und Auth-Profile. Nachmittag Upgrade auf 5.20, doctor archivieren. Abend followUsers für eine Operator-ID in Test-Guild.
Tag 2 (Sprach-Persona + xAI): bootstrapContextFiles mit Sprach-Proben; Device-Code auf gleicher Host-Form wie Produktions-VPS; xAI-Completion auf geroutetem Agent.
Tag 3 (Policy repair + Übergabe): Rest-Lint lösen oder waiven; allowlistete vs. blockierte Sprach-Proben; Miet-Secrets löschen; Runbook-Abschnitt mit Voice-IDs, Bootstrap-Wahl und Auth-Profil-Reihenfolge.
Vier Artefakte exportieren: redigiertes channels status JSON, doctor-Zusammenfassung, Sprach-Probe-Transkript, Auth-Profil-Liste ohne Secrets. Stakeholder wollen Follow zum On-Call; Auditoren wollen Allowlists und Policy-Lint dokumentiert.
06. Headless Linux-VPS vs. Tagesmiete Mac für Sprache und Auth
Ein Linux-VPS ist günstig für 24/7-Gateway und natürlicher Ort für Device-Code OAuth — Browser-Schritt auf dem Handy, Credentials auf dem Server. Das bricht zusammen, wenn Sie Discord-Sprachzustand debuggen, Control-UI-Toggles prüfen, Keychain-Deploy-Keys nutzen und Profile-MD parallel zum Audio lesen müssen. SSH-Logs, Handy-Browser und privater Discord-Client verstecken Wandzeit, die oft eine kurze Apple-Silicon-Miete übersteigt.
Viel der CLI-Checkliste geht allein auf dem VPS; Produktion kann auf Linux bleiben. Der Mietwert ist Proben-Fidelity: natives macOS bündelt Gateway, Control UI und Discord-Desktop in einer Session, followUsers-Evidenz ohne Log-Kopiererei, Policy repair auf Wegwerf-Workspace wie im Mac-zentrierten Team. Container für Spike-Tests, schlecht für Sprach-Latenz und Follow-Handoff-UX.
Für ein übergabefertiges Runbook in 1–3 Tagen ohne Hardware-Kauf — und ohne Produktions-OAuth auf privaten Discord-Accounts — ist Tagesmiete Mac meist glatter als VPS-SSH plus Handy-OAuth plus Audio-Ad-hoc. Pakete: M4-Preisleitfaden; Konnektivität: SSH/VNC-FAQ.