Создание персонального ассистента с OpenClaw¶
OpenClaw — это шлюз WhatsApp + Telegram + Discord + iMessage для агентов Pi. Плагины добавляют Mattermost. Это руководство описывает настройку «персонального ассистента»: один выделенный номер WhatsApp, который ведёт себя как ваш постоянно включённый агент.
⚠️ Безопасность прежде всего¶
Вы помещаете агента в положение, при котором он может:
- выполнять команды на вашем компьютере (в зависимости от настройки инструментов Pi)
- читать и записывать файлы в вашем рабочем пространстве
- отправлять сообщения наружу через WhatsApp/Telegram/Discord/Mattermost (плагин)
Начинайте консервативно:
- Всегда устанавливайте
channels.whatsapp.allowFrom(никогда не запускайте «открыто в интернет» на вашем личном Mac). - Используйте выделенный номер WhatsApp для ассистента.
- Сигналы keepalive теперь по умолчанию отправляются каждые 30 минут. Отключите их, пока не начнёте доверять настройке, установив
agents.defaults.heartbeat.every: "0m".
Предварительные требования¶
- OpenClaw установлен и прошёл онбординг — см. Начало работы, если вы ещё этого не сделали
- Второй номер телефона (SIM/eSIM/предоплаченный) для ассистента
Схема с двумя телефонами (рекомендуется)¶
Вам нужно следующее:
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#000000',
'primaryBorderColor': '#000000',
'lineColor': '#000000',
'secondaryColor': '#f9f9fb',
'tertiaryColor': '#ffffff',
'clusterBkg': '#f9f9fb',
'clusterBorder': '#000000',
'nodeBorder': '#000000',
'mainBkg': '#ffffff',
'edgeLabelBackground': '#ffffff'
}
}}%%
flowchart TB
A["<b>Ваш телефон (личный)<br></b><br>Ваш WhatsApp<br>+1-555-YOU"] -- сообщение --> B["<b>Второй телефон (ассистент)<br></b><br>WA ассистента<br>+1-555-ASSIST"]
B -- связан через QR --> C["<b>Ваш Mac (openclaw)<br></b><br>Агент Pi"]
Если вы подключите ваш личный WhatsApp к OpenClaw, каждое сообщение вам станет «входом агента». Обычно это совсем не то, что нужно.
Быстрый старт за 5 минут¶
- Подключите WhatsApp Web (появится QR-код; отсканируйте его телефоном ассистента):
openclaw channels login
- Запустите Gateway (шлюз) (оставьте его работать):
openclaw gateway --port 18789
- Поместите минимальный конфиг в
~/.openclaw/openclaw.json:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Теперь отправьте сообщение на номер ассистента со своего телефона из списка разрешённых.
Когда онбординг завершится, мы автоматически откроем дашборд и выведем «чистую» (без токенов) ссылку. Если потребуется аутентификация, вставьте токен из gateway.auth.token в настройки Control UI. Чтобы открыть позже: openclaw dashboard.
Дайте агенту рабочее пространство (AGENTS)¶
OpenClaw читает операционные инструкции и «память» из каталога рабочего пространства.
По умолчанию OpenClaw использует ~/.openclaw/workspace в качестве рабочего пространства агента и автоматически создаёт его (а также стартовые AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) при настройке/первом запуске агента. BOOTSTRAP.md создаётся только когда рабочее пространство совершенно новое (оно не должно появляться снова после удаления). MEMORY.md является необязательным (не создаётся автоматически); при наличии оно загружается для обычных сеансов. Сеансы субагентов внедряют только AGENTS.md и TOOLS.md.
Совет: относитесь к этой папке как к «памяти» OpenClaw и сделайте её git-репозиторием (желательно приватным), чтобы ваши AGENTS.md и файлы памяти были резервно сохранены. Если git установлен, совершенно новые рабочие пространства автоматически инициализируются.
openclaw setup
Полная структура рабочего пространства + руководство по резервному копированию: Рабочее пространство агента
Рабочий процесс памяти: Память
Опционально: выберите другое рабочее пространство с помощью agents.defaults.workspace (поддерживает ~).
{
agent: {
workspace: "~/.openclaw/workspace",
},
}
Если вы уже поставляете собственные файлы рабочего пространства из репозитория, можно полностью отключить создание bootstrap-файлов:
{
agent: {
skipBootstrap: true,
},
}
Конфиг, который превращает его в «ассистента»¶
По умолчанию OpenClaw настроен как хороший ассистент, но обычно требуется донастройка:
- персона/инструкции в
SOUL.md - параметры рассуждений (при необходимости)
- сердцебиты (только вы доверяете)
Пример:
{
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,
},
},
}
Сеансы и память¶
- Файлы сеансов:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - Метаданные сеансов (использование токенов, последний маршрут и т. п.):
~/.openclaw/agents/<agentId>/sessions/sessions.json(legacy:~/.openclaw/sessions/sessions.json) /newили/resetначинает новый сеанс для этого чата (настраивается черезresetTriggers). Если отправлено отдельно, агент отвечает коротким приветствием для подтверждения сброса./compact [instructions]уплотняет контекст сеанса и сообщает оставшийся бюджет контекста.
Сердцебиты (проактивный)¶
По умолчанию OpenClaw запускает сигнал keepalive каждые 30 минут с подсказкой:
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.
Установите agents.defaults.heartbeat.every: "0m", чтобы отключить.
- Если
HEARTBEAT.mdсуществует, но фактически пуст (только пустые строки и заголовки Markdown вроде# Heading), OpenClaw пропускает запуск сигнала keepalive, чтобы сэкономить API-вызовы. - Если файл отсутствует, сигнал keepalive всё равно выполняется, и модель сама решает, что делать.
- Если агент отвечает
HEARTBEAT_OK(опционально с коротким заполнением; см.agents.defaults.heartbeat.ackMaxChars), OpenClaw подавляет исходящую доставку для этого сигнала keepalive. - Сигналы keepalive выполняют полные ходы агента — более короткие интервалы сжигают больше токенов.
{
agent: {
heartbeat: { every: "30m" },
},
}
Медиа на входе и выходе¶
Входящие вложения (изображения/аудио/документы) могут быть переданы вашей команде через шаблоны:
{{MediaPath}}(путь к локальному временному файлу){{MediaUrl}}(псевдо-URL){{Transcript}}(если включена транскрипция аудио)
Исходящие вложения от агента: включите MEDIA:<path-or-url> отдельной строкой (без пробелов). Пример:
Here’s the screenshot.
MEDIA:https://example.com/screenshot.png
OpenClaw извлекает их и отправляет как медиа вместе с текстом.
Операционный чек-лист¶
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)
Логи находятся в /tmp/openclaw/ (по умолчанию: openclaw-YYYY-MM-DD.log).
Дальнейшие шаги¶
- WebChat: WebChat
- Эксплуатация Gateway (шлюза): Gateway runbook
- Cron + пробуждения: Cron jobs
- Компаньон в строке меню macOS: OpenClaw macOS app
- Приложение узла для iOS: iOS app
- Приложение узла для Android: Android app
- Статус Windows: Windows (WSL2)
- Статус Linux: Linux app
- Безопасность: Security