Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw is een zelfgehoste Gateway die Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo en meer verbindt met AI-agents. Deze gids behandelt de setup voor een “persoonlijke assistent”: een speciaal WhatsApp-nummer dat zich gedraagt als je altijd beschikbare AI-assistent.

⚠️ Veiligheid eerst

Je plaatst een agent in een positie waarin die het volgende kan doen:
  • opdrachten uitvoeren op je machine (afhankelijk van je toolbeleid)
  • bestanden lezen/schrijven in je workspace
  • berichten terugsturen via WhatsApp/Telegram/Discord/Mattermost en andere meegeleverde kanalen
Begin conservatief:
  • Stel altijd channels.whatsapp.allowFrom in (draai nooit open-voor-de-wereld op je persoonlijke Mac).
  • Gebruik een speciaal WhatsApp-nummer voor de assistent.
  • Heartbeats staan nu standaard op elke 30 minuten. Schakel dit uit totdat je de setup vertrouwt door agents.defaults.heartbeat.every: "0m" in te stellen.

Vereisten

  • OpenClaw geïnstalleerd en geonboard - zie Aan de slag als je dit nog niet hebt gedaan
  • Een tweede telefoonnummer (SIM/eSIM/prepaid) voor de assistent

De setup met twee telefoons (aanbevolen)

Je wilt dit: Als je je persoonlijke WhatsApp koppelt aan OpenClaw, wordt elk bericht aan jou “agent-invoer”. Dat is zelden wat je wilt.

Snelstart in 5 minuten

  1. Koppel WhatsApp Web (toont QR; scan met de assistenttelefoon):
openclaw channels login
  1. Start de Gateway (laat deze draaien):
