Persönlichen Assistenten mit OpenClaw aufsetzen (Clawd-Style)

OpenClaw ist ein WhatsApp + Telegram + Discord + iMessage Gateway für Pi Agents. Plugins fügen Mattermost hinzu. Diese Anleitung zeigt dir das “persönlicher Assistent”-Setup: eine dedizierte WhatsApp-Nummer, die sich wie dein Always-on-Agent verhält.

⚠️ Sicherheit zuerst

Du gibst dem Agent die Möglichkeit:

  • Befehle auf deinem Rechner auszuführen (abhängig von deinem Pi Tool Setup)
  • Dateien in deinem Workspace zu lesen und zu schreiben
  • Nachrichten über WhatsApp/Telegram/Discord/Mattermost (Plugin) zu versenden

Starte konservativ:

  • Setze immer channels.whatsapp.allowFrom (lass den Agent niemals offen für die ganze Welt auf deinem persönlichen Mac laufen).
  • Nutze eine dedizierte WhatsApp-Nummer für den Assistenten.
  • Heartbeats laufen standardmäßig alle 30 Minuten. Deaktiviere sie, bis du dem Setup vertraust, mit agents.defaults.heartbeat.every: "0m".

Voraussetzungen

  • Node 22+
  • OpenClaw im PATH verfügbar (empfohlen: globale Installation)
  • Eine zweite Telefonnummer (SIM/eSIM/Prepaid) für den Assistenten
npm install -g openclaw@latest
# oder: pnpm add -g openclaw@latest

Aus dem Quellcode (Development):

git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # installiert UI-Abhängigkeiten beim ersten Durchlauf automatisch
pnpm build
pnpm link --global

Das Zwei-Telefon-Setup (empfohlen)

So sollte es aussehen:

Dein Telefon (persönlich)      Zweites Telefon (Assistent)
┌─────────────────┐           ┌─────────────────┐
│  Dein WhatsApp  │  ──────▶  │  Assistenten-WA │
│  +1-555-YOU     │  Nachricht│  +1-555-CLAWD   │
└─────────────────┘           └────────┬────────┘
                                       │ per QR verknüpft

                              ┌─────────────────┐
                              │  Dein Mac       │
                              │  (openclaw)     │
                              │    Pi Agent     │
                              └─────────────────┘

Wenn du dein persönliches WhatsApp mit OpenClaw verknüpfst, wird jede Nachricht an dich zu “Agent-Input”. Das willst du normalerweise nicht.

5-Minuten-Schnellstart

  1. WhatsApp Web koppeln (zeigt QR-Code; scanne mit dem Assistenten-Telefon):
openclaw channels login
  1. Gateway starten (laufen lassen):
openclaw gateway --port 18789
  1. Minimale Config in ~/.clawdbot/openclaw.json anlegen:
{
  channels: { whatsapp: { allowFrom: ["+15555550123"] } }
}

Jetzt schreib dem Assistenten von deinem freigegebenen Telefon eine Nachricht.

Wenn das Onboarding abgeschlossen ist, öffnen wir automatisch das Dashboard mit deinem Gateway Token und zeigen den tokenisierten Link. Um es später erneut zu öffnen: openclaw dashboard.

Dem Agent einen Workspace geben (AGENTS)

Clawd liest Betriebsanweisungen und “Gedächtnis” aus seinem Workspace-Verzeichnis.

Standardmäßig nutzt OpenClaw ~/clawd als Agent Workspace und erstellt ihn (plus Starter-Dateien AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md) automatisch beim Setup oder beim ersten Agent-Lauf. BOOTSTRAP.md wird nur erstellt, wenn der Workspace brandneu ist (sollte nach dem Löschen nicht zurückkommen).

Tipp: Behandle diesen Ordner wie Clawds “Gedächtnis” und mach ein Git-Repo daraus (idealerweise privat), damit deine AGENTS.md und Memory-Dateien gesichert sind. Wenn Git installiert ist, werden brandneue Workspaces automatisch initialisiert.

openclaw setup

Vollständiges Workspace-Layout und Backup-Anleitung: Agent Workspace Memory-Workflow: Memory

Optional: Wähle einen anderen Workspace mit agents.defaults.workspace (unterstützt ~).

