Персональный ассистент на базе OpenClaw
OpenClaw — это шлюз для Pi-агентов, работающий с WhatsApp, Telegram, Discord и iMessage. Плагины добавляют Mattermost. Это руководство описывает сценарий «персональный ассистент»: выделенный номер WhatsApp, который ведёт себя как ваш агент, доступный 24/7.
⚠️ Безопасность прежде всего
Вы даёте агенту возможность:
- выполнять команды на вашей машине (в зависимости от настроек инструментов Pi)
- читать и записывать файлы в рабочем пространстве
- отправлять сообщения через WhatsApp/Telegram/Discord/Mattermost (плагин)
Начните с консервативных настроек:
- Всегда указывайте
channels.whatsapp.allowFrom(никогда не запускайте доступный всему миру сервис на личном Mac). - Используйте отдельный номер WhatsApp для ассистента.
- Heartbeat по умолчанию срабатывает каждые 30 минут. Отключите его, пока не убедитесь в надёжности настройки, задав
agents.defaults.heartbeat.every: "0m".
Предварительные требования
- OpenClaw установлен и настроен — если ещё нет, см. Начало работы
- Второй телефонный номер (SIM/eSIM/предоплатный) для ассистента
Схема с двумя телефонами (рекомендуется)
Вот что вам нужно:
flowchart TB
A["<b>Your Phone (personal)<br></b><br>Your WhatsApp<br>+1-555-YOU"] -- message --> B["<b>Second Phone (assistant)<br></b><br>Assistant WA<br>+1-555-ASSIST"]
B -- linked via QR --> C["<b>Your Mac (openclaw)<br></b><br>Pi agent"]
Если привязать к OpenClaw ваш личный WhatsApp, каждое входящее сообщение станет «вводом для агента». Обычно это не то, чего вы хотите.
5-минутный быстрый старт
- Привязка WhatsApp Web (отображает QR-код; отсканируйте телефоном ассистента):
openclaw channels login
- Запустите Gateway (оставьте работать):
openclaw gateway --port 18789
- Создайте минимальную конфигурацию в
~/.openclaw/openclaw.json:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Теперь отправьте сообщение на номер ассистента с телефона из списка разрешённых.
После завершения онбординга автоматически откроется Dashboard с чистой (без токенов) ссылкой. Если потребуется аутентификация, вставьте токен из gateway.auth.token в настройках Control UI. Чтобы открыть снова: openclaw dashboard.
Рабочее пространство агента (AGENTS)
OpenClaw читает рабочие инструкции и «память» из директории рабочего пространства.
По умолчанию используется ~/.openclaw/workspace, и OpenClaw создаст его автоматически (вместе со стартовыми файлами 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 - параметры thinking (при необходимости)
- heartbeat (когда доверяете настройке)
Пример:
{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-6",
workspace: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Начните с 0; включите позже.
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 [инструкции]сжимает контекст сессии и сообщает оставшийся бюджет контекста.
Heartbeat (проактивный режим)
По умолчанию OpenClaw запускает heartbeat каждые 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существует, но фактически пуст (только пустые строки и заголовки вроде# Heading), OpenClaw пропускает запуск heartbeat для экономии API-вызовов. - Если файл отсутствует, heartbeat всё равно запускается, и модель сама решает, что делать.
- Если агент отвечает
HEARTBEAT_OK(опционально с коротким дополнением; см.agents.defaults.heartbeat.ackMaxChars), OpenClaw подавляет исходящую доставку для этого heartbeat. - По умолчанию доставка heartbeat на DM-цели вида
user:<id>разрешена. Установитеagents.defaults.heartbeat.directPolicy: "block"для подавления доставки в DM при сохранении работающих heartbeat-запусков. - Heartbeat-ы запускают полные циклы агента — более короткие интервалы расходуют больше токенов.
{
agent: {
heartbeat: { every: "30m" },
},
}
Входящие и исходящие медиа
Входящие вложения (изображения/аудио/документы) можно передать команде через шаблоны:
{{MediaPath}}(путь к локальному временному файлу){{MediaUrl}}(псевдо-URL){{Transcript}}(если включена транскрипция аудио)
Исходящие вложения от агента: укажите MEDIA:<путь-или-url> на отдельной строке (без пробелов). Пример:
Here's the screenshot.
MEDIA:https://example.com/screenshot.png
OpenClaw извлекает такие строки и отправляет их как медиа вместе с текстом.
Чек-лист эксплуатации
openclaw status # локальный статус (учётные данные, сессии, события в очереди)
openclaw status --all # полная диагностика (только чтение, можно копировать)
openclaw status --deep # добавляет проверки состояния Gateway (Telegram + Discord)
openclaw health --json # снимок состояния Gateway (WS)
Логи хранятся в /tmp/openclaw/ (по умолчанию: openclaw-YYYY-MM-DD.log).
Дальнейшие шаги
- WebChat: WebChat
- Эксплуатация Gateway: Руководство по Gateway
- Cron и пробуждения: Cron-задачи
- Приложение для строки меню macOS: Приложение OpenClaw macOS
- Приложение-нода iOS: Приложение iOS
- Приложение-нода Android: Приложение Android
- Статус Windows: Windows (WSL2)
- Статус Linux: Приложение Linux
- Безопасность: Безопасность