openclaw gateway --port 18789
  1. Zet een minimale configuratie in ~/.openclaw/openclaw.json:
{
  gateway: { mode: "local" },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Stuur nu een bericht naar het assistentnummer vanaf je telefoon op de allowlist. Wanneer onboarding klaar is, opent OpenClaw automatisch het dashboard en print het een schone (niet-getokeniseerde) link. Als het dashboard om authenticatie vraagt, plak dan het geconfigureerde gedeelde geheim in de Control UI-instellingen. Onboarding gebruikt standaard een token (gateway.auth.token), maar wachtwoordauthenticatie werkt ook als je gateway.auth.mode hebt gewijzigd naar password. Later opnieuw openen: openclaw dashboard.

Geef de agent een workspace (AGENTS)

OpenClaw leest bedieningsinstructies en “geheugen” uit de workspace-directory. Standaard gebruikt OpenClaw ~/.openclaw/workspace als agent-workspace en maakt deze automatisch aan (plus startbestanden AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) tijdens setup/eerste agent-run. BOOTSTRAP.md wordt alleen aangemaakt wanneer de workspace helemaal nieuw is (het hoort niet terug te komen nadat je het verwijdert). MEMORY.md is optioneel (wordt niet automatisch aangemaakt); wanneer aanwezig, wordt het geladen voor normale sessies. Subagent-sessies injecteren alleen AGENTS.md en TOOLS.md.
Behandel deze map als het geheugen van OpenClaw en maak er een git-repo van (idealiter privé), zodat je AGENTS.md en geheugenbestanden zijn geback-upt. Als git is geïnstalleerd, worden gloednieuwe workspaces automatisch geïnitialiseerd.
openclaw setup
Volledige workspace-indeling + backupgids: Agent-workspace Geheugenworkflow: Geheugen Optioneel: kies een andere workspace met agents.defaults.workspace (ondersteunt ~).
{
  agents: {
    defaults: {
      workspace: "~/.openclaw/workspace",
    },
  },
}
Als je al je eigen workspace-bestanden vanuit een repo levert, kun je het aanmaken van bootstrap-bestanden volledig uitschakelen:
{
  agents: {
    defaults: {
      skipBootstrap: true,
    },
  },
}

De configuratie die er “een assistent” van maakt

OpenClaw staat standaard op een goede assistent-setup, maar meestal wil je dit afstemmen:
  • persona/instructies in SOUL.md
  • denkstandaarden (indien gewenst)
  • Heartbeats (zodra je het vertrouwt)
Voorbeeld:
{
  logging: { level: "info" },
  agents: {
    defaults: {
      model: { primary: "anthropic/claude-opus-4-6" },
      workspace: "~/.openclaw/workspace",
      thinkingDefault: "high",
      timeoutSeconds: 1800,
      // Start with 0; enable later.
      heartbeat: { every: "0m" },
    },
    list: [
      {
        id: "main",
        default: true,
        groupChat: {
          mentionPatterns: ["@openclaw", "openclaw"],
        },
      },
    ],
  },
  channels: {
    whatsapp: {
      allowFrom: ["+15555550123"],
      groups: {
        "*": { requireMention: true },
      },
    },
  },
  session: {
    scope: "per-sender",
    resetTriggers: ["/new", "/reset"],
    reset: {
      mode: "daily",
      atHour: 4,
      idleMinutes: 10080,
    },
  },
}

Sessies en geheugen

  • Sessiebestanden: ~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl
  • Sessiemetadata (tokengebruik, laatste route, enzovoort): ~/.openclaw/agents/<agentId>/sessions/sessions.json (legacy: ~/.openclaw/sessions/sessions.json)
  • /new of /reset start een nieuwe sessie voor die chat (configureerbaar via resetTriggers). Als dit alleen wordt verzonden, bevestigt OpenClaw de reset zonder het model aan te roepen.
  • /compact [instructions] comprimeert de sessiecontext en rapporteert het resterende contextbudget.

Heartbeats (proactieve modus)

Standaard voert OpenClaw elke 30 minuten een Heartbeat uit met de prompt: 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. Stel agents.defaults.heartbeat.every: "0m" in om dit uit te schakelen.
  • Als HEARTBEAT.md bestaat maar effectief leeg is (alleen lege regels en markdownkoppen zoals # Heading), slaat OpenClaw de Heartbeat-run over om API-aanroepen te besparen.
  • Als het bestand ontbreekt, wordt de Heartbeat nog steeds uitgevoerd en bepaalt het model wat er moet gebeuren.
  • Als de agent antwoordt met HEARTBEAT_OK (optioneel met korte padding; zie agents.defaults.heartbeat.ackMaxChars), onderdrukt OpenClaw uitgaande levering voor die Heartbeat.
  • Standaard is Heartbeat-levering aan DM-achtige user:<id>-doelen toegestaan. Stel agents.defaults.heartbeat.directPolicy: "block" in om levering aan directe doelen te onderdrukken terwijl Heartbeat-runs actief blijven.
  • Heartbeats voeren volledige agent-beurten uit - kortere intervallen verbruiken meer tokens.
{
  agents: {
    defaults: {
      heartbeat: { every: "30m" },
    },
  },
}

Media in en uit

Binnenkomende bijlagen (afbeeldingen/audio/docs) kunnen via templates aan je command worden aangeboden:
  • {{MediaPath}} (lokaal tijdelijk bestandspad)
  • {{MediaUrl}} (pseudo-URL)
  • {{Transcript}} (als audiotranscriptie is ingeschakeld)
Uitgaande bijlagen van de agent: voeg MEDIA:<path-or-url> toe op een eigen regel (geen spaties). Voorbeeld:
Here's the screenshot.
MEDIA:https://example.com/screenshot.png
OpenClaw extraheert deze en verzendt ze als media naast de tekst. Gedrag voor lokale paden volgt hetzelfde vertrouwensmodel voor bestandslezen als de agent:
  • Als tools.fs.workspaceOnly true is, blijven uitgaande lokale MEDIA:-paden beperkt tot de tijdelijke root van OpenClaw, de mediacache, agent-workspacepaden en door de sandbox gegenereerde bestanden.
  • Als tools.fs.workspaceOnly false is, kan uitgaande MEDIA: host-lokale bestanden gebruiken die de agent al mag lezen.
  • Lokale paden kunnen absoluut, relatief aan de workspace of relatief aan de homemap met ~/ zijn.
  • Host-lokale verzending staat nog steeds alleen media en veilige documenttypen toe (afbeeldingen, audio, video, PDF en Office-documenten). Platte tekst en bestanden die op geheimen lijken, worden niet behandeld als verzendbare media.
Dat betekent dat gegenereerde afbeeldingen/bestanden buiten de workspace nu kunnen worden verzonden wanneer je fs-beleid die leesacties al toestaat, zonder willekeurige exfiltratie van hosttekstbijlagen opnieuw mogelijk te maken.

Operationele checklist

openclaw status          # local status (creds, sessions, queued events)
openclaw status --all    # full diagnosis (read-only, pasteable)
openclaw status --deep   # asks the gateway for a live health probe with channel probes when supported
openclaw health --json   # gateway health snapshot (WS; default can return a fresh cached snapshot)
Logs staan onder /tmp/openclaw/ (standaard: openclaw-YYYY-MM-DD.log).

Volgende stappen

Gerelateerd