FAQ

Häufig gestellte Fragen

Schnelle Antworten plus ausführlichere Fehlerbehebung für reale Setups (lokale Entwicklung, VPS, Multi-Agent, OAuth/API-Schlüssel, Modell-Failover). Laufzeitdiagnosen finden Sie unter Fehlerbehebung. Die vollständige Konfigurationsreferenz finden Sie unter Konfiguration.

Die ersten 60 Sekunden, wenn etwas defekt ist

  1. Schnellstatus (erste Prüfung)

    openclaw status
    

    Schnelle lokale Zusammenfassung: OS + Update, Erreichbarkeit von Gateway/Dienst, Agenten/Sitzungen, Provider-Konfiguration + Laufzeitprobleme (wenn das Gateway erreichbar ist).

  2. Einfügbarer Bericht (sicher teilbar)

    openclaw status --all
    

    Schreibgeschützte Diagnose mit Log-Auszug (Token redigiert).

  3. Daemon- + Port-Status

    openclaw gateway status
    

    Zeigt Supervisor-Laufzeit vs. RPC-Erreichbarkeit, die Ziel-URL der Prüfung und welche Konfiguration der Dienst wahrscheinlich verwendet hat.

  4. Tiefe Prüfungen

    openclaw status --deep
    

    Führt eine Live-Gateway-Health-Prüfung aus, einschließlich Kanalprüfungen, wenn unterstützt (erfordert ein erreichbares Gateway). Siehe Health.

  5. Das neueste Log verfolgen

    openclaw logs --follow
    

    Wenn RPC nicht verfügbar ist, weichen Sie aus auf:

    tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"
    

    Datei-Logs sind von Dienst-Logs getrennt; siehe Logging und Fehlerbehebung.

  6. Doctor ausführen (Reparaturen)

    openclaw doctor
    

    Repariert/migriert Konfiguration/Zustand + führt Health-Checks aus. Siehe Doctor.

  7. Gateway-Snapshot

    openclaw health --json
    openclaw health --verbose   # shows the target URL + config path on errors
    

    Fragt das laufende Gateway nach einem vollständigen Snapshot (nur WS). Siehe Health.

Schnellstart und Ersteinrichtung

Fragen und Antworten zur Erstausführung — Installation, Onboarding, Auth-Routen, Abonnements, anfängliche Fehler — finden Sie in der FAQ zur Erstausführung.

Was ist OpenClaw?

Was ist OpenClaw in einem Absatz?

OpenClaw ist ein persönlicher KI-Assistent, den Sie auf Ihren eigenen Geräten ausführen. Er antwortet auf den Messaging-Oberflächen, die Sie bereits nutzen (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat und gebündelte Kanal-Plugins wie QQ Bot), und kann auf unterstützten Plattformen auch Sprache + einen Live-Canvas verwenden. Das Gateway ist die stets aktive Steuerungsebene; der Assistent ist das Produkt.

Wertversprechen

OpenClaw ist nicht „nur ein Claude-Wrapper“. Es ist eine local-first Steuerungsebene, mit der Sie einen leistungsfähigen Assistenten auf Ihrer eigenen Hardware ausführen können, erreichbar über die Chat-Apps, die Sie bereits nutzen, mit zustandsbehafteten Sitzungen, Speicher und Tools - ohne die Kontrolle über Ihre Workflows an ein gehostetes SaaS abzugeben.

Highlights:

  • Ihre Geräte, Ihre Daten: Führen Sie das Gateway dort aus, wo Sie möchten (Mac, Linux, VPS), und halten Sie Workspace + Sitzungsverlauf lokal.
  • Echte Kanäle, keine Web-Sandbox: WhatsApp/Telegram/Slack/Discord/Signal/iMessage/etc, plus mobile Sprache und Canvas auf unterstützten Plattformen.
  • Modellagnostisch: Nutzen Sie Anthropic, OpenAI, MiniMax, OpenRouter usw., mit Routing pro Agent und Failover.
  • Nur-lokal-Option: Führen Sie lokale Modelle aus, sodass alle Daten auf Ihrem Gerät bleiben können, wenn Sie das möchten.
  • Multi-Agent-Routing: Trennen Sie Agenten nach Kanal, Konto oder Aufgabe, jeweils mit eigenem Workspace und eigenen Standardwerten.
  • Open Source und hackbar: Prüfen, erweitern und selbst hosten ohne Vendor-Lock-in.

Docs: Gateway, Kanäle, Multi-Agent, Speicher.

Ich habe es gerade eingerichtet - was sollte ich zuerst tun?

Gute erste Projekte:

  • Eine Website erstellen (WordPress, Shopify oder eine einfache statische Website).
  • Eine mobile App prototypisieren (Outline, Screens, API-Plan).
  • Dateien und Ordner organisieren (Aufräumen, Benennung, Tagging).
  • Gmail verbinden und Zusammenfassungen oder Nachfassaktionen automatisieren.

Es kann große Aufgaben bewältigen, funktioniert aber am besten, wenn Sie sie in Phasen aufteilen und Sub-Agenten für parallele Arbeit verwenden.

Was sind die fünf wichtigsten Alltagsanwendungsfälle für OpenClaw?

Alltägliche Erfolge sehen meist so aus:

  • Persönliche Briefings: Zusammenfassungen von Posteingang, Kalender und Nachrichten, die Sie interessieren.
  • Recherche und Entwürfe: Schnelle Recherche, Zusammenfassungen und erste Entwürfe für E-Mails oder Dokumente.
  • Erinnerungen und Nachfassaktionen: Durch Cron oder Heartbeat gesteuerte Hinweise und Checklisten.
  • Browserautomatisierung: Formulare ausfüllen, Daten sammeln und Webaufgaben wiederholen.
  • Geräteübergreifende Koordination: Senden Sie eine Aufgabe von Ihrem Telefon, lassen Sie das Gateway sie auf einem Server ausführen und erhalten Sie das Ergebnis im Chat zurück.
Kann OpenClaw bei Lead-Generierung, Outreach, Anzeigen und Blogs für ein SaaS helfen?

Ja, für Recherche, Qualifizierung und Entwürfe. Es kann Websites scannen, Shortlists erstellen, potenzielle Kunden zusammenfassen und Entwürfe für Outreach- oder Anzeigentexte schreiben.

Bei Outreach oder Anzeigenkampagnen sollten Menschen eingebunden bleiben. Vermeiden Sie Spam, befolgen Sie lokale Gesetze und Plattformrichtlinien und prüfen Sie alles, bevor es gesendet wird. Das sicherste Muster ist, OpenClaw entwerfen zu lassen und Sie genehmigen.

Docs: Sicherheit.

Was sind die Vorteile gegenüber Claude Code für Webentwicklung?

OpenClaw ist ein persönlicher Assistent und eine Koordinationsschicht, kein IDE-Ersatz. Verwenden Sie Claude Code oder Codex für die schnellste direkte Coding-Schleife innerhalb eines Repos. Verwenden Sie OpenClaw, wenn Sie dauerhaften Speicher, geräteübergreifenden Zugriff und Tool-Orchestrierung möchten.

Vorteile:

  • Persistenter Speicher + Workspace über Sitzungen hinweg
  • Multi-Plattform-Zugriff (WhatsApp, Telegram, TUI, WebChat)
  • Tool-Orchestrierung (Browser, Dateien, Planung, Hooks)
  • Always-on Gateway (auf einem VPS ausführen, von überall interagieren)
  • Nodes für lokalen Browser/Bildschirm/Kamera/Exec

Showcase: https://openclaw.ai/showcase

Skills und Automatisierung

Wie passe ich Skills an, ohne das Repo dirty zu halten?

Verwenden Sie verwaltete Overrides, statt die Repo-Kopie zu bearbeiten. Legen Sie Ihre Änderungen in ~/.openclaw/skills/<name>/SKILL.md ab (oder fügen Sie einen Ordner über skills.load.extraDirs in ~/.openclaw/openclaw.json hinzu). Die Priorität ist <workspace>/skills<workspace>/.agents/skills~/.agents/skills~/.openclaw/skills → gebündelt → skills.load.extraDirs, sodass verwaltete Overrides weiterhin Vorrang vor gebündelten Skills haben, ohne Git zu berühren. Wenn Sie den Skill global installieren müssen, er aber nur für bestimmte Agenten sichtbar sein soll, behalten Sie die geteilte Kopie in ~/.openclaw/skills und steuern Sie die Sichtbarkeit mit agents.defaults.skills und agents.list[].skills. Nur upstream-würdige Änderungen sollten im Repo liegen und als PRs eingereicht werden.

Kann ich Skills aus einem benutzerdefinierten Ordner laden?

Ja. Fügen Sie zusätzliche Verzeichnisse über skills.load.extraDirs in ~/.openclaw/openclaw.json hinzu (niedrigste Priorität). Die Standardpriorität ist <workspace>/skills<workspace>/.agents/skills~/.agents/skills~/.openclaw/skills → gebündelt → skills.load.extraDirs. clawhub installiert standardmäßig nach ./skills, was OpenClaw in der nächsten Sitzung als <workspace>/skills behandelt. Wenn der Skill nur für bestimmte Agenten sichtbar sein soll, kombinieren Sie das mit agents.defaults.skills oder agents.list[].skills.

Wie kann ich verschiedene Modelle für verschiedene Aufgaben verwenden?

Heute werden folgende Muster unterstützt:

  • Cron-Jobs: Isolierte Jobs können pro Job einen model-Override festlegen.
  • Sub-Agenten: Leiten Sie Aufgaben an separate Agenten mit unterschiedlichen Standardmodellen weiter.
  • Wechsel bei Bedarf: Verwenden Sie /model, um das Modell der aktuellen Sitzung jederzeit zu wechseln.

Siehe Cron-Jobs, Multi-Agent-Routing und Slash-Befehle.

Der Bot friert bei schwerer Arbeit ein. Wie lagere ich das aus?

Verwenden Sie Sub-Agenten für lange oder parallele Aufgaben. Sub-Agenten laufen in ihrer eigenen Sitzung, geben eine Zusammenfassung zurück und halten Ihren Hauptchat reaktionsfähig.

Bitten Sie Ihren Bot, „einen Sub-Agenten für diese Aufgabe zu starten“, oder verwenden Sie /subagents. Verwenden Sie /status im Chat, um zu sehen, was das Gateway gerade tut (und ob es beschäftigt ist).

Token-Tipp: Lange Aufgaben und Sub-Agenten verbrauchen beide Token. Wenn Kosten ein Thema sind, legen Sie über agents.defaults.subagents.model ein günstigeres Modell für Sub-Agenten fest.

Docs: Sub-Agenten, Hintergrundaufgaben.

Wie funktionieren thread-gebundene Subagent-Sitzungen auf Discord?

Verwenden Sie Thread-Bindings. Sie können einen Discord-Thread an einen Subagent- oder Sitzungsziel binden, sodass Follow-up-Nachrichten in diesem Thread in dieser gebundenen Sitzung bleiben.

Grundablauf:

  • Mit sessions_spawn starten, dabei thread: true verwenden (und optional mode: "session" für persistente Follow-ups).
  • Oder manuell mit /focus <target> binden.
  • Verwenden Sie /agents, um den Binding-Status zu prüfen.
  • Verwenden Sie /session idle <duration|off> und /session max-age <duration|off>, um automatisches Unfocus zu steuern.
  • Verwenden Sie /unfocus, um den Thread zu lösen.

Erforderliche Konfiguration:

  • Globale Standardwerte: session.threadBindings.enabled, session.threadBindings.idleHours, session.threadBindings.maxAgeHours.
  • Discord-Overrides: channels.discord.threadBindings.enabled, channels.discord.threadBindings.idleHours, channels.discord.threadBindings.maxAgeHours.
  • Automatische Bindung beim Start: channels.discord.threadBindings.spawnSessions ist standardmäßig true; setzen Sie es auf false, um thread-gebundene Sitzungsstarts zu deaktivieren.

Docs: Sub-Agenten, Discord, Konfigurationsreferenz, Slash-Befehle.

Ein Subagent ist fertig, aber die Abschlussaktualisierung ging an den falschen Ort oder wurde nie gepostet. Was sollte ich prüfen?

