Einen persönlichen Assistenten mit OpenClaw bauen
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 einem 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 (Entwicklung):
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)
Das willst du haben:
Dein Telefon (persönlich) Zweites Telefon (Assistent)
┌─────────────────┐ ┌─────────────────┐
│ Dein WhatsApp │ ──────▶ │ Assistenten-WA │
│ +1-555-YOU │ Nachricht│ +1-555-ASSIST │
└─────────────────┘ └────────┬────────┘
│ 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 selten.
5-Minuten-Schnellstart
- WhatsApp Web koppeln (zeigt QR-Code; scanne mit dem Assistenten-Telefon):
openclaw channels login
- Gateway starten (laufen lassen):
openclaw gateway --port 18789
- Minimale Config in
~/.openclaw/openclaw.jsonanlegen:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Jetzt schreib eine Nachricht an die Assistenten-Nummer von deinem freigegebenen Telefon.
Wenn das Onboarding fertig ist, öffnen wir automatisch das Dashboard mit deinem Gateway Token und geben den tokenisierten Link aus. Um es später erneut zu öffnen: openclaw dashboard.
Dem Agent einen Workspace geben (AGENTS)
OpenClaw liest Betriebsanweisungen und “Gedächtnis” aus seinem Workspace-Verzeichnis.
Standardmäßig nutzt OpenClaw ~/.openclaw/workspace als Agent Workspace und erstellt ihn (plus Starter-Dateien AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md) automatisch beim Setup oder ersten Agent-Lauf. BOOTSTRAP.md wird nur erstellt, wenn der Workspace brandneu ist (es sollte nicht zurückkommen, nachdem du es gelöscht hast).
Tipp: Behandle diesen Ordner wie OpenClaws “Gedächtnis” und mach daraus ein Git-Repo (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: "~/.openclaw/workspace",
},
}
Wenn du bereits eigene Workspace-Dateien aus einem Repo auslieferst, kannst du die Bootstrap-Dateierstellung komplett deaktivieren:
{
agent: {
skipBootstrap: true,
},
}
Die Config, die daraus “einen Assistenten” macht
OpenClaw hat standardmäßig ein gutes Assistenten-Setup, 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: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Starte mit 0; später 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-Nutzung, letzte Route, etc.):
~/.openclaw/agents/<agentId>/sessions/sessions.json(Legacy:~/.openclaw/sessions/sessions.json) /newoder/resetstartet eine frische Session für diesen Chat (konfigurierbar überresetTriggers). 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.mdexistiert, 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_OKantwortet (optional mit kurzem Padding; sieheagents.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/Dokumente) 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:<path-or-url> in einer eigenen Zeile ein (keine Leerzeichen). Beispiel:
Hier ist der 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 (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
- WebChat: WebChat
- Gateway-Betrieb: Gateway Runbook
- Cron + Wakeups: Cron Jobs
- macOS Menüleisten-Companion: OpenClaw macOS App
- iOS Node App: iOS App
- Android Node App: Android App
- Windows-Status: Windows (WSL2)
- Linux-Status: Linux App
- Sicherheit: Security