Einen personlichen Assistenten mit OpenClaw aufbauen
OpenClaw ist ein WhatsApp-, Telegram-, Discord- und iMessage-Gateway fur Pi-Agenten. Plugins erganzen Mattermost. Diese Anleitung beschreibt das “Personlicher Assistent”-Setup: eine dedizierte WhatsApp-Nummer, die sich wie dein Always-on-Agent verhalt.
⚠️ Sicherheit zuerst
Du gibst einem Agenten die Moglichkeit:
- Befehle auf deiner Maschine auszufuhren (abhangig von deinem Pi-Tool-Setup)
- Dateien in deinem Workspace zu lesen/schreiben
- Nachrichten uber WhatsApp/Telegram/Discord/Mattermost (Plugin) zuruckzusenden
Starte konservativ:
- Setze immer
channels.whatsapp.allowFrom(betreibe es nie offen fur die Welt auf deinem personlichen Mac). - Verwende eine dedizierte WhatsApp-Nummer fur den Assistenten.
- Heartbeats laufen jetzt standardmassig alle 30 Minuten. Deaktiviere sie, bis du dem Setup vertraust, mit
agents.defaults.heartbeat.every: "0m".
Voraussetzungen
- OpenClaw installiert und eingerichtet — siehe Erste Schritte, falls noch nicht geschehen
- Eine zweite Telefonnummer (SIM/eSIM/Prepaid) fur den Assistenten
Das Zwei-Telefon-Setup (empfohlen)
Du willst folgendes:
flowchart TB
A["<b>Dein Telefon (personlich)<br></b><br>Dein WhatsApp<br>+1-555-DU"] -- Nachricht --> B["<b>Zweites Telefon (Assistent)<br></b><br>Assistenten-WA<br>+1-555-ASSIST"]
B -- via QR verknupft --> C["<b>Dein Mac (openclaw)<br></b><br>Pi-Agent"]
Wenn du dein personliches WhatsApp mit OpenClaw verknupfst, wird jede Nachricht an dich zum “Agent-Input”. Das ist selten das, was du willst.
5-Minuten-Schnellstart
- WhatsApp Web pairen (zeigt QR; mit dem Assistenten-Telefon scannen):
openclaw channels login
- Gateway starten (laufen lassen):
openclaw gateway --port 18789
- Minimale Config in
~/.openclaw/openclaw.jsonablegen:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Jetzt kannst du von deinem freigegebenen Telefon aus dem Assistenten schreiben.
Nach Abschluss des Onboardings offnet sich automatisch das Dashboard mit einem sauberen (nicht tokenisierten) Link. Falls nach Auth gefragt wird, paste den Token aus gateway.auth.token in die Control-UI-Einstellungen. Spater erneut offnen: openclaw dashboard.
Dem Agenten einen Workspace geben (AGENTS)
OpenClaw liest Betriebsanweisungen und “Memory” aus seinem Workspace-Verzeichnis.
Standardmassig nutzt OpenClaw ~/.openclaw/workspace als Agent-Workspace und erstellt ihn (inklusive Starter-Dateien AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) automatisch beim Setup/ersten Agent-Start. BOOTSTRAP.md wird nur bei einem brandneuen Workspace erstellt (es sollte nach dem Loschen nicht zuruckkommen). MEMORY.md ist optional (wird nicht automatisch erstellt); wenn vorhanden, wird sie fur normale Sessions geladen. Subagent-Sessions injizieren nur AGENTS.md und TOOLS.md.
Tipp: Behandle diesen Ordner wie OpenClaws “Gedachtnis” 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
Vollstandiges Workspace-Layout + Backup-Guide: Agent Workspace Memory-Workflow: Memory
Optional: Wahle einen anderen Workspace mit agents.defaults.workspace (unterstutzt ~).
{
agent: {
workspace: "~/.openclaw/workspace",
},
}
Wenn du bereits eigene Workspace-Dateien aus einem Repo mitbringst, kannst du die Bootstrap-Dateierstellung komplett deaktivieren:
{
agent: {
skipBootstrap: true,
},
}
Die Config, die es zum “Assistenten” macht
OpenClaw hat von Haus aus ein gutes Assistenten-Setup, aber typischerweise willst du Folgendes anpassen:
- Persona/Anweisungen in
SOUL.md - Thinking-Defaults (falls gewunscht)
- Heartbeats (sobald du dem Setup vertraust)
Beispiel:
{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-6",
workspace: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Mit 0 starten; spater aktivieren.
heartbeat: { every: "0m" },
},
channels: {
whatsapp: {
allowFrom: ["+15555550123"],
groups: {
"*": { requireMention: true },
},
},
},
routing: {
groupChat: {
mentionPatterns: ["@openclaw", "openclaw"],
},
},
session: {
scope: "per-sender",
resetTriggers: ["/new", "/reset"],
reset: {
mode: "daily",
atHour: 4,
idleMinutes: 10080,
},
},
}
Sessions und Memory
- Session-Dateien:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - Session-Metadaten (Token-Verbrauch, letzte Route etc.):
~/.openclaw/agents/<agentId>/sessions/sessions.json(Legacy:~/.openclaw/sessions/sessions.json) /newoder/resetstartet eine frische Session fur diesen Chat (konfigurierbar uberresetTriggers). Wird es allein gesendet, antwortet der Agent mit einem kurzen Hallo zur Bestatigung des Resets./compact [instructions]kompaktiert den Session-Kontext und meldet das verbleibende Context-Budget.
Heartbeats (proaktiver Modus)
Standardmassig fuhrt OpenClaw alle 30 Minuten einen Heartbeat mit folgendem 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.
Mit agents.defaults.heartbeat.every: "0m" deaktivierst du Heartbeats.
- Wenn
HEARTBEAT.mdexistiert, aber effektiv leer ist (nur Leerzeilen und Markdown-Header wie# Heading), uberspringt OpenClaw den Heartbeat-Durchlauf, um API-Calls zu sparen. - Fehlt die Datei, lauft der Heartbeat trotzdem und das Modell entscheidet, was zu tun ist.
- Antwortet der Agent mit
HEARTBEAT_OK(optional mit kurzem Padding; sieheagents.defaults.heartbeat.ackMaxChars), unterdrueckt OpenClaw die ausgehende Zustellung fur diesen Heartbeat. - Standardmassig ist die Heartbeat-Zustellung an DM-artige
user:<id>-Ziele erlaubt. Mitagents.defaults.heartbeat.directPolicy: "block"unterbindest du die Zustellung an Direktziele, wahrend die Heartbeat-Durchlaufe weiterhin aktiv bleiben. - Heartbeats fuhren volle Agent-Turns aus — kurzere Intervalle verbrauchen mehr Tokens.
{
agent: {
heartbeat: { every: "30m" },
},
}
Medien rein und raus
Eingehende Anhange (Bilder/Audio/Dokumente) konnen uber Templates an deinen Befehl weitergegeben werden:
{{MediaPath}}(lokaler Temp-Dateipfad){{MediaUrl}}(Pseudo-URL){{Transcript}}(wenn Audio-Transkription aktiviert ist)
Ausgehende Anhange vom Agenten: schreibe MEDIA:<path-or-url> in einer eigenen Zeile (ohne Leerzeichen). Beispiel:
Here's the screenshot.
MEDIA:https://example.com/screenshot.png
OpenClaw extrahiert diese und sendet sie als Medien zusammen mit dem Text.
Operations-Checkliste
openclaw status # lokaler Status (Creds, Sessions, Queue-Events)
openclaw status --all # vollstandige Diagnose (Read-only, kopierbar)
openclaw status --deep # zusatzlich Gateway-Health-Probes (Telegram + Discord)
openclaw health --json # Gateway-Health-Snapshot (WS)
Logs liegen unter /tmp/openclaw/ (Standard: openclaw-YYYY-MM-DD.log).
Nachste Schritte
- WebChat: WebChat
- Gateway-Betrieb: Gateway-Runbook
- Cron + Wakeups: Cron-Jobs
- macOS-Menuleisten-Companion: OpenClaw macOS-App
- iOS-Node-App: iOS-App
- Android-Node-App: Android-App
- Windows-Status: Windows (WSL2)
- Linux-Status: Linux-App
- Sicherheit: Sicherheit