Prüfen Sie zuerst die aufgelöste Requester-Route:

  • Die Zustellung eines Subagent im Abschlussmodus bevorzugt jede gebundene Thread- oder Konversationsroute, wenn eine vorhanden ist.
  • Wenn der Abschlussursprung nur einen Kanal enthält, fällt OpenClaw auf die gespeicherte Route der Requester-Sitzung zurück (lastChannel / lastTo / lastAccountId), sodass direkte Zustellung weiterhin gelingen kann.
  • Wenn weder eine gebundene Route noch eine nutzbare gespeicherte Route existiert, kann die direkte Zustellung fehlschlagen, und das Ergebnis fällt auf die Zustellung über die Warteschlange der Sitzung zurück, statt sofort im Chat gepostet zu werden.
  • Ungültige oder veraltete Ziele können weiterhin einen Queue-Fallback oder einen endgültigen Zustellfehler erzwingen.
  • Wenn die letzte sichtbare Assistentenantwort des Child exakt das Silent-Token NO_REPLY / no_reply oder exakt ANNOUNCE_SKIP ist, unterdrückt OpenClaw die Ankündigung absichtlich, statt veralteten früheren Fortschritt zu posten.
  • Wenn das Child nach nur Tool-Aufrufen ein Timeout hatte, kann die Ankündigung dies zu einer kurzen Zusammenfassung des Teilfortschritts verdichten, statt rohe Tool-Ausgabe erneut abzuspielen.

Debug:

openclaw tasks show <runId-or-sessionKey>

Docs: Sub-Agenten, Hintergrundaufgaben, Sitzungs-Tools.

Cron oder Erinnerungen werden nicht ausgelöst. Was sollte ich prüfen?

Cron läuft innerhalb des Gateway-Prozesses. Wenn das Gateway nicht kontinuierlich läuft, werden geplante Jobs nicht ausgeführt.

Checkliste:

  • Bestätigen Sie, dass Cron aktiviert ist (cron.enabled) und OPENCLAW_SKIP_CRON nicht gesetzt ist.
  • Prüfen Sie, dass das Gateway rund um die Uhr läuft (kein Sleep/keine Neustarts).
  • Überprüfen Sie die Zeitzoneneinstellungen für den Job (--tz vs. Host-Zeitzone).

Debug:

openclaw cron run <jobId>
openclaw cron runs --id <jobId> --limit 50

Docs: Cron-Jobs, Automatisierung & Aufgaben.

Cron wurde ausgelöst, aber nichts wurde an den Kanal gesendet. Warum?

Prüfen Sie zuerst den Zustellmodus:

  • --no-deliver / delivery.mode: "none" bedeutet, dass kein Fallback-Senden durch den Runner erwartet wird.
  • Ein fehlendes oder ungültiges Ankündigungsziel (channel / to) bedeutet, dass der Runner die ausgehende Zustellung übersprungen hat.
  • Authentifizierungsfehler des Kanals (unauthorized, Forbidden) bedeuten, dass der Runner versucht hat zuzustellen, die Anmeldedaten dies aber blockiert haben.
  • Ein stilles isoliertes Ergebnis (nur NO_REPLY / no_reply) wird als absichtlich nicht zustellbar behandelt, daher unterdrückt der Runner auch die eingereihte Fallback-Zustellung.

Bei isolierten Cron-Jobs kann der Agent weiterhin direkt mit dem message- Tool senden, wenn eine Chat-Route verfügbar ist. --announce steuert nur den Fallback-Pfad des Runners für finalen Text, den der Agent nicht bereits gesendet hat.

Debuggen:

openclaw cron runs --id <jobId> --limit 50
openclaw tasks show <runId-or-sessionKey>

Docs: Cron-Jobs, Hintergrundaufgaben.

Warum hat ein isolierter Cron-Lauf das Modell gewechselt oder einmal erneut versucht?

Das ist in der Regel der Live-Modellwechselpfad, keine doppelte Planung.

Isolierter Cron kann eine Laufzeit-Modellübergabe speichern und erneut versuchen, wenn der aktive Lauf LiveSessionModelSwitchError auslöst. Der erneute Versuch behält den gewechselten Provider/das gewechselte Modell bei, und wenn der Wechsel eine neue Auth-Profile-Überschreibung enthielt, speichert Cron auch diese vor dem erneuten Versuch.

Zugehörige Auswahlregeln:

  • Die Modellüberschreibung des Gmail-Hooks gewinnt zuerst, wenn sie anwendbar ist.
  • Dann model pro Job.
  • Dann jede gespeicherte Modellüberschreibung der Cron-Sitzung.
  • Dann die normale Agent-/Standardmodellauswahl.

Die Wiederholungsschleife ist begrenzt. Nach dem ersten Versuch plus 2 Wechsel-Wiederholungen bricht Cron ab, statt endlos weiterzulaufen.

Debuggen:

openclaw cron runs --id <jobId> --limit 50
openclaw tasks show <runId-or-sessionKey>

Docs: Cron-Jobs, Cron-CLI.

Wie installiere ich Skills unter Linux?

Verwenden Sie native openclaw skills-Befehle oder legen Sie Skills in Ihrem Workspace ab. Die macOS-Skills-UI ist unter Linux nicht verfügbar. Durchsuchen Sie Skills unter https://clawhub.ai.

openclaw skills search "calendar"
openclaw skills search --limit 20
openclaw skills install <skill-slug>
openclaw skills install <skill-slug> --version <version>
openclaw skills install <skill-slug> --force
openclaw skills update --all
openclaw skills list --eligible
openclaw skills check

Das native openclaw skills install schreibt in das skills/- Verzeichnis des aktiven Workspaces. Installieren Sie die separate clawhub-CLI nur, wenn Sie eigene Skills veröffentlichen oder synchronisieren möchten. Für gemeinsam genutzte Installationen über Agenten hinweg legen Sie den Skill unter ~/.openclaw/skills ab und verwenden agents.defaults.skills oder agents.list[].skills, wenn Sie einschränken möchten, welche Agenten ihn sehen können.

Kann OpenClaw Aufgaben nach Zeitplan oder kontinuierlich im Hintergrund ausführen?

Ja. Verwenden Sie den Gateway-Scheduler:

  • Cron-Jobs für geplante oder wiederkehrende Aufgaben (bleiben über Neustarts hinweg erhalten).
  • Heartbeat für regelmäßige Prüfungen der „Hauptsitzung“.
  • Isolierte Jobs für autonome Agenten, die Zusammenfassungen posten oder an Chats zustellen.

Docs: Cron-Jobs, Automatisierung & Aufgaben, Heartbeat.

Kann ich reine Apple-macOS-Skills unter Linux ausführen?

Nicht direkt. macOS-Skills werden durch metadata.openclaw.os plus erforderliche Binärdateien begrenzt, und Skills erscheinen nur dann im System-Prompt, wenn sie auf dem Gateway-Host zulässig sind. Unter Linux werden reine darwin-Skills (wie apple-notes, apple-reminders, things-mac) nicht geladen, es sei denn, Sie überschreiben die Begrenzung.

Sie haben drei unterstützte Muster:

Option A - Gateway auf einem Mac ausführen (am einfachsten). Führen Sie den Gateway dort aus, wo die macOS-Binärdateien vorhanden sind, und verbinden Sie sich dann von Linux im Remote-Modus oder über Tailscale. Die Skills werden normal geladen, weil der Gateway-Host macOS ist.

Option B - einen macOS-Node verwenden (kein SSH). Führen Sie den Gateway unter Linux aus, koppeln Sie einen macOS-Node (Menüleisten-App), und setzen Sie Node-Ausführungsbefehle auf dem Mac auf „Immer fragen“ oder „Immer erlauben“. OpenClaw kann reine macOS-Skills als zulässig behandeln, wenn die erforderlichen Binärdateien auf dem Node vorhanden sind. Der Agent führt diese Skills über das nodes-Tool aus. Wenn Sie „Immer fragen“ wählen, fügt die Zustimmung zu „Immer erlauben“ in der Abfrage diesen Befehl der Zulassungsliste hinzu.

Option C - macOS-Binärdateien über SSH proxyn (fortgeschritten). Behalten Sie den Gateway unter Linux, sorgen Sie aber dafür, dass die erforderlichen CLI-Binärdateien zu SSH-Wrappern aufgelöst werden, die auf einem Mac laufen. Überschreiben Sie dann den Skill, um Linux zu erlauben, damit er zulässig bleibt.

  1. Erstellen Sie einen SSH-Wrapper für die Binärdatei (Beispiel: memo für Apple Notes):

    #!/usr/bin/env bash
    set -euo pipefail
    exec ssh -T user@mac-host /opt/homebrew/bin/memo "$@"
    
  2. Legen Sie den Wrapper auf dem Linux-Host in PATH ab (zum Beispiel ~/bin/memo).

  3. Überschreiben Sie die Skill-Metadaten (Workspace oder ~/.openclaw/skills), um Linux zu erlauben:

    ---
    name: apple-notes
    description: Manage Apple Notes via the memo CLI on macOS.
    metadata: { "openclaw": { "os": ["darwin", "linux"], "requires": { "bins": ["memo"] } } }
    ---
    
  4. Starten Sie eine neue Sitzung, damit der Skills-Snapshot aktualisiert wird.

Gibt es eine Notion- oder HeyGen-Integration?

Heute nicht integriert.

Optionen:

  • Benutzerdefinierter Skill / Plugin: am besten für zuverlässigen API-Zugriff (Notion/HeyGen haben beide APIs).
  • Browser-Automatisierung: funktioniert ohne Code, ist aber langsamer und fragiler.

Wenn Sie Kontext pro Kunde behalten möchten (Agentur-Workflows), ist ein einfaches Muster:

  • Eine Notion-Seite pro Kunde (Kontext + Präferenzen + aktive Arbeit).
  • Bitten Sie den Agent, diese Seite zu Beginn einer Sitzung abzurufen.

Wenn Sie eine native Integration möchten, öffnen Sie eine Feature-Anfrage oder erstellen Sie einen Skill für diese APIs.

Skills installieren:

openclaw skills install <skill-slug>
openclaw skills update --all

Native Installationen landen im skills/-Verzeichnis des aktiven Workspaces. Für gemeinsam genutzte Skills über Agenten hinweg legen Sie sie unter ~/.openclaw/skills/<name>/SKILL.md ab. Wenn nur einige Agenten eine gemeinsam genutzte Installation sehen sollen, konfigurieren Sie agents.defaults.skills oder agents.list[].skills. Einige Skills erwarten Binärdateien, die über Homebrew installiert wurden; unter Linux bedeutet das Linuxbrew (siehe den Homebrew-Linux-FAQ-Eintrag oben). Siehe Skills, Skills-Konfiguration und ClawHub.

Wie verwende ich mein vorhandenes angemeldetes Chrome mit OpenClaw?

Verwenden Sie das integrierte Browserprofil user, das über Chrome DevTools MCP angebunden wird:

openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot

Wenn Sie einen benutzerdefinierten Namen möchten, erstellen Sie ein explizites MCP-Profil:

openclaw browser create-profile --name chrome-live --driver existing-session
openclaw browser --browser-profile chrome-live tabs

Dieser Pfad kann den lokalen Host-Browser oder einen verbundenen Browser-Node verwenden. Wenn der Gateway anderswo läuft, führen Sie entweder einen Node-Host auf der Browser-Maschine aus oder verwenden Remote-CDP.

Aktuelle Grenzen bei existing-session / user:

  • Aktionen sind ref-gesteuert, nicht CSS-Selektor-gesteuert
  • Uploads erfordern ref / inputRef und unterstützen derzeit jeweils eine Datei
  • responsebody, PDF-Export, Download-Abfangen und Batch-Aktionen benötigen weiterhin einen verwalteten Browser oder ein Roh-CDP-Profil

Sandboxing und Speicher

Gibt es eine eigene Sandboxing-Dokumentation?

Ja. Siehe Sandboxing. Für Docker-spezifische Einrichtung (vollständiger Gateway in Docker oder Sandbox-Images) siehe Docker.

Docker wirkt eingeschränkt - wie aktiviere ich den vollen Funktionsumfang?

Das Standard-Image ist sicherheitsorientiert und läuft als node-Benutzer, daher enthält es keine Systempakete, kein Homebrew und keine gebündelten Browser. Für eine umfassendere Einrichtung:

  • Persistieren Sie /home/node mit OPENCLAW_HOME_VOLUME, damit Caches erhalten bleiben.
  • Backen Sie Systemabhängigkeiten mit OPENCLAW_DOCKER_APT_PACKAGES in das Image ein.
  • Installieren Sie Playwright-Browser über die gebündelte CLI: node /app/node_modules/playwright-core/cli.js install chromium
  • Setzen Sie PLAYWRIGHT_BROWSERS_PATH und stellen Sie sicher, dass der Pfad persistiert wird.

