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
- Sparuj WhatsApp Web (wyświetli kod QR; zeskanuj go telefonem asystenta):
openclaw channels login
- Uruchom Gateway (pozostaw go włączonego):
openclaw gateway --port 18789
- 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) /newlub/reseturuchamia świeżą sesję dla danego czatu (konfigurowalne przezresetTriggers). 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.mdistnieje, 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; zobaczagents.defaults.heartbeat.ackMaxChars), OpenClaw wstrzymuje dostarczenie wychodzące dla tego Heartbeat. - Domyślnie dostarczanie Heartbeat do celów typu DM
user:<id>jest dozwolone. Ustawagents.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.workspaceOnlyma wartośćtrue, lokalne ścieżki wychodząceMEDIA: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.workspaceOnlyma wartośćfalse, wychodząceMEDIA: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
- WebChat: WebChat
- Operacje Gateway: Runbook Gateway
- Cron + wybudzanie: Zadania Cron
- Towarzysz na pasku menu macOS: Aplikacja OpenClaw dla macOS
- Aplikacja węzła iOS: Aplikacja iOS
- Aplikacja węzła Android: Aplikacja Android
- Stan Windows: Windows (WSL2)
- Stan Linux: Aplikacja Linux
- Bezpieczeństwo: Bezpieczeństwo