Guides

Konfiguracja osobistego asystenta

OpenClaw to samodzielnie hostowany Gateway, który łączy Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo i inne kanały z agentami AI. Ten przewodnik opisuje konfigurację „osobistego asystenta”: dedykowany numer WhatsApp, który działa jak zawsze dostępny asystent AI.

⚠️ Najpierw bezpieczeństwo

Umieszczasz agenta w pozycji, w której może:

  • uruchamiać polecenia na Twoim komputerze (zależnie od zasad narzędzi)
  • odczytywać/zapisywać pliki w Twoim obszarze roboczym
  • wysyłać wiadomości przez WhatsApp/Telegram/Discord/Mattermost i inne wbudowane kanały

Zacznij ostrożnie:

  • Zawsze ustaw channels.whatsapp.allowFrom (nigdy nie uruchamiaj na osobistym Macu dostępu otwartego dla całego świata).
  • Użyj dedykowanego numeru WhatsApp dla asystenta.
  • Heartbeat domyślnie działa teraz co 30 minut. Wyłącz go, dopóki nie zaufasz konfiguracji, ustawiając agents.defaults.heartbeat.every: "0m".

Wymagania wstępne

  • Zainstalowany i skonfigurowany OpenClaw - zobacz Pierwsze kroki, jeśli jeszcze tego nie zrobiono
  • Drugi numer telefonu (SIM/eSIM/prepaid) dla asystenta

Konfiguracja z dwoma telefonami (zalecana)

Docelowo wygląda to tak:

flowchart TB
    A["<b>Your Phone (personal)
</b>
Your WhatsApp
+1-555-YOU"] -- message --> B["<b>Second Phone (assistant)
</b>
Assistant WA
+1-555-ASSIST"]
    B -- linked via QR --> C["<b>Your Mac (openclaw)
</b>
AI agent"]

Jeśli połączysz osobisty WhatsApp z OpenClaw, każda wiadomość do Ciebie stanie się „wejściem agenta”. Rzadko jest to pożądane.

5-minutowy szybki start

  1. Sparuj WhatsApp Web (wyświetli kod QR; zeskanuj go telefonem asystenta):
openclaw channels login
  1. Uruchom Gateway (pozostaw go włączonego):
openclaw gateway --port 18789
  1. Umieść minimalną konfigurację w ~/.openclaw/openclaw.json:
{
  gateway: { mode: "local" },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

Teraz wyślij wiadomość na numer asystenta z telefonu dodanego do listy dozwolonych.

Po zakończeniu wdrażania OpenClaw automatycznie otwiera pulpit i wypisuje czysty link (bez tokenu). Jeśli pulpit poprosi o uwierzytelnienie, wklej skonfigurowany wspólny sekret w ustawieniach Control UI. Wdrażanie domyślnie używa tokenu (gateway.auth.token), ale uwierzytelnianie hasłem też działa, jeśli przełączono gateway.auth.mode na password. Aby otworzyć ponownie później: openclaw dashboard.

Daj agentowi obszar roboczy (AGENTS)

OpenClaw odczytuje instrukcje operacyjne i „pamięć” z katalogu obszaru roboczego.

Domyślnie OpenClaw używa ~/.openclaw/workspace jako obszaru roboczego agenta i automatycznie utworzy go (wraz ze startowymi plikami AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) podczas konfiguracji lub pierwszego uruchomienia agenta. BOOTSTRAP.md jest tworzony tylko wtedy, gdy obszar roboczy jest całkowicie nowy (nie powinien wrócić po usunięciu). MEMORY.md jest opcjonalny (nie jest tworzony automatycznie); jeśli istnieje, jest ładowany w zwykłych sesjach. Sesje podagentów wstrzykują tylko AGENTS.md i TOOLS.md.

openclaw setup

Pełny układ obszaru roboczego i przewodnik tworzenia kopii zapasowych: Obszar roboczy agenta Przepływ pracy pamięci: Pamięć

Opcjonalnie: wybierz inny obszar roboczy za pomocą agents.defaults.workspace (obsługuje ~).

{
  agents: {
    defaults: {
      workspace: "~/.openclaw/workspace",
    },
  },
}

Jeśli już dostarczasz własne pliki obszaru roboczego z repozytorium, możesz całkowicie wyłączyć tworzenie plików startowych:

{
  agents: {
    defaults: {
      skipBootstrap: true,
    },
  },
}

Konfiguracja, która zmienia go w „asystenta”

OpenClaw domyślnie zapewnia dobrą konfigurację asystenta, ale zwykle warto dostroić:

  • personę/instrukcje w SOUL.md
  • domyślne ustawienia myślenia (jeśli potrzeba)
  • Heartbeats (gdy już zaufasz konfiguracji)

Przykład:

{
  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,
    },
  },
}

Sesje i pamięć

  • Pliki sesji: ~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl
  • Metadane sesji (użycie tokenów, ostatnia trasa itd.): ~/.openclaw/agents/<agentId>/sessions/sessions.json (starsza ścieżka: ~/.openclaw/sessions/sessions.json)
  • /new lub /reset uruchamia świeżą sesję dla danego czatu (konfigurowalne przez resetTriggers). Jeśli zostanie wysłane samodzielnie, OpenClaw potwierdza reset bez wywoływania modelu.
  • /compact [instructions] kompaktuje kontekst sesji i zgłasza pozostały budżet kontekstu.

Heartbeats (tryb proaktywny)

Domyślnie OpenClaw uruchamia Heartbeat co 30 minut z promptem: 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. Ustaw agents.defaults.heartbeat.every: "0m", aby wyłączyć.

  • Jeśli HEARTBEAT.md istnieje, ale jest praktycznie pusty (tylko puste wiersze i nagłówki markdown, takie jak # Heading), OpenClaw pomija uruchomienie Heartbeat, aby oszczędzać wywołania API.
  • Jeśli pliku brakuje, Heartbeat nadal działa, a model decyduje, co zrobić.
  • Jeśli agent odpowie HEARTBEAT_OK (opcjonalnie z krótkim dopełnieniem; zobacz agents.defaults.heartbeat.ackMaxChars), OpenClaw wstrzymuje dostarczenie wychodzące dla tego Heartbeat.
  • Domyślnie dostarczanie Heartbeat do celów typu DM user:<id> jest dozwolone. Ustaw agents.defaults.heartbeat.directPolicy: "block", aby wstrzymać dostarczanie do bezpośrednich celów, zachowując aktywne uruchomienia Heartbeat.
  • Heartbeats uruchamiają pełne tury agenta - krótsze interwały zużywają więcej tokenów.
{
  agent: {
    heartbeat: { every: "30m" },
  },
}

Media przychodzące i wychodzące

Załączniki przychodzące (obrazy/audio/dokumenty) można udostępnić poleceniu za pomocą szablonów:

  • {{MediaPath}} (lokalna ścieżka pliku tymczasowego)
  • {{MediaUrl}} (pseudo-URL)
  • {{Transcript}} (jeśli transkrypcja audio jest włączona)

Załączniki wychodzące od agenta: umieść MEDIA:<path-or-url> w osobnym wierszu (bez spacji). Przykład:

Here's the screenshot.
MEDIA:https://example.com/screenshot.png

OpenClaw wyodrębnia je i wysyła jako multimedia razem z tekstem.

Zachowanie ścieżek lokalnych korzysta z tego samego modelu zaufania odczytu plików co agent:

  • Jeśli tools.fs.workspaceOnly ma wartość true, lokalne ścieżki wychodzące MEDIA: pozostają ograniczone do tymczasowego katalogu głównego OpenClaw, pamięci podręcznej multimediów, ścieżek obszaru roboczego agenta i plików wygenerowanych w piaskownicy.
  • Jeśli tools.fs.workspaceOnly ma wartość false, wychodzące MEDIA: może używać lokalnych plików hosta, które agent już może odczytać.
  • Ścieżki lokalne mogą być bezwzględne, względne względem obszaru roboczego albo względne względem katalogu domowego z ~/.
  • Wysyłanie lokalnych plików hosta nadal dopuszcza tylko multimedia i bezpieczne typy dokumentów (obrazy, audio, wideo, PDF i dokumenty Office). Zwykły tekst i pliki przypominające sekrety nie są traktowane jako multimedia możliwe do wysłania.

Oznacza to, że wygenerowane obrazy/pliki spoza obszaru roboczego mogą teraz zostać wysłane, gdy Twoja polityka fs już zezwala na ich odczyt, bez ponownego otwierania drogi do eksfiltracji dowolnych załączników tekstowych z hosta.

Lista kontrolna operacji

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)

Logi znajdują się w /tmp/openclaw/ (domyślnie: openclaw-YYYY-MM-DD.log).

Następne kroki

Powiązane