Docs: Docker, Browser.

Kann ich DMs persönlich halten, aber Gruppen mit einem Agent öffentlich/sandboxed machen?

Ja - wenn Ihr privater Traffic DMs und Ihr öffentlicher Traffic Gruppen sind.

Verwenden Sie agents.defaults.sandbox.mode: "non-main", damit Gruppen-/Kanalsitzungen (Nicht-Hauptschlüssel) im konfigurierten Sandbox-Backend laufen, während die Haupt-DM-Sitzung auf dem Host bleibt. Docker ist das Standard-Backend, wenn Sie keines auswählen. Schränken Sie dann über tools.sandbox.tools ein, welche Tools in sandboxed Sitzungen verfügbar sind.

Einrichtungsdurchlauf + Beispielkonfiguration: Gruppen: persönliche DMs + öffentliche Gruppen

Zentrale Konfigurationsreferenz: Gateway-Konfiguration

Wie binde ich einen Host-Ordner in die Sandbox ein?

Setzen Sie agents.defaults.sandbox.docker.binds auf ["host:path:mode"] (z. B. "/home/user/src:/src:ro"). Globale und agentenspezifische Bindings werden zusammengeführt; agentenspezifische Bindings werden ignoriert, wenn scope: "shared" ist. Verwenden Sie :ro für alles Sensible und denken Sie daran, dass Bindings die Dateisystemwände der Sandbox umgehen.

OpenClaw validiert Bind-Quellen sowohl gegen den normalisierten Pfad als auch gegen den kanonischen Pfad, der über den tiefsten vorhandenen Vorgänger aufgelöst wird. Das bedeutet, dass Ausbrüche über Symlink-Eltern weiterhin geschlossen fehlschlagen, selbst wenn das letzte Pfadsegment noch nicht existiert, und Prüfungen erlaubter Roots nach der Symlink-Auflösung weiterhin gelten.

Siehe Sandboxing und Sandbox vs. Tool-Richtlinie vs. Erhöht für Beispiele und Sicherheitshinweise.

Wie funktioniert Speicher?

OpenClaw-Speicher besteht einfach aus Markdown-Dateien im Agent-Workspace:

  • Tägliche Notizen in memory/YYYY-MM-DD.md
  • Kuratierte Langzeitnotizen in MEMORY.md (nur Haupt-/private Sitzungen)

OpenClaw führt außerdem einen stillen Speicher-Flush vor der Compaction aus, um das Modell daran zu erinnern, vor der automatischen Compaction dauerhafte Notizen zu schreiben. Dies läuft nur, wenn der Workspace beschreibbar ist (schreibgeschützte Sandboxes überspringen es). Siehe Speicher.

Der Speicher vergisst ständig Dinge. Wie mache ich sie dauerhaft?

Bitten Sie den Bot, die Tatsache in den Speicher zu schreiben. Langzeitnotizen gehören in MEMORY.md, Kurzzeitkontext kommt in memory/YYYY-MM-DD.md.

Dies ist weiterhin ein Bereich, den wir verbessern. Es hilft, das Modell daran zu erinnern, Erinnerungen zu speichern; es weiß, was zu tun ist. Wenn es weiterhin vergisst, prüfen Sie, ob der Gateway bei jedem Lauf denselben Workspace verwendet.

Docs: Speicher, Agent-Workspace.

Bleibt Speicher für immer erhalten? Welche Grenzen gibt es?

Speicherdateien liegen auf der Festplatte und bleiben erhalten, bis Sie sie löschen. Die Grenze ist Ihr Speicherplatz, nicht das Modell. Der Sitzungskontext ist weiterhin durch das Kontextfenster des Modells begrenzt, daher können lange Konversationen kompaktiert oder abgeschnitten werden. Deshalb gibt es Speichersuche - sie holt nur die relevanten Teile zurück in den Kontext.

Docs: Speicher, Kontext.

Erfordert die semantische Speichersuche einen OpenAI-API-Schlüssel?

Nur wenn Sie OpenAI-Embeddings verwenden. Codex OAuth deckt Chat/Completions ab und gewährt keinen Zugriff auf Embeddings, daher hilft die Anmeldung mit Codex (OAuth oder der Codex CLI-Anmeldung) nicht für die semantische Speichersuche. OpenAI-Embeddings benötigen weiterhin einen echten API-Schlüssel (OPENAI_API_KEY oder models.providers.openai.apiKey).

Wenn Sie keinen Provider explizit festlegen, wählt OpenClaw automatisch einen Provider aus, wenn es einen API-Schlüssel auflösen kann (Authentifizierungsprofile, models.providers.*.apiKey oder Umgebungsvariablen). Es bevorzugt OpenAI, wenn ein OpenAI-Schlüssel aufgelöst wird, andernfalls Gemini, wenn ein Gemini-Schlüssel aufgelöst wird, dann Voyage und dann Mistral. Wenn kein Remote-Schlüssel verfügbar ist, bleibt die Speichersuche deaktiviert, bis Sie sie konfigurieren. Wenn Sie einen lokalen Modellpfad konfiguriert haben und dieser vorhanden ist, bevorzugt OpenClaw local. Ollama wird unterstützt, wenn Sie explizit memorySearch.provider = "ollama" festlegen.

Wenn Sie lieber lokal bleiben möchten, setzen Sie memorySearch.provider = "local" (und optional memorySearch.fallback = "none"). Wenn Sie Gemini-Embeddings verwenden möchten, setzen Sie memorySearch.provider = "gemini" und geben Sie GEMINI_API_KEY (oder memorySearch.remote.apiKey) an. Wir unterstützen OpenAI-, Gemini-, Voyage-, Mistral-, Ollama- oder lokale Embedding- Modelle - die Einrichtungsdetails finden Sie unter Speicher.

Wo Dinge auf der Festplatte liegen

Werden alle mit OpenClaw verwendeten Daten lokal gespeichert?

Nein - der Zustand von OpenClaw ist lokal, aber externe Dienste sehen weiterhin, was Sie ihnen senden.

  • Standardmäßig lokal: Sitzungen, Speicherdateien, Konfiguration und Workspace liegen auf dem Gateway-Host (~/.openclaw + Ihr Workspace-Verzeichnis).
  • Notwendigerweise remote: Nachrichten, die Sie an Modell-Provider (Anthropic/OpenAI/usw.) senden, gehen an deren APIs, und Chat-Plattformen (WhatsApp/Telegram/Slack/usw.) speichern Nachrichtendaten auf ihren Servern.
  • Sie kontrollieren den Umfang: Die Verwendung lokaler Modelle hält Prompts auf Ihrem Computer, aber Kanal- Traffic läuft weiterhin über die Server des Kanals.

Verwandt: Agent-Workspace, Speicher.

Wo speichert OpenClaw seine Daten?

Alles liegt unter $OPENCLAW_STATE_DIR (Standard: ~/.openclaw):

Pfad Zweck
$OPENCLAW_STATE_DIR/openclaw.json Hauptkonfiguration (JSON5)
$OPENCLAW_STATE_DIR/credentials/oauth.json Legacy-OAuth-Import (wird bei der ersten Verwendung in Authentifizierungsprofile kopiert)
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.json Authentifizierungsprofile (OAuth, API-Schlüssel und optionale keyRef/tokenRef)
$OPENCLAW_STATE_DIR/secrets.json Optionale dateibasierte Secret-Nutzlast für file-SecretRef-Provider
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.json Legacy-Kompatibilitätsdatei (statische api_key-Einträge bereinigt)
$OPENCLAW_STATE_DIR/credentials/ Provider-Zustand (z. B. whatsapp/<accountId>/creds.json)
$OPENCLAW_STATE_DIR/agents/ Zustand pro Agent (agentDir + Sitzungen)
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/ Gesprächsverlauf und Zustand (pro Agent)
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.json Sitzungsmetadaten (pro Agent)

