Создание личного ассистента с OpenClaw
OpenClaw — это шлюз WhatsApp + Telegram + Discord + iMessage для агентов Pi. Плагины добавляют Mattermost. Это руководство описывает настройку "личного ассистента": один выделенный номер WhatsApp, который ведет себя как ваш постоянно работающий агент.
⚠️ Безопасность прежде всего
Вы помещаете агента в позицию для:
- выполнения команд на вашей машине (в зависимости от настройки инструментов Pi)
- чтения/записи файлов в вашем рабочем пространстве
- отправки сообщений обратно через WhatsApp/Telegram/Discord/Mattermost (плагин)
Начните консервативно:
- Всегда устанавливайте channels.whatsapp.allowFrom (никогда не запускайте открыто для всего мира на вашем личном Mac).
- Используйте выделенный номер WhatsApp для ассистента.
- Heartbeats теперь по умолчанию каждые 30 минут. Отключите до тех пор, пока не доверяете настройке, установив agents.defaults.heartbeat.every: "0m".
Предварительные требования
- Node 22+
- OpenClaw доступен в PATH (рекомендуется: глобальная установка)
- Второй номер телефона (SIM/eSIM/предоплаченный) для ассистента
npm install -g openclaw@latest
# или: pnpm add -g openclaw@latest
Из исходного кода (разработка):
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # автоустановка зависимостей UI при первом запуске
pnpm build
pnpm link --global
Настройка с двумя телефонами (рекомендуется)
Вам нужно это:
Ваш телефон (личный) Второй телефон (ассистент)
┌─────────────────┐ ┌─────────────────┐
│ Ваш WhatsApp │ ──────▶ │ WhatsApp │
│ +1-555-ВЫ │ сообщ. │ ассистента │
└─────────────────┘ │ +1-555-ASSIST │
└────────┬────────┘
│ связан через QR
▼
┌─────────────────┐
│ Ваш Mac │
│ (openclaw) │
│ Pi агент │
└─────────────────┘
Если вы свяжете свой личный WhatsApp с OpenClaw, каждое сообщение вам станет "входом агента". Это редко то, что вам нужно.
5-минутный быстрый старт
- Сопряжение WhatsApp Web (показывает QR; сканируйте телефоном ассистента):
openclaw channels login
- Запустите Gateway (оставьте работающим):
openclaw gateway --port 18789
- Поместите минимальную конфигурацию в ~/.openclaw/openclaw.json:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } }
}
Теперь напишите номеру ассистента с вашего разрешенного телефона.
Когда настройка завершится, мы автоматически откроем панель с вашим токеном gateway и выведем токенизированную ссылку. Для повторного открытия позже: openclaw dashboard.
Дайте агенту рабочее пространство (AGENTS)
OpenClaw читает операционные инструкции и "память" из своего каталога рабочего пространства.
По умолчанию OpenClaw использует ~/.openclaw/workspace как рабочее пространство агента и создаст его (плюс стартовые AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md) автоматически при настройке/первом запуске агента. BOOTSTRAP.md создается только когда рабочее пространство совершенно новое (не должен возвращаться после удаления).
Совет: рассматривайте эту папку как "память" OpenClaw и сделайте её git-репозиторием (в идеале приватным), чтобы ваши AGENTS.md + файлы памяти были сохранены. Если git установлен, совершенно новые рабочие пространства автоматически инициализируются.
openclaw setup
Полная структура рабочего пространства + руководство по резервному копированию: Рабочее пространство агента Рабочий процесс памяти: Память
Опционально: выберите другое рабочее пространство с agents.defaults.workspace (поддерживает ~).
{
agent: {
workspace: "~/.openclaw/workspace"
}
}
Если вы уже поставляете свои собственные файлы рабочего пространства из репозитория, вы можете полностью отключить создание файлов загрузки:
{
agent: {
skipBootstrap: true
}
}
Конфигурация, которая превращает его в "ассистента"
OpenClaw по умолчанию имеет хорошую настройку ассистента, но обычно вам нужно будет настроить:
- персону/инструкции в SOUL.md
- настройки мышления по умолчанию (если требуется)
- heartbeats (как только вы ему доверяете)
Пример:
{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-5",
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 (устаревший: ~/.openclaw/sessions/sessions.json)
- /new или /reset начинает новую сессию для этого чата (настраивается через resetTriggers). Если отправлено отдельно, агент отвечает коротким приветствием для подтверждения сброса.
- /compact [инструкции] уплотняет контекст сессии и сообщает оставшийся бюджет контекста.
Heartbeats (проактивный режим)
По умолчанию 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 существует, но эффективно пустой (только пустые строки и заголовки markdown вроде # Heading), OpenClaw пропускает запуск heartbeat для экономии API-вызовов.
- Если файл отсутствует, heartbeat все равно запускается, и модель решает, что делать.
- Если агент отвечает HEARTBEAT_OK (опционально с коротким дополнением; см. agents.defaults.heartbeat.ackMaxChars), OpenClaw подавляет исходящую доставку для этого heartbeat.
- Heartbeats запускают полные обороты агента — более короткие интервалы сжигают больше токенов.
{
agent: {
heartbeat: { every: "30m" }
}
}
Медиа входящие и исходящие
Входящие вложения (изображения/аудио/документы) могут быть переданы вашей команде через шаблоны:
- \{\{MediaPath\}\} (путь к локальному временному файлу)
- \{\{MediaUrl\}\} (псевдо-URL)
- \{\{Transcript\}\} (если включена транскрипция аудио)
Исходящие вложения от агента: включите MEDIA:<путь-или-url> на отдельной строке (без пробелов). Пример:
Вот скриншот.
MEDIA:/tmp/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
- Безопасность: Безопасность