{
  agent: {
    workspace: "~/clawd"
  }
}

Wenn du bereits eigene Workspace-Dateien aus einem Repo mitbringst, kannst du die Bootstrap-Dateierstellung komplett deaktivieren:

{
  agent: {
    skipBootstrap: true
  }
}

Die Config, die daraus “einen Assistenten” macht

OpenClaw hat gute Standard-Einstellungen für einen Assistenten, aber du willst normalerweise anpassen:

  • Persona/Anweisungen in SOUL.md
  • Thinking-Defaults (falls gewünscht)
  • Heartbeats (sobald du dem Setup vertraust)

Beispiel:

{
  logging: { level: "info" },
  agent: {
    model: "anthropic/claude-opus-4-5",
    workspace: "~/clawd",
    thinkingDefault: "high",
    timeoutSeconds: 1800,
    // Starte mit 0; aktiviere später.
    heartbeat: { every: "0m" }
  },
  channels: {
    whatsapp: {
      allowFrom: ["+15555550123"],
      groups: {
        "*": { requireMention: true }
      }
    }
  },
  routing: {
    groupChat: {
      mentionPatterns: ["@clawd", "clawd"]
    }
  },
  session: {
    scope: "per-sender",
    resetTriggers: ["/new", "/reset"],
    reset: {
      mode: "daily",
      atHour: 4,
      idleMinutes: 10080
    }
  }
}

Sessions und Memory

  • Session-Dateien: ~/.clawdbot/agents/<agentId>/sessions/{{SessionId}}.jsonl
  • Session-Metadaten (Token-Nutzung, letzte Route, etc.): ~/.clawdbot/agents/<agentId>/sessions/sessions.json (Legacy: ~/.clawdbot/sessions/sessions.json)
  • /new oder /reset startet eine frische Session für diesen Chat (konfigurierbar über resetTriggers). Wenn alleine gesendet, antwortet der Agent mit einem kurzen Hallo zur Bestätigung des Resets.
  • /compact [instructions] komprimiert den Session Context und meldet das verbleibende Context-Budget.

Heartbeats (proaktiver Modus)

Standardmäßig führt OpenClaw alle 30 Minuten einen Heartbeat mit diesem Prompt aus: Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK. Setze agents.defaults.heartbeat.every: "0m" zum Deaktivieren.

  • Wenn HEARTBEAT.md existiert, aber effektiv leer ist (nur Leerzeilen und Markdown-Header wie # Heading), überspringt OpenClaw den Heartbeat-Lauf, um API-Calls zu sparen.
  • Wenn die Datei fehlt, läuft der Heartbeat trotzdem und das Modell entscheidet, was zu tun ist.
  • Wenn der Agent mit HEARTBEAT_OK antwortet (optional mit kurzem Padding; siehe agents.defaults.heartbeat.ackMaxChars), unterdrückt OpenClaw die ausgehende Zustellung für diesen Heartbeat.
  • Heartbeats führen vollständige Agent-Turns aus — kürzere Intervalle verbrauchen mehr Token.
{
  agent: {
    heartbeat: { every: "30m" }
  }
}

Medien rein und raus

Eingehende Anhänge (Bilder/Audio/Docs) können über Templates an deinen Befehl übergeben werden:

  • {{MediaPath}} (lokaler Temp-Dateipfad)
  • {{MediaUrl}} (Pseudo-URL)
  • {{Transcript}} (wenn Audio-Transkription aktiviert ist)

Ausgehende Anhänge vom Agent: Füge MEDIA:<pfad-oder-url> in einer eigenen Zeile ein (keine Leerzeichen). Beispiel:

Hier ist der Screenshot.
MEDIA:/tmp/screenshot.png

OpenClaw extrahiert diese und sendet sie als Medien zusammen mit dem Text.

Operations-Checkliste

openclaw status          # lokaler Status (Credentials, Sessions, wartende Events)
openclaw status --all    # vollständige Diagnose (read-only, einfügbar)
openclaw status --deep   # fügt Gateway Health Probes hinzu (Telegram + Discord)
openclaw health --json   # Gateway Health Snapshot (WS)

Logs liegen unter /tmp/openclaw/ (Standard: openclaw-YYYY-MM-DD.log).

Nächste Schritte