Legacy-Pfad für einzelne Agents: ~/.openclaw/agent/* (migriert durch openclaw doctor).

Ihr Workspace (AGENTS.md, Speicherdateien, Skills usw.) ist getrennt und wird über agents.defaults.workspace konfiguriert (Standard: ~/.openclaw/workspace).

Wo sollten AGENTS.md / SOUL.md / USER.md / MEMORY.md liegen?

Diese Dateien liegen im Agent-Workspace, nicht in ~/.openclaw.

  • Workspace (pro Agent): AGENTS.md, SOUL.md, IDENTITY.md, USER.md, MEMORY.md, memory/YYYY-MM-DD.md, optional HEARTBEAT.md. Kleingeschriebenes memory.md im Stammverzeichnis ist nur eine Legacy-Reparatureingabe; openclaw doctor --fix kann sie in MEMORY.md zusammenführen, wenn beide Dateien vorhanden sind.
  • Zustandsverzeichnis (~/.openclaw): Konfiguration, Kanal-/Provider-Zustand, Authentifizierungsprofile, Sitzungen, Logs und gemeinsam genutzte Skills (~/.openclaw/skills).

Der Standard-Workspace ist ~/.openclaw/workspace, konfigurierbar über:

{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
}

Wenn der Bot nach einem Neustart „vergisst“, prüfen Sie, ob das Gateway bei jedem Start denselben Workspace verwendet (und denken Sie daran: Der Remote-Modus verwendet den Workspace des Gateway-Hosts, nicht Ihren lokalen Laptop).

Tipp: Wenn Sie ein dauerhaftes Verhalten oder eine dauerhafte Präferenz wünschen, bitten Sie den Bot, sie in AGENTS.md oder MEMORY.md zu schreiben, statt sich auf den Chatverlauf zu verlassen.

Siehe Agent-Workspace und Speicher.

Empfohlene Backup-Strategie

Legen Sie Ihren Agent-Workspace in einem privaten Git-Repository ab und sichern Sie ihn an einem privaten Ort (zum Beispiel GitHub private). Dadurch werden Speicher + AGENTS/SOUL/USER- Dateien erfasst, und Sie können den „Verstand“ des Assistenten später wiederherstellen.

Committen Sie nichts unter ~/.openclaw (Anmeldedaten, Sitzungen, Tokens oder verschlüsselte Secret-Nutzlasten). Wenn Sie eine vollständige Wiederherstellung benötigen, sichern Sie sowohl den Workspace als auch das Zustandsverzeichnis separat (siehe die Migrationsfrage oben).

Dokumentation: Agent-Workspace.

Wie deinstalliere ich OpenClaw vollständig?

Siehe die spezielle Anleitung: Deinstallieren.

Können Agents außerhalb des Workspace arbeiten?

Ja. Der Workspace ist der standardmäßige cwd und Speicheranker, keine harte Sandbox. Relative Pfade werden innerhalb des Workspace aufgelöst, aber absolute Pfade können auf andere Host-Speicherorte zugreifen, sofern Sandboxing nicht aktiviert ist. Wenn Sie Isolation benötigen, verwenden Sie agents.defaults.sandbox oder agentenspezifische Sandbox-Einstellungen. Wenn Sie möchten, dass ein Repository das standardmäßige Arbeitsverzeichnis ist, zeigen Sie mit dem workspace dieses Agents auf den Repository-Stamm. Das OpenClaw-Repository ist nur Quellcode; halten Sie den Workspace getrennt, sofern Sie nicht bewusst möchten, dass der Agent darin arbeitet.

Beispiel (Repository als standardmäßiger cwd):

{
  agents: {
    defaults: {
      workspace: "~/Projects/my-repo",
    },
  },
}
Remote-Modus: Wo ist der Sitzungsspeicher?

Der Sitzungszustand gehört dem Gateway-Host. Wenn Sie sich im Remote-Modus befinden, liegt der relevante Sitzungsspeicher auf dem Remote-Computer, nicht auf Ihrem lokalen Laptop. Siehe Sitzungsverwaltung.

Konfigurationsgrundlagen

Welches Format hat die Konfiguration? Wo befindet sie sich?

OpenClaw liest eine optionale JSON5-Konfiguration aus $OPENCLAW_CONFIG_PATH (Standard: ~/.openclaw/openclaw.json):

$OPENCLAW_CONFIG_PATH

Wenn die Datei fehlt, verwendet es relativ sichere Standardwerte (einschließlich eines Standard-Workspace von ~/.openclaw/workspace).

Ich habe gateway.bind: "lan" (oder "tailnet") gesetzt und jetzt lauscht nichts / die UI meldet nicht autorisiert

Nicht-Loopback-Bindings erfordern einen gültigen Gateway-Authentifizierungspfad. In der Praxis bedeutet das:

  • Authentifizierung per gemeinsamem Secret: Token oder Passwort
  • gateway.auth.mode: "trusted-proxy" hinter einem korrekt konfigurierten identitätsbewussten Reverse-Proxy
{
  gateway: {
    bind: "lan",
    auth: {
      mode: "token",
      token: "replace-me",
    },
  },
}

Hinweise:

  • gateway.remote.token / .password aktivieren die lokale Gateway-Authentifizierung nicht von sich aus.
  • Lokale Aufrufpfade können gateway.remote.* nur als Fallback verwenden, wenn gateway.auth.* nicht gesetzt ist.
  • Für Passwortauthentifizierung setzen Sie stattdessen gateway.auth.mode: "password" plus gateway.auth.password (oder OPENCLAW_GATEWAY_PASSWORD).
  • Wenn gateway.auth.token / gateway.auth.password explizit per SecretRef konfiguriert und nicht aufgelöst ist, schlägt die Auflösung geschlossen fehl (keine Maskierung durch Remote-Fallback).
  • Control-UI-Setups mit gemeinsamem Secret authentifizieren über connect.params.auth.token oder connect.params.auth.password (gespeichert in App-/UI-Einstellungen). Identitätstragende Modi wie Tailscale Serve oder trusted-proxy verwenden stattdessen Request-Header. Vermeiden Sie gemeinsam genutzte Secrets in URLs.
  • Mit gateway.auth.mode: "trusted-proxy" benötigen Reverse-Proxys über same-host loopback explizit gateway.auth.trustedProxy.allowLoopback = true und einen Loopback-Eintrag in gateway.trustedProxies.
Warum brauche ich jetzt ein Token auf localhost?

OpenClaw erzwingt Gateway-Authentifizierung standardmäßig, einschließlich Loopback. Im normalen Standardpfad bedeutet das Token-Authentifizierung: Wenn kein expliziter Authentifizierungspfad konfiguriert ist, wird der Gateway-Start in den Token-Modus aufgelöst und erzeugt ein nur zur Laufzeit gültiges Token für diesen Start, sodass lokale WS-Clients sich authentifizieren müssen. Konfigurieren Sie gateway.auth.token, gateway.auth.password, OPENCLAW_GATEWAY_TOKEN oder OPENCLAW_GATEWAY_PASSWORD explizit, wenn Clients ein stabiles Secret über Neustarts hinweg benötigen. Das blockiert andere lokale Prozesse daran, das Gateway aufzurufen.

Wenn Sie einen anderen Authentifizierungspfad bevorzugen, können Sie explizit den Passwortmodus wählen (oder, für identitätsbewusste Reverse-Proxys, trusted-proxy). Wenn Sie wirklich offenen Loopback möchten, setzen Sie gateway.auth.mode: "none" explizit in Ihrer Konfiguration. Doctor kann jederzeit ein Token für Sie generieren: openclaw doctor --generate-gateway-token.

Muss ich nach einer Konfigurationsänderung neu starten?

Das Gateway überwacht die Konfiguration und unterstützt Hot-Reload:

  • gateway.reload.mode: "hybrid" (Standard): sichere Änderungen per Hot-Apply übernehmen, bei kritischen Änderungen neu starten
  • hot, restart, off werden ebenfalls unterstützt
Wie deaktiviere ich lustige CLI-Taglines?

Setzen Sie cli.banner.taglineMode in der Konfiguration:

{
  cli: {
    banner: {
      taglineMode: "off", // random | default | off
    },
  },
}
  • off: blendet Tagline-Text aus, behält aber die Bannertitel-/Versionszeile bei.
  • default: verwendet jedes Mal All your chats, one OpenClaw..
  • random: rotierende lustige/saisonale Taglines (Standardverhalten).
  • Wenn Sie gar kein Banner möchten, setzen Sie die Umgebungsvariable OPENCLAW_HIDE_BANNER=1.
Wie aktiviere ich Websuche (und Web-Abruf)?

web_fetch funktioniert ohne API-Schlüssel. web_search hängt von Ihrem ausgewählten Provider ab:

  • API-gestützte Provider wie Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity und Tavily erfordern ihre normale API-Schlüsseleinrichtung.
  • Ollama Web Search ist schlüsselfrei, verwendet aber Ihren konfigurierten Ollama-Host und erfordert ollama signin.
  • DuckDuckGo ist schlüsselfrei, aber eine inoffizielle HTML-basierte Integration.
  • SearXNG ist schlüsselfrei/selbstgehostet; konfigurieren Sie SEARXNG_BASE_URL oder plugins.entries.searxng.config.webSearch.baseUrl.

Empfohlen: Führen Sie openclaw configure --section web aus und wählen Sie einen Provider. Umgebungsalternativen:

  • Brave: BRAVE_API_KEY
  • Exa: EXA_API_KEY
  • Firecrawl: FIRECRAWL_API_KEY
  • Gemini: GEMINI_API_KEY
  • Grok: XAI_API_KEY
  • Kimi: KIMI_API_KEY oder MOONSHOT_API_KEY
  • MiniMax Search: MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY oder MINIMAX_API_KEY
  • Perplexity: PERPLEXITY_API_KEY oder OPENROUTER_API_KEY
  • SearXNG: SEARXNG_BASE_URL
  • Tavily: TAVILY_API_KEY
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "BRAVE_API_KEY_HERE",
          },
        },
      },
    },
    },
    tools: {
      web: {
        search: {
          enabled: true,
          provider: "brave",
          maxResults: 5,
        },
        fetch: {
          enabled: true,
          provider: "firecrawl", // optional; omit for auto-detect
        },
      },
    },
}

Provider-spezifische Websuche-Konfiguration befindet sich jetzt unter plugins.entries.<plugin>.config.webSearch.*. Legacy-Provider-Pfade unter tools.web.search.* werden aus Kompatibilitätsgründen vorübergehend noch geladen, sollten aber nicht für neue Konfigurationen verwendet werden. Die Firecrawl-Fallback-Konfiguration für Webabruf befindet sich unter plugins.entries.firecrawl.config.webFetch.*.

Hinweise:

  • Wenn Sie Allowlists verwenden, fügen Sie web_search/web_fetch/x_search oder group:web hinzu.
  • web_fetch ist standardmäßig aktiviert (sofern nicht explizit deaktiviert).
  • Wenn tools.web.fetch.provider ausgelassen wird, erkennt OpenClaw automatisch den ersten bereiten Fallback-Provider für Abruf aus den verfügbaren Anmeldedaten. Derzeit ist der gebündelte Provider Firecrawl.
  • Daemons lesen Umgebungsvariablen aus ~/.openclaw/.env (oder aus der Dienstumgebung).

Doku: Webtools.

config.apply hat meine Konfiguration gelöscht. Wie stelle ich sie wieder her und vermeide das?

config.apply ersetzt die gesamte Konfiguration. Wenn Sie ein Teilobjekt senden, wird alles andere entfernt.

Das aktuelle OpenClaw schützt vor vielen versehentlichen Überschreibungen:

  • OpenClaw-eigene Konfigurationsschreibvorgänge validieren vor dem Schreiben die vollständige Konfiguration nach der Änderung.
  • Ungültige oder destruktive OpenClaw-eigene Schreibvorgänge werden abgelehnt und als openclaw.json.rejected.* gespeichert.
  • Wenn eine direkte Bearbeitung den Start oder Hot Reload unterbricht, schlägt Gateway geschlossen fehl oder überspringt das Neuladen; openclaw.json wird nicht neu geschrieben.
  • openclaw doctor --fix ist für Reparaturen zuständig und kann den letzten bekannten guten Zustand wiederherstellen, während die abgelehnte Datei als openclaw.json.clobbered.* gespeichert wird.

Wiederherstellung:

  • Prüfen Sie openclaw logs --follow auf Invalid config at, Config write rejected: oder config reload skipped (invalid config).
  • Untersuchen Sie die neueste openclaw.json.clobbered.* oder openclaw.json.rejected.* neben der aktiven Konfiguration.
  • Führen Sie openclaw config validate und openclaw doctor --fix aus.
  • Kopieren Sie nur die beabsichtigten Schlüssel mit openclaw config set oder config.patch zurück.
  • Wenn Sie keinen letzten bekannten guten Zustand oder keine abgelehnte Nutzlast haben, stellen Sie aus einem Backup wieder her, oder führen Sie openclaw doctor erneut aus und konfigurieren Sie Kanäle/Modelle neu.
  • Wenn dies unerwartet war, melden Sie einen Fehler und fügen Sie Ihre letzte bekannte Konfiguration oder ein Backup bei.
  • Ein lokaler Coding-Agent kann eine funktionierende Konfiguration oft aus Logs oder Verlauf rekonstruieren.

Vermeidung:

  • Verwenden Sie openclaw config set für kleine Änderungen.
  • Verwenden Sie openclaw configure für interaktive Bearbeitungen.
  • Verwenden Sie zuerst config.schema.lookup, wenn Sie sich bei einem exakten Pfad oder einer Feldform nicht sicher sind; es gibt einen flachen Schemaknoten plus direkte Zusammenfassungen der untergeordneten Elemente für Drill-down zurück.
  • Verwenden Sie config.patch für partielle RPC-Bearbeitungen; behalten Sie config.apply nur für den vollständigen Konfigurationsersatz bei.
  • Wenn Sie das nur für Eigentümer vorgesehene Tool gateway aus einem Agent-Lauf verwenden, lehnt es weiterhin Schreibvorgänge in tools.exec.ask / tools.exec.security ab (einschließlich Legacy-Aliasse tools.bash.*, die auf dieselben geschützten Exec-Pfade normalisiert werden).

Doku: Konfiguration, Konfigurieren, Gateway-Fehlerbehebung, Doctor.

Wie betreibe ich ein zentrales Gateway mit spezialisierten Workern über Geräte hinweg?

Das übliche Muster ist ein Gateway (z. B. Raspberry Pi) plus Knoten und Agenten:

  • Gateway (zentral): besitzt Kanäle (Signal/WhatsApp), Routing und Sitzungen.
  • Knoten (Geräte): Macs/iOS/Android verbinden sich als Peripheriegeräte und stellen lokale Tools bereit (system.run, canvas, camera).
  • Agenten (Worker): separate Gehirne/Arbeitsbereiche für spezielle Rollen (z. B. „Hetzner-Betrieb“, „Persönliche Daten“).
  • Sub-Agenten: starten Hintergrundarbeit von einem Hauptagenten aus, wenn Sie Parallelität wünschen.
  • TUI: mit dem Gateway verbinden und Agenten/Sitzungen wechseln.

Doku: Knoten, Fernzugriff, Multi-Agent-Routing, Sub-Agenten, TUI.

Kann der OpenClaw-Browser headless laufen?

Ja. Es ist eine Konfigurationsoption:

{
  browser: { headless: true },
  agents: {
    defaults: {
      sandbox: { browser: { headless: true } },
    },
  },
}

Standard ist false (mit sichtbarem Fenster). Headless löst auf manchen Websites eher Anti-Bot-Prüfungen aus. Siehe Browser.

Headless verwendet dieselbe Chromium-Engine und funktioniert für die meiste Automatisierung (Formulare, Klicks, Scraping, Logins). Die Hauptunterschiede:

  • Kein sichtbares Browserfenster (verwenden Sie Screenshots, wenn Sie visuelle Informationen benötigen).
  • Manche Websites sind im Headless-Modus strenger bei Automatisierung (CAPTCHAs, Anti-Bot). Zum Beispiel blockiert X/Twitter häufig Headless-Sitzungen.
Wie verwende ich Brave für Browsersteuerung?

Setzen Sie browser.executablePath auf Ihre Brave-Binärdatei (oder einen beliebigen Chromium-basierten Browser) und starten Sie das Gateway neu. Vollständige Konfigurationsbeispiele finden Sie unter Browser.

Remote-Gateways und Knoten

Wie werden Befehle zwischen Telegram, dem Gateway und Knoten weitergegeben?

Telegram-Nachrichten werden vom Gateway verarbeitet. Das Gateway führt den Agenten aus und ruft erst dann Knoten über den Gateway WebSocket auf, wenn ein Knotentool benötigt wird:

Telegram → Gateway → Agent → node.* → Knoten → Gateway → Telegram

Knoten sehen keinen eingehenden Provider-Traffic; sie erhalten nur Knoten-RPC-Aufrufe.

Wie kann mein Agent auf meinen Computer zugreifen, wenn das Gateway remote gehostet wird?

Kurz gesagt: Koppeln Sie Ihren Computer als Knoten. Das Gateway läuft woanders, kann aber node.*-Tools (Bildschirm, Kamera, System) auf Ihrem lokalen Rechner über den Gateway WebSocket aufrufen.

Typische Einrichtung:

  1. Führen Sie das Gateway auf dem dauerhaft eingeschalteten Host aus (VPS/Heimserver).

  2. Bringen Sie den Gateway-Host und Ihren Computer in dasselbe Tailnet.

  3. Stellen Sie sicher, dass Gateway WS erreichbar ist (Tailnet-Bindung oder SSH-Tunnel).

  4. Öffnen Sie die macOS-App lokal und verbinden Sie sich im Modus Remote über SSH (oder direktes Tailnet), damit sie sich als Knoten registrieren kann.

  5. Genehmigen Sie den Knoten am Gateway:

    openclaw devices list
    openclaw devices approve <requestId>
    

Es ist keine separate TCP-Bridge erforderlich; Knoten verbinden sich über den Gateway WebSocket.

Sicherheitshinweis: Das Koppeln eines macOS-Knotens erlaubt system.run auf diesem Rechner. Koppeln Sie nur Geräte, denen Sie vertrauen, und prüfen Sie Sicherheit.

Doku: Knoten, Gateway-Protokoll, macOS-Remote-Modus, Sicherheit.

Tailscale ist verbunden, aber ich bekomme keine Antworten. Was nun?

Prüfen Sie die Grundlagen:

  • Gateway läuft: openclaw gateway status
  • Gateway-Zustand: openclaw status
  • Kanalzustand: openclaw channels status

Prüfen Sie dann Authentifizierung und Routing:

  • Wenn Sie Tailscale Serve verwenden, stellen Sie sicher, dass gateway.auth.allowTailscale korrekt gesetzt ist.
  • Wenn Sie sich über einen SSH-Tunnel verbinden, bestätigen Sie, dass der lokale Tunnel aktiv ist und auf den richtigen Port zeigt.
  • Bestätigen Sie, dass Ihre Allowlists (DM oder Gruppe) Ihr Konto enthalten.

Doku: Tailscale, Fernzugriff, Kanäle.

Können zwei OpenClaw-Instanzen miteinander sprechen (lokal + VPS)?

Ja. Es gibt keine integrierte „Bot-zu-Bot“-Bridge, aber Sie können sie auf einige zuverlässige Arten verbinden:

Am einfachsten: Verwenden Sie einen normalen Chatkanal, auf den beide Bots zugreifen können (Telegram/Slack/WhatsApp). Lassen Sie Bot A eine Nachricht an Bot B senden, und lassen Sie Bot B dann wie gewohnt antworten.

CLI-Bridge (generisch): Führen Sie ein Skript aus, das das andere Gateway mit openclaw agent --message ... --deliver aufruft und auf einen Chat zielt, in dem der andere Bot lauscht. Wenn ein Bot auf einem Remote-VPS läuft, richten Sie Ihre CLI über SSH/Tailscale auf dieses Remote-Gateway (siehe Fernzugriff).

Beispielmuster (von einem Rechner ausführen, der das Ziel-Gateway erreichen kann):

openclaw agent --message "Hello from local bot" --deliver --channel telegram --reply-to <chat-id>

Tipp: Fügen Sie eine Leitplanke hinzu, damit die beiden Bots nicht endlos schleifen (nur Erwähnungen, Kanal- Allowlists oder eine Regel „Nicht auf Bot-Nachrichten antworten“).

Doku: Fernzugriff, Agent-CLI, Agent senden.

Brauche ich separate VPSes für mehrere Agenten?

Nein. Ein Gateway kann mehrere Agenten hosten, jeweils mit eigenem Arbeitsbereich, Modellstandards und Routing. Das ist die normale Einrichtung und deutlich günstiger und einfacher als ein VPS pro Agent.

Verwenden Sie separate VPSes nur, wenn Sie harte Isolation (Sicherheitsgrenzen) oder sehr unterschiedliche Konfigurationen benötigen, die Sie nicht teilen möchten. Behalten Sie andernfalls ein Gateway bei und verwenden Sie mehrere Agenten oder Sub-Agenten.

Gibt es einen Vorteil, einen Knoten auf meinem persönlichen Laptop statt SSH von einem VPS zu verwenden?

Ja - Knoten sind der erstklassige Weg, Ihren Laptop von einem Remote-Gateway aus zu erreichen, und sie ermöglichen mehr als Shell-Zugriff. Das Gateway läuft auf macOS/Linux (Windows über WSL2) und ist leichtgewichtig (ein kleiner VPS oder eine Raspberry-Pi-Klasse reicht aus; 4 GB RAM sind genug), daher ist eine typische Einrichtung ein dauerhaft eingeschalteter Host plus Ihr Laptop als Knoten.

  • Kein eingehendes SSH erforderlich. Knoten verbinden sich ausgehend mit dem Gateway WebSocket und verwenden Gerätekopplung.
  • Sicherere Ausführungskontrollen. system.run wird durch Knoten-Allowlists/Genehmigungen auf diesem Laptop beschränkt.
  • Mehr Gerätetools. Knoten stellen zusätzlich zu system.run auch canvas, camera und screen bereit.
  • Lokale Browserautomatisierung. Lassen Sie das Gateway auf einem VPS, führen Sie Chrome aber lokal über einen Knotenhost auf dem Laptop aus, oder verbinden Sie sich über Chrome MCP mit lokalem Chrome auf dem Host.

SSH ist für Ad-hoc-Shell-Zugriff in Ordnung, aber Knoten sind einfacher für fortlaufende Agent-Workflows und Geräteautomatisierung.

Doku: Knoten, Knoten-CLI, Browser.

Führen Knoten einen Gateway-Dienst aus?

Nein. Pro Host sollte nur ein Gateway laufen, es sei denn, Sie führen absichtlich isolierte Profile aus (siehe Mehrere Gateways). Knoten sind Peripheriegeräte, die sich mit dem Gateway verbinden (iOS-/Android-Knoten oder macOS-„Knotenmodus“ in der Menüleisten-App). Für Headless-Knoten- Hosts und CLI-Steuerung siehe Knotenhost-CLI.

Für Änderungen an gateway, discovery und canvasHost ist ein vollständiger Neustart erforderlich.

Gibt es eine API-/RPC-Möglichkeit, Konfiguration anzuwenden?

Ja.

  • config.schema.lookup: einen Konfigurations-Unterbaum mit seinem flachen Schema-Knoten, dem passenden UI-Hinweis und unmittelbaren Zusammenfassungen der untergeordneten Elemente prüfen, bevor geschrieben wird
  • config.get: den aktuellen Snapshot + Hash abrufen
  • config.patch: sichere Teilaktualisierung (für die meisten RPC-Bearbeitungen bevorzugt); lädt nach Möglichkeit im laufenden Betrieb neu und startet bei Bedarf neu
  • config.apply: validieren + die vollständige Konfiguration ersetzen; lädt nach Möglichkeit im laufenden Betrieb neu und startet bei Bedarf neu
  • Das nur für Owner vorgesehene gateway-Runtime-Tool verweigert weiterhin das Umschreiben von tools.exec.ask / tools.exec.security; Legacy-Aliase tools.bash.* werden auf dieselben geschützten Exec-Pfade normalisiert
Minimal sinnvolle Konfiguration für eine Erstinstallation
{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

Dies legt Ihren Workspace fest und beschränkt, wer den Bot auslösen kann.

Wie richte ich Tailscale auf einem VPS ein und verbinde mich von meinem Mac?

Minimale Schritte:

  1. Auf dem VPS installieren + anmelden

    curl -fsSL https://tailscale.com/install.sh | sh
    sudo tailscale up
    
  2. Auf Ihrem Mac installieren + anmelden

    • Verwenden Sie die Tailscale-App und melden Sie sich im selben Tailnet an.
  3. MagicDNS aktivieren (empfohlen)

    • Aktivieren Sie MagicDNS in der Tailscale-Admin-Konsole, damit der VPS einen stabilen Namen hat.
  4. Den Tailnet-Hostnamen verwenden

Wenn Sie die Control UI ohne SSH verwenden möchten, nutzen Sie Tailscale Serve auf dem VPS:

openclaw gateway --tailscale serve

Dadurch bleibt das Gateway an local loopback gebunden und HTTPS wird über Tailscale bereitgestellt. Siehe Tailscale.

Wie verbinde ich einen Mac-Node mit einem entfernten Gateway (Tailscale Serve)?

Serve stellt die Gateway Control UI + WS bereit. Nodes verbinden sich über denselben Gateway-WS-Endpunkt.

Empfohlene Einrichtung:

  1. Stellen Sie sicher, dass VPS + Mac im selben Tailnet sind.

  2. Verwenden Sie die macOS-App im Remote-Modus (SSH-Ziel kann der Tailnet-Hostname sein). Die App tunnelt den Gateway-Port und verbindet sich als Node.

  3. Genehmigen Sie den Node am Gateway:

    openclaw devices list
    openclaw devices approve <requestId>
    

Dokumentation: Gateway-Protokoll, Erkennung, macOS-Remote-Modus.

Sollte ich auf einem zweiten Laptop installieren oder einfach einen Node hinzufügen?

Wenn Sie auf dem zweiten Laptop nur lokale Tools (Bildschirm/Kamera/Exec) benötigen, fügen Sie ihn als Node hinzu. Dadurch bleibt ein einzelnes Gateway erhalten und doppelte Konfiguration wird vermieden. Lokale Node-Tools sind derzeit nur für macOS verfügbar, wir planen jedoch, sie auf andere Betriebssysteme auszuweiten.

Installieren Sie ein zweites Gateway nur, wenn Sie strikte Isolation oder zwei vollständig getrennte Bots benötigen.

Dokumentation: Nodes, Nodes CLI, Mehrere Gateways.

Umgebungsvariablen und .env-Laden

Wie lädt OpenClaw Umgebungsvariablen?

OpenClaw liest Umgebungsvariablen aus dem übergeordneten Prozess (Shell, launchd/systemd, CI usw.) und lädt zusätzlich:

  • .env aus dem aktuellen Arbeitsverzeichnis
  • eine globale Fallback-.env aus ~/.openclaw/.env (auch $OPENCLAW_STATE_DIR/.env)

Keine der beiden .env-Dateien überschreibt vorhandene Umgebungsvariablen.

Sie können auch Inline-Umgebungsvariablen in der Konfiguration definieren (werden nur angewendet, wenn sie in der Prozessumgebung fehlen):

{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: { GROQ_API_KEY: "gsk-..." },
  },
}

Die vollständige Rangfolge und die Quellen finden Sie unter /environment.

Ich habe das Gateway über den Dienst gestartet und meine Umgebungsvariablen sind verschwunden. Was nun?

Zwei häufige Lösungen:

  1. Legen Sie die fehlenden Schlüssel in ~/.openclaw/.env ab, damit sie auch übernommen werden, wenn der Dienst Ihre Shell-Umgebung nicht erbt.
  2. Aktivieren Sie den Shell-Import (optionale Komfortfunktion):
{
  env: {
    shellEnv: {
      enabled: true,
      timeoutMs: 15000,
    },
  },
}

Dies führt Ihre Login-Shell aus und importiert nur fehlende erwartete Schlüssel (überschreibt nie). Entsprechende Umgebungsvariablen: OPENCLAW_LOAD_SHELL_ENV=1, OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000.

Ich habe COPILOT_GITHUB_TOKEN gesetzt, aber der Modellstatus zeigt „Shell-Umgebung: aus.“ Warum?

openclaw models status meldet, ob Shell-Umgebungsimport aktiviert ist. „Shell-Umgebung: aus“ bedeutet nicht, dass Ihre Umgebungsvariablen fehlen - es bedeutet nur, dass OpenClaw Ihre Login-Shell nicht automatisch lädt.

Wenn das Gateway als Dienst (launchd/systemd) läuft, erbt es Ihre Shell- Umgebung nicht. Beheben Sie dies mit einer dieser Optionen:

  1. Legen Sie das Token in ~/.openclaw/.env ab:

    COPILOT_GITHUB_TOKEN=...
    
  2. Oder aktivieren Sie den Shell-Import (env.shellEnv.enabled: true).

  3. Oder fügen Sie es Ihrem Konfigurationsblock env hinzu (wird nur angewendet, wenn es fehlt).

Starten Sie danach das Gateway neu und prüfen Sie erneut:

openclaw models status

Copilot-Tokens werden aus COPILOT_GITHUB_TOKEN gelesen (auch GH_TOKEN / GITHUB_TOKEN). Siehe /concepts/model-providers und /environment.

Sitzungen und mehrere Chats

Wie starte ich eine neue Unterhaltung?

Senden Sie /new oder /reset als eigenständige Nachricht. Siehe Sitzungsverwaltung.

Werden Sitzungen automatisch zurückgesetzt, wenn ich nie /new sende?

Sitzungen können nach session.idleMinutes ablaufen, dies ist jedoch standardmäßig deaktiviert (Standard 0). Setzen Sie den Wert auf eine positive Zahl, um den Ablauf bei Inaktivität zu aktivieren. Wenn aktiviert, startet die nächste Nachricht nach der Leerlaufzeit eine neue Sitzungs-ID für diesen Chat-Schlüssel. Dies löscht keine Transkripte - es startet nur eine neue Sitzung.

{
  session: {
    idleMinutes: 240,
  },
}
Gibt es eine Möglichkeit, ein Team von OpenClaw-Instanzen zu erstellen (ein CEO und viele Agents)?

Ja, über Multi-Agent-Routing und Sub-Agents. Sie können einen Koordinator- Agent und mehrere Worker-Agents mit eigenen Workspaces und Modellen erstellen.

Allerdings sollte dies eher als unterhaltsames Experiment betrachtet werden. Es verbraucht viele Tokens und ist oft weniger effizient als ein Bot mit getrennten Sitzungen. Das typische Modell, das wir vorsehen, ist ein Bot, mit dem Sie sprechen, mit unterschiedlichen Sitzungen für parallele Arbeit. Dieser Bot kann bei Bedarf auch Sub-Agents starten.

Dokumentation: Multi-Agent-Routing, Sub-Agents, Agents CLI.

Warum wurde der Kontext mitten in der Aufgabe gekürzt? Wie verhindere ich das?

Der Sitzungskontext ist durch das Modellfenster begrenzt. Lange Chats, große Tool-Ausgaben oder viele Dateien können Compaction oder Kürzung auslösen.

Das hilft:

  • Bitten Sie den Bot, den aktuellen Stand zusammenzufassen und in eine Datei zu schreiben.
  • Verwenden Sie /compact vor langen Aufgaben und /new, wenn Sie das Thema wechseln.
  • Halten Sie wichtigen Kontext im Workspace vor und bitten Sie den Bot, ihn erneut zu lesen.
  • Verwenden Sie Sub-Agents für lange oder parallele Arbeit, damit der Hauptchat kleiner bleibt.
  • Wählen Sie ein Modell mit größerem Kontextfenster, wenn dies häufig passiert.
Wie setze ich OpenClaw vollständig zurück, lasse es aber installiert?

Verwenden Sie den Reset-Befehl:

openclaw reset

Nicht-interaktiver vollständiger Reset:

openclaw reset --scope full --yes --non-interactive

Führen Sie anschließend die Einrichtung erneut aus:

openclaw onboard --install-daemon

Hinweise:

  • Onboarding bietet ebenfalls Reset an, wenn eine vorhandene Konfiguration erkannt wird. Siehe Onboarding (CLI).
  • Wenn Sie Profile (--profile / OPENCLAW_PROFILE) verwendet haben, setzen Sie jedes State-Verzeichnis zurück (Standardwerte sind ~/.openclaw-<profile>).
  • Dev-Reset: openclaw gateway --dev --reset (nur Dev; löscht Dev-Konfiguration + Anmeldedaten + Sitzungen + Workspace).
Ich bekomme Fehler vom Typ „context too large“ - wie setze ich zurück oder führe eine Kompaktierung aus?

Verwenden Sie eine dieser Optionen:

  • Compaction (behält die Unterhaltung, fasst aber ältere Nachrichten zusammen):

    /compact
    

    oder /compact <instructions>, um die Zusammenfassung zu steuern.

  • Reset (neue Sitzungs-ID für denselben Chat-Schlüssel):

    /new
    /reset
    

Wenn es weiterhin passiert:

  • Aktivieren oder justieren Sie Sitzungsbereinigung (agents.defaults.contextPruning), um alte Tool-Ausgaben zu kürzen.
  • Verwenden Sie ein Modell mit größerem Kontextfenster.

Dokumentation: Compaction, Sitzungsbereinigung, Sitzungsverwaltung.

Warum sehe ich „LLM request rejected: messages.content.tool_use.input field required“?

Dies ist ein Provider-Validierungsfehler: Das Modell hat einen tool_use-Block ohne das erforderliche input ausgegeben. Das bedeutet normalerweise, dass der Sitzungsverlauf veraltet oder beschädigt ist (häufig nach langen Threads oder einer Tool-/Schemaänderung).

Lösung: Starten Sie mit /new eine neue Sitzung (als eigenständige Nachricht).

Warum bekomme ich alle 30 Minuten Heartbeat-Nachrichten?

Heartbeats laufen standardmäßig alle 30m (1h bei OAuth-Authentifizierung). Passen Sie sie an oder deaktivieren Sie sie:

{
  agents: {
    defaults: {
      heartbeat: {
        every: "2h", // or "0m" to disable
      },
    },
  },
}

Wenn HEARTBEAT.md existiert, aber faktisch leer ist (nur Leerzeilen und Markdown- Überschriften wie # Heading), überspringt OpenClaw den Heartbeat-Lauf, um API-Aufrufe zu sparen. Wenn die Datei fehlt, läuft der Heartbeat trotzdem und das Modell entscheidet, was zu tun ist.

Agent-spezifische Überschreibungen verwenden agents.list[].heartbeat. Dokumentation: Heartbeat.

Muss ich einem WhatsApp-Gruppenchat ein „Bot-Konto“ hinzufügen?

Nein. OpenClaw läuft auf Ihrem eigenen Konto. Wenn Sie also in der Gruppe sind, kann OpenClaw sie sehen. Standardmäßig sind Gruppenantworten blockiert, bis Sie Absender erlauben (groupPolicy: "allowlist").

Wenn nur Sie Gruppenantworten auslösen können sollen:

{
  channels: {
    whatsapp: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["+15551234567"],
    },
  },
}
Wie bekomme ich die JID einer WhatsApp-Gruppe?

Option 1 (am schnellsten): Logs verfolgen und eine Testnachricht in der Gruppe senden:

openclaw logs --follow --json

Suchen Sie nach chatId (oder from) mit der Endung @g.us, zum Beispiel: [email protected].

Option 2 (wenn bereits konfiguriert/auf der Allowlist): Gruppen aus der Konfiguration auflisten:

openclaw directory groups list --channel whatsapp

Dokumentation: WhatsApp, Verzeichnis, Logs.

Warum antwortet OpenClaw in einer Gruppe nicht?

Zwei häufige Ursachen:

  • Mention-Gating ist aktiviert (Standard). Sie müssen den Bot mit @mention erwähnen (oder mentionPatterns erfüllen).
  • Sie haben channels.whatsapp.groups ohne "*" konfiguriert und die Gruppe steht nicht auf der Allowlist.

Siehe Gruppen und Gruppennachrichten.

Teilen Gruppen/Threads den Kontext mit Direktnachrichten?

Direkte Chats werden standardmäßig auf die Hauptsitzung zusammengeführt. Gruppen/Kanäle haben eigene Sitzungsschlüssel, und Telegram-Themen / Discord-Threads sind separate Sitzungen. Siehe Gruppen und Gruppennachrichten.

Wie viele Arbeitsbereiche und Agenten kann ich erstellen?

Keine festen Limits. Dutzende (sogar Hunderte) sind in Ordnung, aber achten Sie auf:

  • Speicherplatzwachstum: Sitzungen + Transkripte liegen unter ~/.openclaw/agents/<agentId>/sessions/.
  • Token-Kosten: Mehr Agenten bedeuten mehr gleichzeitige Modellnutzung.
  • Betriebsaufwand: Auth-Profile, Arbeitsbereiche und Kanal-Routing pro Agent.

Tipps:

  • Behalten Sie pro Agent einen aktiven Arbeitsbereich bei (agents.defaults.workspace).
  • Bereinigen Sie alte Sitzungen (JSONL- oder Store-Einträge löschen), wenn der Speicherplatz wächst.
  • Verwenden Sie openclaw doctor, um verwaiste Arbeitsbereiche und Profil-Abweichungen zu erkennen.
Kann ich mehrere Bots oder Chats gleichzeitig ausführen (Slack), und wie sollte ich das einrichten?

Ja. Verwenden Sie Multi-Agent-Routing, um mehrere isolierte Agenten auszuführen und eingehende Nachrichten nach Kanal/Konto/Peer zu routen. Slack wird als Kanal unterstützt und kann bestimmten Agenten zugeordnet werden.

Browserzugriff ist leistungsfähig, aber nicht „kann alles tun, was ein Mensch kann“ - Anti-Bot-Maßnahmen, CAPTCHAs und MFA können Automatisierung weiterhin blockieren. Für die zuverlässigste Browsersteuerung verwenden Sie lokales Chrome MCP auf dem Host oder CDP auf dem Rechner, auf dem der Browser tatsächlich läuft.

Empfohlene Einrichtung:

  • Immer erreichbarer Gateway-Host (VPS/Mac mini).
  • Ein Agent pro Rolle (Bindings).
  • Slack-Kanal/Kanäle, die diesen Agenten zugeordnet sind.
  • Lokaler Browser über Chrome MCP oder bei Bedarf ein Node.

Dokumentation: Multi-Agent-Routing, Slack, Browser, Nodes.

Modelle, Failover und Auth-Profile

Modell-Fragen und -Antworten - Defaults, Auswahl, Aliase, Wechsel, Failover, Auth-Profile - finden Sie in der Modelle-FAQ.

Gateway: Ports, „already running“ und Remote-Modus

Welchen Port verwendet das Gateway?

gateway.port steuert den einzelnen multiplexed Port für WebSocket + HTTP (Control UI, Hooks usw.).

Vorrang:

--port > OPENCLAW_GATEWAY_PORT > gateway.port > default 18789
Warum meldet openclaw gateway status "Runtime: running", aber "Connectivity probe: failed"?

Weil „running“ die Sicht des Supervisors ist (launchd/systemd/schtasks). Der Konnektivitäts-Test ist die CLI, die tatsächlich eine Verbindung zum Gateway-WebSocket herstellt.

Verwenden Sie openclaw gateway status und vertrauen Sie diesen Zeilen:

  • Probe target: (die URL, die der Test tatsächlich verwendet hat)
  • Listening: (was tatsächlich an den Port gebunden ist)
  • Last gateway error: (häufige Ursache, wenn der Prozess läuft, der Port aber nicht lauscht)
Warum zeigt openclaw gateway status unterschiedliche Werte für "Config (cli)" und "Config (service)"?

Sie bearbeiten eine Konfigurationsdatei, während der Dienst eine andere verwendet (häufig ein --profile- / OPENCLAW_STATE_DIR-Mismatch).

Behebung:

openclaw gateway install --force

Führen Sie dies aus demselben --profile / derselben Umgebung aus, die der Dienst verwenden soll.

Was bedeutet "another gateway instance is already listening"?

OpenClaw erzwingt eine Laufzeitsperre, indem der WebSocket-Listener sofort beim Start gebunden wird (Standard ws://127.0.0.1:18789). Wenn das Binden mit EADDRINUSE fehlschlägt, wird GatewayLockError ausgelöst, was angibt, dass bereits eine andere Instanz lauscht.

Behebung: Stoppen Sie die andere Instanz, geben Sie den Port frei oder starten Sie mit openclaw gateway --port <port>.

Wie führe ich OpenClaw im Remote-Modus aus (Client verbindet sich mit einem Gateway anderswo)?

Setzen Sie gateway.mode: "remote" und verweisen Sie auf eine Remote-WebSocket-URL, optional mit Remote-Anmeldedaten über ein gemeinsames Secret:

{
  gateway: {
    mode: "remote",
    remote: {
      url: "ws://gateway.tailnet:18789",
      token: "your-token",
      password: "your-password",
    },
  },
}

Hinweise:

  • openclaw gateway startet nur, wenn gateway.mode local ist (oder Sie das Override-Flag übergeben).
  • Die macOS-App überwacht die Konfigurationsdatei und wechselt live den Modus, wenn sich diese Werte ändern.
  • gateway.remote.token / .password sind nur clientseitige Remote-Anmeldedaten; sie aktivieren für sich genommen keine lokale Gateway-Authentifizierung.
Die Control UI meldet "unauthorized" (oder verbindet sich ständig neu). Was nun?

Ihr Gateway-Authentifizierungspfad und die Authentifizierungsmethode der UI stimmen nicht überein.

Fakten (aus dem Code):

  • Die Control UI hält das Token in sessionStorage für die aktuelle Browser-Tab-Sitzung und die ausgewählte Gateway-URL, sodass Aktualisierungen im selben Tab weiter funktionieren, ohne langlebige localStorage-Token-Persistenz wiederherzustellen.
  • Bei AUTH_TOKEN_MISMATCH können vertrauenswürdige Clients einen begrenzten Wiederholungsversuch mit einem zwischengespeicherten Gerätetoken versuchen, wenn das Gateway Retry-Hinweise zurückgibt (canRetryWithDeviceToken=true, recommendedNextStep=retry_with_device_token).
  • Dieser Cached-Token-Retry verwendet jetzt die zwischengespeicherten genehmigten Scopes wieder, die mit dem Gerätetoken gespeichert sind. Aufrufer mit explizitem deviceToken / expliziten scopes behalten weiterhin ihren angeforderten Scope-Satz, statt zwischengespeicherte Scopes zu erben.
  • Außerhalb dieses Retry-Pfads gilt für die Verbindungsauthentifizierung folgender Vorrang: zuerst explizites Shared Token/Passwort, dann explizites deviceToken, dann gespeichertes Gerätetoken, dann Bootstrap-Token.
  • Bootstrap-Token-Scope-Prüfungen sind rollenpräfixiert. Die integrierte Bootstrap-Operator-Allowlist erfüllt nur Operator-Anfragen; Nodes oder andere Nicht-Operator-Rollen benötigen weiterhin Scopes unter ihrem eigenen Rollenpräfix.

Behebung:

  • Am schnellsten: openclaw dashboard (gibt die Dashboard-URL aus + kopiert sie, versucht sie zu öffnen; zeigt SSH-Hinweis bei Headless-Systemen).
  • Wenn Sie noch kein Token haben: openclaw doctor --generate-gateway-token.
  • Wenn remote, zuerst tunneln: ssh -N -L 18789:127.0.0.1:18789 user@host, dann http://127.0.0.1:18789/ öffnen.
  • Shared-Secret-Modus: Setzen Sie gateway.auth.token / OPENCLAW_GATEWAY_TOKEN oder gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD, und fügen Sie dann das passende Secret in den Control-UI-Einstellungen ein.
  • Tailscale-Serve-Modus: Stellen Sie sicher, dass gateway.auth.allowTailscale aktiviert ist und Sie die Serve-URL öffnen, nicht eine rohe loopback-/tailnet-URL, die Tailscale-Identity-Header umgeht.
  • Trusted-Proxy-Modus: Stellen Sie sicher, dass Sie über den konfigurierten identity-aware Proxy kommen, nicht über eine rohe Gateway-URL. Same-Host-loopback-Proxys benötigen außerdem gateway.auth.trustedProxy.allowLoopback = true.
  • Wenn der Mismatch nach dem einen Retry bestehen bleibt, rotieren/genehmigen Sie das gekoppelte Gerätetoken erneut:
    • openclaw devices list
    • openclaw devices rotate --device <id> --role operator
  • Wenn dieser Rotate-Aufruf meldet, dass er abgelehnt wurde, prüfen Sie zwei Dinge:
    • Sitzungen gekoppelter Geräte können nur ihr eigenes Gerät rotieren, es sei denn, sie haben außerdem operator.admin
    • explizite --scope-Werte dürfen die aktuellen Operator-Scopes des Aufrufers nicht überschreiten
  • Immer noch blockiert? Führen Sie openclaw status --all aus und folgen Sie Fehlerbehebung. Siehe Dashboard für Authentifizierungsdetails.
Ich habe gateway.bind auf tailnet gesetzt, aber es kann nicht binden und nichts lauscht

tailnet-Bind wählt eine Tailscale-IP aus Ihren Netzwerkschnittstellen (100.64.0.0/10). Wenn der Rechner nicht in Tailscale ist (oder die Schnittstelle ausgefallen ist), gibt es nichts, woran gebunden werden kann.

Behebung:

  • Starten Sie Tailscale auf diesem Host (damit er eine 100.x-Adresse hat), oder
  • Wechseln Sie zu gateway.bind: "loopback" / "lan".

Hinweis: tailnet ist explizit. auto bevorzugt loopback; verwenden Sie gateway.bind: "tailnet", wenn Sie eine reine tailnet-Bindung möchten.

Kann ich mehrere Gateways auf demselben Host ausführen?

Normalerweise nein - ein Gateway kann mehrere Messaging-Kanäle und Agenten ausführen. Verwenden Sie mehrere Gateways nur, wenn Sie Redundanz (z. B. Rescue-Bot) oder harte Isolation benötigen.

Ja, aber Sie müssen isolieren:

  • OPENCLAW_CONFIG_PATH (Konfiguration pro Instanz)
  • OPENCLAW_STATE_DIR (Status pro Instanz)
  • agents.defaults.workspace (Arbeitsbereich-Isolation)
  • gateway.port (eindeutige Ports)

Schnelle Einrichtung (empfohlen):

  • Verwenden Sie openclaw --profile <name> ... pro Instanz (erstellt automatisch ~/.openclaw-<name>).
  • Setzen Sie in jeder Profilkonfiguration einen eindeutigen gateway.port (oder übergeben Sie --port für manuelle Läufe).
  • Installieren Sie einen Dienst pro Profil: openclaw --profile <name> gateway install.

Profile hängen außerdem Suffixe an Dienstnamen an (ai.openclaw.<profile>; legacy com.openclaw.*, openclaw-gateway-<profile>.service, OpenClaw Gateway (<profile>)). Vollständige Anleitung: Mehrere Gateways.

Was bedeutet "invalid handshake" / Code 1008?

Das Gateway ist ein WebSocket-Server und erwartet als allererste Nachricht einen connect-Frame. Wenn es etwas anderes erhält, schließt es die Verbindung mit Code 1008 (Richtlinienverstoß).

Häufige Ursachen:

  • Sie haben die HTTP-URL in einem Browser geöffnet (http://...) statt eines WS-Clients.
  • Sie haben den falschen Port oder Pfad verwendet.
  • Ein Proxy oder Tunnel hat Auth-Header entfernt oder eine Nicht-Gateway-Anfrage gesendet.

Schnelle Behebungen:

  1. Verwenden Sie die WS-URL: ws://<host>:18789 (oder wss://... bei HTTPS).
  2. Öffnen Sie den WS-Port nicht in einem normalen Browser-Tab.
  3. Wenn Authentifizierung aktiviert ist, schließen Sie Token/Passwort in den connect-Frame ein.

Wenn Sie die CLI oder TUI verwenden, sollte die URL so aussehen:

openclaw tui --url ws://<host>:18789 --token <token>

Protokolldetails: Gateway-Protokoll.

Logging und Debugging

Wo befinden sich die Logs?

Datei-Logs (strukturiert):

/tmp/openclaw/openclaw-YYYY-MM-DD.log

Sie können über logging.file einen stabilen Pfad festlegen. Das Datei-Log-Level wird durch logging.level gesteuert. Die Konsolenausführlichkeit wird durch --verbose und logging.consoleLevel gesteuert.

Schnellstes Log-Tailing:

openclaw logs --follow

Dienst-/Supervisor-Logs (wenn das Gateway über launchd/systemd läuft):

  • macOS: $OPENCLAW_STATE_DIR/logs/gateway.log und gateway.err.log (Standard: ~/.openclaw/logs/...; Profile verwenden ~/.openclaw-<profile>/logs/...)
  • Linux: journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager
  • Windows: schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST

Siehe Fehlerbehebung für mehr.

Wie starte/stoppe/starte ich den Gateway-Dienst neu?

Verwenden Sie die Gateway-Helfer:

openclaw gateway status
openclaw gateway restart

Wenn Sie das Gateway manuell ausführen, kann openclaw gateway --force den Port zurückgewinnen. Siehe Gateway.

Ich habe mein Terminal unter Windows geschlossen - wie starte ich OpenClaw neu?

Es gibt zwei Windows-Installationsmodi:

1) WSL2 (empfohlen): Das Gateway läuft innerhalb von Linux.

Öffnen Sie PowerShell, starten Sie WSL, und starten Sie dann neu:

wsl
openclaw gateway status
openclaw gateway restart

Wenn Sie den Dienst nie installiert haben, starten Sie ihn im Vordergrund:

openclaw gateway run

2) Natives Windows (nicht empfohlen): Das Gateway läuft direkt in Windows.

Öffnen Sie PowerShell und führen Sie aus:

openclaw gateway status
openclaw gateway restart

Wenn Sie es manuell ausführen (kein Dienst), verwenden Sie:

openclaw gateway run

Dokumentation: Windows (WSL2), Gateway-Dienst-Runbook.

Das Gateway ist gestartet, aber Antworten kommen nie an. Was sollte ich prüfen?

Beginnen Sie mit einem schnellen Health-Check:

openclaw status
openclaw models status
openclaw channels status
openclaw logs --follow

Häufige Ursachen:

  • Modellauthentifizierung nicht auf dem Gateway-Host geladen (prüfen Sie models status).
  • Channel-Pairing/Allowlist blockiert Antworten (prüfen Sie Channel-Konfiguration und Logs).
  • WebChat/Dashboard ist ohne das richtige Token geöffnet.

Wenn Sie remote sind, bestätigen Sie, dass die Tunnel-/Tailscale-Verbindung aktiv und der Gateway-WebSocket erreichbar ist.

Docs: Channels, Fehlerbehebung, Remote-Zugriff.

"Disconnected from gateway: no reason" - was jetzt?

Das bedeutet normalerweise, dass die UI die WebSocket-Verbindung verloren hat. Prüfen Sie:

  1. Läuft das Gateway? openclaw gateway status
  2. Ist das Gateway fehlerfrei? openclaw status
  3. Hat die UI das richtige Token? openclaw dashboard
  4. Falls remote, ist der Tunnel-/Tailscale-Link aktiv?

Beobachten Sie dann die Logs:

openclaw logs --follow

Docs: Dashboard, Remote-Zugriff, Fehlerbehebung.

Telegram setMyCommands schlägt fehl. Was sollte ich prüfen?

Beginnen Sie mit Logs und Channel-Status:

openclaw channels status
openclaw channels logs --channel telegram

Ordnen Sie dann den Fehler zu:

  • BOT_COMMANDS_TOO_MUCH: Das Telegram-Menü hat zu viele Einträge. OpenClaw kürzt bereits auf das Telegram-Limit und versucht es mit weniger Befehlen erneut, aber einige Menüeinträge müssen trotzdem entfernt werden. Reduzieren Sie Plugin-/Skill-/benutzerdefinierte Befehle oder deaktivieren Sie channels.telegram.commands.native, wenn Sie das Menü nicht benötigen.
  • TypeError: fetch failed, Network request for 'setMyCommands' failed! oder ähnliche Netzwerkfehler: Wenn Sie auf einem VPS oder hinter einem Proxy sind, bestätigen Sie, dass ausgehendes HTTPS erlaubt ist und DNS für api.telegram.org funktioniert.

Wenn das Gateway remote ist, stellen Sie sicher, dass Sie die Logs auf dem Gateway-Host ansehen.

Docs: Telegram, Channel-Fehlerbehebung.

TUI zeigt keine Ausgabe. Was sollte ich prüfen?

Bestätigen Sie zuerst, dass das Gateway erreichbar ist und der Agent ausgeführt werden kann:

openclaw status
openclaw models status
openclaw logs --follow

Verwenden Sie in der TUI /status, um den aktuellen Zustand zu sehen. Wenn Sie Antworten in einem Chat- Channel erwarten, stellen Sie sicher, dass die Zustellung aktiviert ist (/deliver on).

Docs: TUI, Slash-Befehle.

Wie stoppe und starte ich das Gateway vollständig neu?

Wenn Sie den Dienst installiert haben:

openclaw gateway stop
openclaw gateway start

Dadurch wird der überwachte Dienst gestoppt/gestartet (launchd unter macOS, systemd unter Linux). Verwenden Sie dies, wenn das Gateway im Hintergrund als Daemon läuft.

Wenn Sie es im Vordergrund ausführen, stoppen Sie mit Strg-C und dann:

openclaw gateway run

Docs: Gateway-Dienst-Runbook.

Einfach erklärt: openclaw gateway restart vs openclaw gateway
  • openclaw gateway restart: startet den Hintergrunddienst neu (launchd/systemd).
  • openclaw gateway: führt das Gateway im Vordergrund für diese Terminal-Sitzung aus.

Wenn Sie den Dienst installiert haben, verwenden Sie die Gateway-Befehle. Verwenden Sie openclaw gateway, wenn Sie einen einmaligen Vordergrundlauf möchten.

Schnellster Weg zu mehr Details, wenn etwas fehlschlägt

Starten Sie das Gateway mit --verbose, um mehr Konsolendetails zu erhalten. Prüfen Sie dann die Logdatei auf Channel-Authentifizierung, Modell-Routing und RPC-Fehler.

Medien und Anhänge

Mein Skill hat ein Bild/PDF erzeugt, aber nichts wurde gesendet

Ausgehende Anhänge vom Agent müssen eine MEDIA:<path-or-url>-Zeile enthalten (in einer eigenen Zeile). Siehe OpenClaw-Assistent einrichten und Agent senden.

CLI-Senden:

openclaw message send --target +15555550123 --message "Here you go" --media /path/to/file.png

Prüfen Sie außerdem:

  • Der Ziel-Channel unterstützt ausgehende Medien und wird nicht durch Allowlists blockiert.
  • Die Datei liegt innerhalb der Größenlimits des Providers (Bilder werden auf maximal 2048 px skaliert).
  • tools.fs.workspaceOnly=true beschränkt lokale Pfadsendungen auf Workspace, temp/media-store und sandbox-validierte Dateien.
  • tools.fs.workspaceOnly=false erlaubt MEDIA:, host-lokale Dateien zu senden, die der Agent bereits lesen kann, aber nur für Medien sowie sichere Dokumenttypen (Bilder, Audio, Video, PDF und Office-Dokumente). Reiner Text und dateien, die wie Geheimnisse wirken, werden weiterhin blockiert.

Siehe Bilder.

Sicherheit und Zugriffskontrolle

Ist es sicher, OpenClaw für eingehende DMs freizugeben?

Behandeln Sie eingehende DMs als nicht vertrauenswürdige Eingaben. Die Standardwerte sind darauf ausgelegt, Risiken zu verringern:

  • Standardverhalten auf DM-fähigen Channels ist Pairing:
    • Unbekannte Absender erhalten einen Pairing-Code; der Bot verarbeitet ihre Nachricht nicht.
    • Genehmigen mit: openclaw pairing approve --channel <channel> [--account <id>] <code>
    • Ausstehende Anfragen sind auf 3 pro Channel begrenzt; prüfen Sie openclaw pairing list --channel <channel> [--account <id>], wenn ein Code nicht angekommen ist.
  • DMs öffentlich zu öffnen, erfordert explizites Opt-in (dmPolicy: "open" und Allowlist "*").

Führen Sie openclaw doctor aus, um riskante DM-Richtlinien sichtbar zu machen.

Ist Prompt Injection nur für öffentliche Bots ein Problem?

Nein. Bei Prompt Injection geht es um nicht vertrauenswürdige Inhalte, nicht nur darum, wer dem Bot DMs senden kann. Wenn Ihr Assistent externe Inhalte liest (Websuche/Abruf, Browserseiten, E-Mails, Docs, Anhänge, eingefügte Logs), können diese Inhalte Anweisungen enthalten, die versuchen, das Modell zu kapern. Das kann selbst dann passieren, wenn Sie der einzige Absender sind.

Das größte Risiko besteht, wenn Tools aktiviert sind: Das Modell kann dazu verleitet werden, Kontext zu exfiltrieren oder Tools in Ihrem Namen aufzurufen. Reduzieren Sie den Schadensradius, indem Sie:

  • einen schreibgeschützten oder tool-deaktivierten „Reader“-Agent verwenden, um nicht vertrauenswürdige Inhalte zusammenzufassen
  • web_search / web_fetch / browser für tool-aktivierte Agents deaktiviert lassen
  • dekodierten Datei-/Dokumenttext ebenfalls als nicht vertrauenswürdig behandeln: OpenResponses input_file und die Extraktion von Medienanhängen kapseln extrahierten Text beide in explizite Boundary-Marker für externe Inhalte, statt rohen Dateitext zu übergeben
  • Sandboxing und strenge Tool-Allowlists verwenden

Details: Sicherheit.

Sollte mein Bot eine eigene E-Mail, ein eigenes GitHub-Konto oder eine eigene Telefonnummer haben?

Ja, für die meisten Setups. Das Isolieren des Bots mit separaten Konten und Telefonnummern reduziert den Schadensradius, falls etwas schiefgeht. Das erleichtert außerdem, Zugangsdaten zu rotieren oder Zugriff zu entziehen, ohne Ihre persönlichen Konten zu beeinträchtigen.

Fangen Sie klein an. Gewähren Sie Zugriff nur auf die Tools und Konten, die Sie tatsächlich benötigen, und erweitern Sie später bei Bedarf.

Docs: Sicherheit, Pairing.

Kann ich ihm Autonomie über meine Textnachrichten geben, und ist das sicher?

Wir empfehlen keine vollständige Autonomie über Ihre persönlichen Nachrichten. Das sicherste Muster ist:

  • Lassen Sie DMs im Pairing-Modus oder mit einer engen Allowlist.
  • Verwenden Sie eine separate Nummer oder ein separates Konto, wenn er in Ihrem Namen Nachrichten senden soll.
  • Lassen Sie ihn Entwürfe erstellen und genehmigen Sie vor dem Senden.

Wenn Sie experimentieren möchten, tun Sie das mit einem dedizierten Konto und halten Sie es isoliert. Siehe Sicherheit.

Kann ich günstigere Modelle für Aufgaben eines persönlichen Assistenten verwenden?

Ja, wenn der Agent nur chatten soll und die Eingabe vertrauenswürdig ist. Kleinere Tiers sind anfälliger für Instruction Hijacking, vermeiden Sie sie daher für tool-aktivierte Agents oder beim Lesen nicht vertrauenswürdiger Inhalte. Wenn Sie ein kleineres Modell verwenden müssen, sperren Sie Tools ab und führen Sie es in einer Sandbox aus. Siehe Sicherheit.

Ich habe /start in Telegram ausgeführt, aber keinen Pairing-Code erhalten

Pairing-Codes werden nur gesendet, wenn ein unbekannter Absender dem Bot eine Nachricht sendet und dmPolicy: "pairing" aktiviert ist. /start allein erzeugt keinen Code.

Prüfen Sie ausstehende Anfragen:

openclaw pairing list telegram

Wenn Sie sofortigen Zugriff möchten, nehmen Sie Ihre Absender-ID in die Allowlist auf oder setzen Sie dmPolicy: "open" für dieses Konto.

WhatsApp: Sendet es Nachrichten an meine Kontakte? Wie funktioniert Pairing?

Nein. Die Standard-DM-Richtlinie von WhatsApp ist Pairing. Unbekannte Absender erhalten nur einen Pairing-Code, und ihre Nachricht wird nicht verarbeitet. OpenClaw antwortet nur auf Chats, die es empfängt, oder auf explizite Sendungen, die Sie auslösen.

Pairing genehmigen mit:

openclaw pairing approve whatsapp <code>

Ausstehende Anfragen auflisten:

openclaw pairing list whatsapp

Assistenten-Telefonnummernabfrage: Sie wird verwendet, um Ihre Allowlist/Ihren Besitzer festzulegen, damit Ihre eigenen DMs erlaubt sind. Sie wird nicht zum automatischen Senden verwendet. Wenn Sie Ihre persönliche WhatsApp-Nummer verwenden, verwenden Sie diese Nummer und aktivieren Sie channels.whatsapp.selfChatMode.

Chat-Befehle, Aufgaben abbrechen und „es hört nicht auf“

Wie verhindere ich, dass interne Systemnachrichten im Chat angezeigt werden?

Die meisten internen oder Tool-Nachrichten erscheinen nur, wenn verbose, trace oder reasoning für diese Sitzung aktiviert ist.

Beheben Sie es in dem Chat, in dem Sie es sehen:

/verbose off
/trace off
/reasoning off

Wenn es weiterhin zu ausführlich ist, prüfen Sie die Sitzungseinstellungen in der Control UI und setzen Sie verbose auf inherit. Bestätigen Sie außerdem, dass Sie kein Bot-Profil verwenden, bei dem verboseDefault in der Konfiguration auf on gesetzt ist.

Docs: Denken und verbose, Sicherheit.

Wie stoppe/breche ich eine laufende Aufgabe ab?

Senden Sie eine dieser Nachrichten als eigenständige Nachricht (kein Slash):

stop
stop action
stop current action
stop run
stop current run
stop agent
stop the agent
stop openclaw
openclaw stop
stop don't do anything
stop do not do anything
stop doing anything
please stop
stop please
abort
esc
wait
exit
interrupt

Dies sind Abbruch-Trigger (keine Slash-Befehle).

Für Hintergrundprozesse (aus dem exec-Tool) können Sie den Agent bitten, Folgendes auszuführen:

process action:kill sessionId:XXX

Übersicht der Slash-Befehle: siehe Slash-Befehle.

Die meisten Befehle müssen als eigenständige Nachricht gesendet werden, die mit / beginnt, aber einige Kurzbefehle (wie /status) funktionieren für Absender in der Allowlist auch inline.

Wie sende ich eine Discord-Nachricht aus Telegram? ("Cross-context messaging denied")

OpenClaw blockiert Cross-Provider-Messaging standardmäßig. Wenn ein Tool-Aufruf an Telegram gebunden ist, sendet er nicht an Discord, sofern Sie es nicht ausdrücklich erlauben.

Aktivieren Sie Cross-Provider-Messaging für den Agent:

{
  tools: {
    message: {
      crossContext: {
        allowAcrossProviders: true,
        marker: { enabled: true, prefix: "[from {channel}] " },
      },
    },
  },
}

Starten Sie das Gateway nach dem Bearbeiten der Konfiguration neu.

Warum wirkt es so, als würde der Bot schnell hintereinander gesendete Nachrichten "ignorieren"?

Der Warteschlangenmodus steuert, wie neue Nachrichten mit einem laufenden Durchlauf interagieren. Verwenden Sie /queue, um Modi zu ändern:

  • steer - alle ausstehenden Steuerungsnachrichten für die nächste Modellgrenze im aktuellen Durchlauf einreihen
  • queue - Legacy-Steuerung, eine nach der anderen
  • followup - Nachrichten nacheinander ausführen
  • collect - Nachrichten bündeln und einmal antworten
  • steer-backlog - jetzt steuern, dann Rückstand verarbeiten
  • interrupt - aktuellen Durchlauf abbrechen und neu starten

Standardmodus ist steer. Sie können Optionen wie debounce:0.5s cap:25 drop:summarize für Folgemodi hinzufügen. Siehe Befehlswarteschlange und Steuerungswarteschlange.

Verschiedenes

Was ist das Standardmodell für Anthropic mit einem API-Schlüssel?

In OpenClaw sind Zugangsdaten und Modellauswahl getrennt. Das Setzen von ANTHROPIC_API_KEY (oder das Speichern eines Anthropic-API-Schlüssels in Authentifizierungsprofilen) aktiviert die Authentifizierung, aber das tatsächliche Standardmodell ist das, was Sie in agents.defaults.model.primary konfigurieren (zum Beispiel anthropic/claude-sonnet-4-6 oder anthropic/claude-opus-4-6). Wenn Sie No credentials found for profile "anthropic:default" sehen, bedeutet das, dass das Gateway die Anthropic-Zugangsdaten nicht in der erwarteten auth-profiles.json für den ausgeführten Agenten finden konnte.


Immer noch nicht weitergekommen? Fragen Sie in Discord oder eröffnen Sie eine GitHub-Diskussion.

Ähnliche Themen