Hoppa till huvudinnehåll

Bygga en personlig assistent med OpenClaw

OpenClaw är en WhatsApp + Telegram + Discord + iMessage gateway för Pi agenter. Tillägg till Mattermost. Denna guide är “personlig assistent” setup: en dedikerad WhatsApp nummer som beter sig som din alltid ombud.

⚠️ Säkerhet först

Du placerar en agent i en position att:
  • köra kommandon på din maskin (beroende på din Pi-verktygskonfiguration)
  • läsa/skriva filer i din arbetsyta
  • skicka meddelanden vidare via WhatsApp/Telegram/Discord/Mattermost (plugin)
Börja försiktigt:
  • Sätt alltid channels.whatsapp.allowFrom (kör aldrig öppet mot hela världen på din personliga Mac).
  • Använd ett dedikerat WhatsApp-nummer för assistenten.
  • Heartbeats är nu standard för var 30:e minut. Inaktivera tills du litar på installationen genom att ställa in agents.defaults.heartbeat.every: "0m".

Förutsättningar

  • OpenClaw installerat och introducerat — se Kom igång om du inte har gjort detta än
  • Ett andra telefonnummer (SIM/eSIM/kontantkort) för assistenten

Tvåtelefonersuppsättningen (rekommenderas)

Du vill ha detta: Om du länkar din personliga WhatsApp till OpenClaw, varje meddelande till dig blir “agent input”. Det är sällan det du vill.

Snabbstart på 5 minuter

  1. Para WhatsApp Web (visar QR; skanna med assistenttelefonen):
openclaw channels login
  1. Starta Gateway (låt den vara igång):
openclaw gateway --port 18789
  1. Lägg in en minimal konfig i ~/.openclaw/openclaw.json:
{
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Meddela nu assistentnumret från din tillåtelselista. När onboarding är klar öppnar vi instrumentbrädan automatiskt och skriver ut en ren (icke-tokenized) länk. Om det ber om att få auth, klistra in token från gateway.auth.token i kontrollgränssnittets inställningar. För att öppna senare: openclaw dashboard.

Ge agenten en arbetsyta (AGENTS)

OpenClaw läser driftinstruktioner och ”minne” från sin arbetsytekatalog. Som standard använder OpenClaw ~/.openclaw/workspace som agentens arbetsyta, och kommer att skapa det (plus start-AGENTS. d, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) automatiskt vid setup/första agent kör. BOOTSTRAP.md skapas bara när arbetsytan är helt ny (det bör inte komma tillbaka efter att du tagit bort den). MEMORY.md är valfritt (inte automatiskt skapat); när närvarande, är det laddat för normala sessioner. Underagent sessioner endast injicera AGENTS.md och TOOLS.md. Tips: behandla den här mappen som OpenClaws ”minne” och gör den till en git repo (helst privat) så att dina AGENTS.md + minnesfiler säkerhetskopieras. Om git är installerat är helt nya arbetsytor autoinitierade.
openclaw setup
Fullständig arbetsytestruktur + guide för säkerhetskopiering: Agent workspace
Minnesarbetsflöde: Memory
Valfritt: välj en annan arbetsyta med agents.defaults.workspace (stödjer ~).
{
  agent: {
    workspace: "~/.openclaw/workspace",
  },
}
Om du redan levererar dina egna arbetsytefiler från ett repo kan du inaktivera skapandet av bootstrap‑filer helt:
{
  agent: {
    skipBootstrap: true,
  },
}

Konfigen som gör den till ”en assistent”

OpenClaw har som standard en bra assistentuppsättning, men du vill oftast justera:
  • persona/instruktioner i SOUL.md
  • tänkandeförval (om önskat)
  • heartbeats (när du väl litar på den)
Exempel:
{
  logging: { level: "info" },
  agent: {
    model: "anthropic/claude-opus-4-6",
    workspace: "~/.openclaw/workspace",
    thinkingDefault: "high",
    timeoutSeconds: 1800,
    // Start with 0; enable later.
    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,
    },
  },
}

Sessioner och minne

  • Sessionsfiler: ~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl
  • Sessionsmetadata (tokenanvändning, senaste rutt, etc): ~/.openclaw/agents/<agentId>/sessions/sessions.json (legacy: ~/.openclaw/sessions/sessions.json)
  • /new eller /reset startar en ny session för den chatten (konfigurerbar via resetTriggers). Om den skickas ensam, svarar agenten med en kort hej för att bekräfta återställningen.
  • /compact [instructions] komprimerar sessionskontexten och rapporterar återstående kontextbudget.

Heartbeats (proaktivt läge)

Som standard kör OpenClaw ett hjärtslag var 30:e minut med prompten: Read HEARTBEAT.md om det finns (arbetsytans sammanhang). Följ den strikt. Sluta inte eller upprepa gamla uppgifter från tidigare chattar. Om inget behöver uppmärksamhet, svara HEARTBEAT_OK. Set agents.defaults.heartbeat.every: "0m" för att inaktivera.
  • Om HEARTBEAT.md finns men i praktiken är tom (endast tomma rader och markdown‑rubriker som # Heading), hoppar OpenClaw över heartbeat‑körningen för att spara API‑anrop.
  • Om filen saknas körs heartbeat ändå och modellen avgör vad som ska göras.
  • Om agenten svarar med HEARTBEAT_OK (valfritt med kort utfyllnad; se agents.defaults.heartbeat.ackMaxChars), undertrycker OpenClaw utgående leverans för den heartbeaten.
  • Heartbeats kör fullständiga agentvarv — kortare intervall förbrukar fler tokens.
{
  agent: {
    heartbeat: { every: "30m" },
  },
}

Media in och ut

Inkommande bilagor (bilder/ljud/dokument) kan exponeras till ditt kommando via mallar:
  • {{MediaPath}} (lokal temporär filsökväg)
  • {{MediaUrl}} (pseudo‑URL)
  • {{Transcript}} (om ljudtranskribering är aktiverad)
Utgående bilagor från agenten: inkludera MEDIA:<path-or-url> på sin egen linje (inga mellanslag). Exempel:
Here’s the screenshot.
MEDIA:https://example.com/screenshot.png
OpenClaw extraherar dessa och skickar dem som media tillsammans med texten.

Driftchecklista

openclaw status          # local status (creds, sessions, queued events)
openclaw status --all    # full diagnosis (read-only, pasteable)
openclaw status --deep   # adds gateway health probes (Telegram + Discord)
openclaw health --json   # gateway health snapshot (WS)
Loggar finns under /tmp/openclaw/ (standard: openclaw-YYYY-MM-DD.log).

Nästa steg