FAQ
Часто задаваемые вопросы
Краткие ответы и более глубокое устранение неполадок для реальных конфигураций (локальная разработка, VPS, несколько агентов, OAuth/API-ключи, отказоустойчивое переключение моделей). Диагностику среды выполнения см. в Устранении неполадок. Полный справочник конфигурации см. в Конфигурации.
Первые 60 секунд, если что-то сломалось
-
Быстрый статус (первая проверка)
bash openclaw statusБыстрая локальная сводка: ОС + обновление, доступность gateway/службы, агенты/сеансы, конфигурация провайдера + проблемы среды выполнения (когда gateway доступен).
-
Отчет для вставки (безопасно делиться)
bash openclaw status --allДиагностика только для чтения с хвостом журнала (токены скрыты).
-
Состояние демона + порта
bash openclaw gateway statusПоказывает среду выполнения супервизора в сравнении с доступностью RPC, целевой URL проверки и какую конфигурацию, вероятно, использовала служба.
-
Глубокие проверки
bash openclaw status --deepЗапускает живую проверку состояния gateway, включая проверки каналов, когда они поддерживаются (требуется доступный gateway). См. Health.
-
Отслеживание последнего журнала
bash openclaw logs --followЕсли RPC недоступен, используйте запасной вариант:
bash tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"Файловые журналы отделены от журналов службы; см. Логирование и Устранение неполадок.
-
Запуск doctor (исправления)
bash openclaw doctorИсправляет/мигрирует конфигурацию/состояние + выполняет проверки работоспособности. См. Doctor.
-
Снимок Gateway
bash openclaw health --jsonopenclaw health --verbose # shows the target URL + config path on errorsЗапрашивает у запущенного gateway полный снимок (только WS). См. Health.
Быстрый старт и первая настройка
Вопросы и ответы по первому запуску — установка, onboarding, маршруты аутентификации, подписки, начальные сбои — находятся в FAQ по первому запуску.
Что такое OpenClaw?
Что такое OpenClaw в одном абзаце?
OpenClaw — это персональный AI-ассистент, который вы запускаете на собственных устройствах. Он отвечает в уже используемых вами мессенджерах и каналах (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat и встроенных канальных plugin, таких как QQ Bot), а также может работать с голосом + живым Canvas на поддерживаемых платформах. Gateway — это постоянно включенный контур управления; ассистент — это продукт.
Ценностное предложение
OpenClaw — это не «просто обертка для Claude». Это локальный прежде всего контур управления, который позволяет запускать способного ассистента на вашем собственном железе, доступного из уже используемых вами чат-приложений, с сеансами с состоянием, памятью и инструментами — без передачи контроля над вашими рабочими процессами размещенному SaaS.
Основное:
- Ваши устройства, ваши данные: запускайте Gateway где хотите (Mac, Linux, VPS) и храните рабочее пространство + историю сеансов локально.
- Настоящие каналы, а не веб-песочница: WhatsApp/Telegram/Slack/Discord/Signal/iMessage/и т. д., плюс мобильный голос и Canvas на поддерживаемых платформах.
- Независимость от модели: используйте Anthropic, OpenAI, MiniMax, OpenRouter и т. д. с маршрутизацией и failover для каждого агента.
- Только локальный вариант: запускайте локальные модели, чтобы все данные могли оставаться на вашем устройстве, если хотите.
- Маршрутизация нескольких агентов: отдельные агенты для канала, учетной записи или задачи, каждый со своим рабочим пространством и значениями по умолчанию.
- Открытый исходный код и возможность доработки: изучайте, расширяйте и размещайте самостоятельно без привязки к поставщику.
Документация: Gateway, Каналы, Несколько агентов, Память.
Я только что настроил это — что сделать сначала?
Хорошие первые проекты:
- Создать сайт (WordPress, Shopify или простой статический сайт).
- Прототипировать мобильное приложение (структура, экраны, план API).
- Организовать файлы и папки (очистка, именование, теги).
- Подключить Gmail и автоматизировать сводки или последующие действия.
Он может справляться с большими задачами, но лучше всего работает, когда вы делите их на этапы и используете субагентов для параллельной работы.
Каковы пять главных повседневных сценариев использования OpenClaw?
Повседневная польза обычно выглядит так:
- Личные брифинги: сводки входящих, календаря и важных для вас новостей.
- Исследование и черновики: быстрое исследование, сводки и первые черновики писем или документов.
- Напоминания и последующие действия: подсказки и чек-листы на базе Cron или Heartbeat.
- Автоматизация браузера: заполнение форм, сбор данных и повторяющиеся веб-задачи.
- Координация между устройствами: отправьте задачу с телефона, дайте Gateway выполнить ее на сервере и получите результат обратно в чате.
Может ли OpenClaw помогать с лидогенерацией, outreach, рекламой и блогами для SaaS?
Да, для исследования, квалификации и подготовки черновиков. Он может сканировать сайты, составлять короткие списки, резюмировать потенциальных клиентов и писать черновики outreach-сообщений или рекламных текстов.
Для outreach или запуска рекламы держите человека в контуре. Избегайте спама, соблюдайте местные законы и политики платформ, а также проверяйте все перед отправкой. Самый безопасный шаблон — поручить OpenClaw подготовить черновик, а вам утверждать.
Документация: Безопасность.
Какие преимущества по сравнению с Claude Code для веб-разработки?
OpenClaw — это персональный ассистент и слой координации, а не замена IDE. Используйте Claude Code или Codex для самого быстрого прямого цикла кодирования внутри репозитория. Используйте OpenClaw, когда вам нужны долговременная память, доступ с разных устройств и оркестрация инструментов.
Преимущества:
- Постоянная память + рабочее пространство между сеансами
- Доступ с нескольких платформ (WhatsApp, Telegram, TUI, WebChat)
- Оркестрация инструментов (браузер, файлы, планирование, хуки)
- Постоянно включенный Gateway (запуск на VPS, взаимодействие откуда угодно)
- Узлы для локального браузера/экрана/камеры/exec
Витрина: https://openclaw.ai/showcase
Skills и автоматизация
Как настроить Skills, не оставляя репозиторий грязным?
Используйте управляемые переопределения вместо редактирования копии в репозитории. Поместите изменения в ~/.openclaw/skills/<name>/SKILL.md (или добавьте папку через skills.load.extraDirs в ~/.openclaw/openclaw.json). Приоритет: <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → встроенные → skills.load.extraDirs, поэтому управляемые переопределения все равно имеют приоритет над встроенными Skills без изменения git. Если Skill нужно установить глобально, но показывать только некоторым агентам, храните общую копию в ~/.openclaw/skills и управляйте видимостью через agents.defaults.skills и agents.list[].skills. В репозитории должны находиться только изменения, достойные upstream, и уходить как PR.
Можно ли загрузить Skills из пользовательской папки?
Да. Добавьте дополнительные каталоги через skills.load.extraDirs в ~/.openclaw/openclaw.json (самый низкий приоритет). Приоритет по умолчанию: <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → встроенные → skills.load.extraDirs. clawhub по умолчанию устанавливает в ./skills, что OpenClaw воспринимает как <workspace>/skills в следующем сеансе. Если Skill должен быть виден только определенным агентам, сочетайте это с agents.defaults.skills или agents.list[].skills.
Как использовать разные модели или настройки для разных задач?
Сегодня поддерживаются такие шаблоны:
- Задания Cron: изолированные задания могут задавать переопределение
modelдля каждого задания. - Агенты: направляйте задачи отдельным агентам с разными моделями по умолчанию, уровнями thinking и параметрами потока.
- Переключение по требованию: используйте
/model, чтобы в любой момент переключить модель текущего сеанса.
Например, используйте одну и ту же модель с разными настройками для каждого агента:
{ agents: { list: [ { id: "coder", model: "xiaomi/mimo-v2.5-pro", thinkingDefault: "high", params: { temperature: 0.1 }, }, { id: "chat", model: "xiaomi/mimo-v2.5-pro", thinkingDefault: "off", params: { temperature: 0.8 }, }, ], },}Поместите общие значения по умолчанию для модели в agents.defaults.models["provider/model"].params, затем поместите переопределения конкретного агента в плоский agents.list[].params. Не определяйте отдельные вложенные записи agents.list[].models["provider/model"].params для той же модели; agents.list[].models предназначен для каталога моделей и переопределений среды выполнения для конкретного агента.
См. Задания Cron, Маршрутизация нескольких агентов, Конфигурация и Slash-команды.
Бот зависает во время тяжелой работы. Как вынести это отдельно?
Используйте субагентов для долгих или параллельных задач. Субагенты работают в собственном сеансе, возвращают сводку и сохраняют отзывчивость основного чата.
Попросите бота «spawn a sub-agent for this task» или используйте /subagents.
Используйте /status в чате, чтобы увидеть, что Gateway делает прямо сейчас (и занят ли он).
Совет по токенам: долгие задачи и субагенты потребляют токены. Если важна стоимость, задайте
более дешевую модель для субагентов через agents.defaults.subagents.model.
Документация: Субагенты, Фоновые задачи.
Как работают привязанные к тредам сеансы субагентов в Discord?
Используйте привязки тредов. Вы можете привязать тред Discord к субагенту или целевому сеансу, чтобы последующие сообщения в этом треде оставались в привязанном сеансе.
Базовый поток:
- Создайте через
sessions_spawnсthread: true(и при необходимостиmode: "session"для постоянных последующих сообщений). - Или привяжите вручную через
/focus <target>. - Используйте
/agents, чтобы проверить состояние привязки. - Используйте
/session idle <duration|off>и/session max-age <duration|off>, чтобы управлять автоматическим снятием фокуса. - Используйте
/unfocus, чтобы отвязать тред.
Требуемая конфигурация:
- Глобальные значения по умолчанию:
session.threadBindings.enabled,session.threadBindings.idleHours,session.threadBindings.maxAgeHours. - Переопределения Discord:
channels.discord.threadBindings.enabled,channels.discord.threadBindings.idleHours,channels.discord.threadBindings.maxAgeHours. - Автопривязка при создании:
channels.discord.threadBindings.spawnSessionsпо умолчанию равенtrue; установитеfalse, чтобы отключить создание сеансов, привязанных к тредам.
Документация: Субагенты, Discord, Справочник конфигурации, Slash-команды.
Субагент завершился, но обновление о завершении ушло не туда или вообще не было опубликовано. Что проверить?
Сначала проверьте разрешенный маршрут инициатора:
- Доставка субагента в режиме завершения предпочитает любой привязанный тред или маршрут беседы, когда он существует.
- Если источник завершения содержит только канал, OpenClaw использует запасной вариант — сохраненный маршрут сеанса инициатора (
lastChannel/lastTo/lastAccountId), чтобы прямая доставка все еще могла выполниться успешно. - Если нет ни привязанного маршрута, ни пригодного сохраненного маршрута, прямая доставка может завершиться ошибкой, а результат вместо немедленной публикации в чат попадет в доставку через очередь сеанса.
- Недействительные или устаревшие цели все еще могут принудительно привести к запасной очереди или окончательному сбою доставки.
- Если последний видимый ответ ассистента дочернего агента — точный тихий токен
NO_REPLY/no_replyили ровноANNOUNCE_SKIP, OpenClaw намеренно подавляет объявление вместо публикации устаревшего более раннего прогресса. - Вывод tool/toolResult не продвигается в текст результата дочернего агента; результат — это последний видимый ответ ассистента дочернего агента.
Отладка:
openclaw tasks show <runId-or-sessionKey>Документация: субагенты, фоновые задачи, инструменты сеанса.
Cron или напоминания не срабатывают. Что проверить?
Cron выполняется внутри процесса Gateway. Если Gateway не работает непрерывно, запланированные задания не будут выполняться.
Контрольный список:
- Убедитесь, что cron включен (
cron.enabled) иOPENCLAW_SKIP_CRONне задан. - Проверьте, что Gateway работает 24/7 (без сна/перезапусков).
- Проверьте настройки часового пояса для задания (
--tzи часовой пояс хоста).
Отладка:
openclaw cron run <jobId>openclaw cron runs --id <jobId> --limit 50Документация: задания Cron, автоматизация.
Cron сработал, но в канал ничего не отправлено. Почему?
Сначала проверьте режим доставки:
--no-deliver/delivery.mode: "none"означает, что резервная отправка раннером не ожидается.- Отсутствующая или недопустимая цель объявления (
channel/to) означает, что раннер пропустил исходящую доставку. - Сбои авторизации канала (
unauthorized,Forbidden) означают, что раннер пытался доставить сообщение, но учетные данные это заблокировали. - Тихий изолированный результат (только
NO_REPLY/no_reply) считается намеренно недоставляемым, поэтому раннер также подавляет резервную доставку из очереди.
Для изолированных заданий cron агент все еще может отправлять напрямую с помощью инструмента message,
когда доступен маршрут чата. --announce управляет только резервным путем раннера
для финального текста, который агент еще не отправил.
Отладка:
openclaw cron runs --id <jobId> --limit 50openclaw tasks show <runId-or-sessionKey>Документация: задания Cron, фоновые задачи.
Почему изолированный запуск cron переключил модели или повторился один раз?
Обычно это путь переключения live-модели, а не дублирование планирования.
Изолированный cron может сохранять передачу runtime-модели и повторять попытку, когда активный
запуск выбрасывает LiveSessionModelSwitchError. Повтор сохраняет переключенного
провайдера/модель, а если переключение принесло новое переопределение профиля авторизации, cron
также сохраняет его перед повторной попыткой.
Связанные правила выбора:
- Переопределение модели хуком Gmail имеет приоритет, когда применимо.
- Затем
modelотдельного задания. - Затем любое сохраненное переопределение модели cron-сеанса.
- Затем обычный выбор модели агента/по умолчанию.
Цикл повторов ограничен. После начальной попытки плюс 2 повторов переключения cron прерывается, а не зацикливается навсегда.
Отладка:
openclaw cron runs --id <jobId> --limit 50openclaw tasks show <runId-or-sessionKey>Документация: задания Cron, CLI cron.
Как установить Skills в Linux?
Используйте встроенные команды openclaw skills или поместите Skills в рабочую область. Интерфейс Skills для macOS недоступен в Linux.
Просматривайте Skills на https://clawhub.ai.
openclaw skills search "calendar"openclaw skills search --limit 20openclaw skills install @owner/<skill-slug>openclaw skills install @owner/<skill-slug> --version <version>openclaw skills install @owner/<skill-slug> --forceopenclaw skills install @owner/<skill-slug> --globalopenclaw skills update --allopenclaw skills update --all --globalopenclaw skills list --eligibleopenclaw skills checkВстроенная команда openclaw skills install по умолчанию записывает в каталог
skills/ активной рабочей области. Добавьте --global, чтобы установить в общий управляемый
каталог Skills для всех локальных агентов. Устанавливайте отдельный CLI clawhub
только если хотите публиковать или синхронизировать собственные Skills. Используйте
agents.defaults.skills или agents.list[].skills, если хотите сузить
набор агентов, которым видны общие Skills.
Может ли OpenClaw выполнять задачи по расписанию или постоянно в фоне?
Да. Используйте планировщик Gateway:
- Задания Cron для запланированных или повторяющихся задач (сохраняются между перезапусками).
- Heartbeat для периодических проверок «основного сеанса».
- Изолированные задания для автономных агентов, которые публикуют сводки или доставляют сообщения в чаты.
Документация: задания Cron, автоматизация, Heartbeat.
Могу ли я запускать Skills только для Apple macOS из Linux?
Не напрямую. Skills для macOS ограничены metadata.openclaw.os и необходимыми бинарными файлами, а Skills появляются в системном промпте только когда они допустимы на хосте Gateway. В Linux Skills только для darwin (например, apple-notes, apple-reminders, things-mac) не загрузятся, если вы не переопределите ограничение.
Поддерживаются три схемы:
Вариант A - запустить Gateway на Mac (проще всего). Запустите Gateway там, где существуют бинарные файлы macOS, затем подключитесь из Linux в удаленном режиме или через Tailscale. Skills загружаются нормально, потому что хост Gateway работает на macOS.
Вариант B - использовать узел macOS (без SSH).
Запустите Gateway в Linux, сопрягите узел macOS (приложение в строке меню) и установите Команды запуска Node в "Всегда спрашивать" или "Всегда разрешать" на Mac. OpenClaw может считать Skills только для macOS допустимыми, когда необходимые бинарные файлы существуют на узле. Агент запускает эти Skills через инструмент nodes. Если выбрать "Всегда спрашивать", одобрение "Всегда разрешать" в запросе добавит эту команду в список разрешенных.
Вариант C - проксировать бинарные файлы macOS через SSH (для продвинутых). Оставьте Gateway в Linux, но сделайте так, чтобы необходимые CLI-бинарники разрешались в SSH-обертки, которые запускаются на Mac. Затем переопределите Skill, чтобы разрешить Linux и сохранить его допустимым.
-
Создайте SSH-обертку для бинарного файла (пример:
memoдля Apple Notes):bash #!/usr/bin/env bashset -euo pipefailexec ssh -T user@mac-host /opt/homebrew/bin/memo "$@" -
Поместите обертку в
PATHна хосте Linux (например,~/bin/memo). -
Переопределите метаданные Skill (в рабочей области или
~/.openclaw/skills), чтобы разрешить Linux:markdown ---name: apple-notesdescription: Manage Apple Notes via the memo CLI on macOS.metadata: { "openclaw": { "os": ["darwin", "linux"], "requires": { "bins": ["memo"] } } }--- -
Запустите новый сеанс, чтобы снимок Skills обновился.
Есть ли у вас интеграция с Notion или HeyGen?
На сегодня встроенной нет.
Варианты:
- Пользовательский Skill / Plugin: лучший вариант для надежного доступа к API (у Notion/HeyGen есть API).
- Автоматизация браузера: работает без кода, но медленнее и более хрупкая.
Если вы хотите хранить контекст по каждому клиенту (рабочие процессы агентства), простой шаблон таков:
- Одна страница Notion на клиента (контекст + предпочтения + активная работа).
- Попросите агента получить эту страницу в начале сеанса.
Если нужна нативная интеграция, откройте запрос функции или создайте Skill, работающий с этими API.
Установка Skills:
openclaw skills install @owner/<skill-slug>openclaw skills update --allВстроенные установки попадают в каталог skills/ активной рабочей области. Для общих Skills для всех локальных агентов используйте openclaw skills install @owner/<skill-slug> --global (или разместите их вручную в ~/.openclaw/skills/<name>/SKILL.md). Если общий установленный Skill должны видеть только некоторые агенты, настройте agents.defaults.skills или agents.list[].skills. Некоторые Skills ожидают бинарные файлы, установленные через Homebrew; в Linux это означает Linuxbrew (см. запись FAQ по Homebrew для Linux выше). См. Skills, конфигурацию Skills и ClawHub.
Как использовать мой уже авторизованный Chrome с OpenClaw?
Используйте встроенный профиль браузера user, который подключается через Chrome DevTools MCP:
openclaw browser --browser-profile user tabsopenclaw browser --browser-profile user snapshotЕсли нужно пользовательское имя, создайте явный профиль MCP:
openclaw browser create-profile --name chrome-live --driver existing-sessionopenclaw browser --browser-profile chrome-live tabsЭтот путь может использовать локальный браузер хоста или подключенный браузерный узел. Если Gateway работает в другом месте, либо запустите хост узла на машине с браузером, либо используйте удаленный CDP.
Текущие ограничения для existing-session / user:
- действия управляются
ref, а не CSS-селекторами - для загрузок требуются
ref/inputRef, сейчас поддерживается один файл за раз responsebody, экспорт PDF, перехват скачиваний и пакетные действия все еще требуют управляемого браузера или сырого профиля CDP
Песочница и память
Есть ли отдельный документ о песочнице?
Да. См. песочницу. Для настройки, специфичной для Docker (полный Gateway в Docker или образы песочницы), см. Docker.
Docker кажется ограниченным - как включить все возможности?
Образ по умолчанию в первую очередь ориентирован на безопасность и запускается от пользователя node, поэтому он не
включает системные пакеты, Homebrew или встроенные браузеры. Для более полной настройки:
- Сохраняйте
/home/nodeс помощьюOPENCLAW_HOME_VOLUME, чтобы кэши сохранялись. - Встраивайте системные зависимости в образ с помощью
OPENCLAW_IMAGE_APT_PACKAGES. - Установите браузеры Playwright через встроенный CLI:
node /app/node_modules/playwright-core/cli.js install chromium - Задайте
PLAYWRIGHT_BROWSERS_PATHи убедитесь, что путь сохраняется.
Могу ли я оставить личные DM приватными, но сделать группы публичными/изолированными в песочнице с одним агентом?
Да - если ваш приватный трафик — это DM, а публичный трафик — группы.
Используйте agents.defaults.sandbox.mode: "non-main", чтобы групповые/канальные сеансы (неосновные ключи) выполнялись в настроенном бэкенде песочницы, а основной DM-сеанс оставался на хосте. Docker — бэкенд по умолчанию, если не выбрать другой. Затем ограничьте инструменты, доступные в изолированных сеансах, через tools.sandbox.tools.
Пошаговая настройка + пример конфигурации: группы: личные DM + публичные группы
Справочник ключевой конфигурации: конфигурация Gateway
Как привязать папку хоста в песочницу?
Задайте agents.defaults.sandbox.docker.binds как ["host:path:mode"] (например, "/home/user/src:/src:ro"). Глобальные привязки и привязки отдельного агента объединяются; привязки отдельного агента игнорируются при scope: "shared". Используйте :ro для всего чувствительного и помните, что привязки обходят стены файловой системы песочницы.
OpenClaw проверяет источники привязок как по нормализованному пути, так и по каноническому пути, разрешенному через самый глубокий существующий предок. Это означает, что выходы через родительские symlink все равно закрываются отказом, даже если последний сегмент пути еще не существует, и проверки разрешенного корня все равно применяются после разрешения symlink.
См. песочницу и песочница, политика инструментов и Elevated для примеров и заметок по безопасности.
Как работает память?
Память OpenClaw — это просто Markdown-файлы в рабочей области агента:
- Ежедневные заметки в
memory/YYYY-MM-DD.md - Курируемые долгосрочные заметки в
MEMORY.md(только основные/приватные сеансы)
OpenClaw также выполняет тихий сброс памяти перед Compaction, чтобы напомнить модели записать долговечные заметки перед автоматическим Compaction. Это выполняется только когда рабочая область доступна для записи (песочницы только для чтения пропускают это). См. память.
Memory постоянно забывает информацию. Как сделать так, чтобы она сохранялась?
Попросите бота записать факт в память. Долгосрочные заметки должны быть в MEMORY.md,
краткосрочный контекст — в memory/YYYY-MM-DD.md.
Мы всё ещё улучшаем эту область. Полезно напоминать модели сохранять воспоминания; она поймёт, что делать. Если она продолжает забывать, проверьте, что Gateway использует одно и то же рабочее пространство при каждом запуске.
Документация: Memory, Рабочее пространство агента.
Сохраняется ли память навсегда? Какие есть ограничения?
Файлы памяти находятся на диске и сохраняются, пока вы их не удалите. Ограничение — это ваше хранилище, а не модель. Контекст сеанса всё равно ограничен окном контекста модели, поэтому длинные разговоры могут подвергаться Compaction или обрезаться. Поэтому существует поиск по памяти — он возвращает в контекст только релевантные части.
Требует ли семантический поиск по памяти ключ OpenAI API?
Только если вы используете эмбеддинги OpenAI. Codex OAuth покрывает чат/завершения и
не предоставляет доступ к эмбеддингам, поэтому вход через Codex (OAuth или
вход через Codex CLI) не поможет для семантического поиска по памяти. Эмбеддингам OpenAI
всё равно нужен настоящий ключ API (OPENAI_API_KEY или models.providers.openai.apiKey).
Если вы явно не задаёте провайдера, OpenClaw использует эмбеддинги OpenAI. Устаревшие
конфигурации, где всё ещё указано memorySearch.provider = "auto", тоже разрешаются в OpenAI.
Если ключ OpenAI API недоступен, семантический поиск по памяти остаётся недоступным,
пока вы не настроите ключ или явно не выберете другого провайдера.
Если вы предпочитаете оставаться локально, задайте memorySearch.provider = "local" (и при необходимости
memorySearch.fallback = "none"). Если вам нужны эмбеддинги Gemini, задайте
memorySearch.provider = "gemini" и укажите GEMINI_API_KEY (или
memorySearch.remote.apiKey). Мы поддерживаем модели эмбеддингов OpenAI, OpenAI-совместимые, Gemini,
Voyage, Mistral, Bedrock, Ollama, LM Studio, GitHub Copilot, DeepInfra или локальные —
подробности настройки см. в Memory.
Где данные находятся на диске
Все ли данные, используемые с OpenClaw, сохраняются локально?
Нет — состояние OpenClaw локально, но внешние сервисы всё равно видят то, что вы им отправляете.
- Локально по умолчанию: сеансы, файлы памяти, конфигурация и рабочее пространство находятся на хосте Gateway
(
~/.openclaw+ каталог вашего рабочего пространства). - Удалённо по необходимости: сообщения, которые вы отправляете провайдерам моделей (Anthropic/OpenAI/и т. д.), уходят в их API, а чат-платформы (WhatsApp/Telegram/Slack/и т. д.) хранят данные сообщений на своих серверах.
- Вы контролируете объём данных: использование локальных моделей оставляет промпты на вашей машине, но трафик каналов всё равно проходит через серверы соответствующего канала.
См. также: Рабочее пространство агента, Memory.
Где OpenClaw хранит свои данные?
Всё находится в $OPENCLAW_STATE_DIR (по умолчанию: ~/.openclaw):
| Путь | Назначение |
|---|---|
$OPENCLAW_STATE_DIR/openclaw.json |
Основная конфигурация (JSON5) |
$OPENCLAW_STATE_DIR/credentials/oauth.json |
Импорт устаревшего OAuth (копируется в профили аутентификации при первом использовании) |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.json |
Профили аутентификации (OAuth, ключи API и необязательные keyRef/tokenRef) |
$OPENCLAW_STATE_DIR/secrets.json |
Необязательная файловая секретная полезная нагрузка для провайдеров SecretRef file |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.json |
Файл устаревшей совместимости (статические записи api_key очищены) |
$OPENCLAW_STATE_DIR/credentials/ |
Состояние провайдера (например, whatsapp/<accountId>/creds.json) |
$OPENCLAW_STATE_DIR/agents/ |
Состояние по агентам (agentDir + сеансы) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/ |
История разговоров и состояние (для каждого агента) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.json |
Метаданные сеансов (для каждого агента) |
Устаревший путь для одного агента: ~/.openclaw/agent/* (мигрируется с помощью openclaw doctor).
Ваше рабочее пространство (AGENTS.md, файлы памяти, Skills и т. д.) отделено и настраивается через agents.defaults.workspace (по умолчанию: ~/.openclaw/workspace).
Где должны находиться AGENTS.md / SOUL.md / USER.md / MEMORY.md?
Эти файлы находятся в рабочем пространстве агента, а не в ~/.openclaw.
- Рабочее пространство (для каждого агента):
AGENTS.md,SOUL.md,IDENTITY.md,USER.md,MEMORY.md,memory/YYYY-MM-DD.md, необязательныйHEARTBEAT.md. Корневойmemory.mdв нижнем регистре — только вход для исправления устаревшего формата;openclaw doctor --fixможет объединить его сMEMORY.md, когда существуют оба файла. - Каталог состояния (
~/.openclaw): конфигурация, состояние каналов/провайдеров, профили аутентификации, сеансы, журналы и общие Skills (~/.openclaw/skills).
Рабочее пространство по умолчанию — ~/.openclaw/workspace, настраивается через:
{ agents: { defaults: { workspace: "~/.openclaw/workspace" } },}Если бот «забывает» после перезапуска, убедитесь, что Gateway использует одно и то же рабочее пространство при каждом запуске (и помните: удалённый режим использует рабочее пространство хоста Gateway, а не вашего локального ноутбука).
Совет: если вам нужно устойчивое поведение или предпочтение, попросите бота записать это в AGENTS.md или MEMORY.md, а не полагайтесь на историю чата.
Можно ли увеличить SOUL.md?
Да. SOUL.md — один из файлов начальной загрузки рабочего пространства, внедряемых в
контекст агента. Лимит внедрения по умолчанию для одного файла — 20000 символов,
а общий бюджет начальной загрузки по всем файлам — 60000 символов.
Измените общие значения по умолчанию в конфигурации OpenClaw:
{ agents: { defaults: { bootstrapMaxChars: 50000, bootstrapTotalMaxChars: 300000, }, },}Или переопределите для одного агента:
{ agents: { list: [ { id: "main", bootstrapMaxChars: 50000, bootstrapTotalMaxChars: 300000, }, ], },}Используйте /context, чтобы проверить исходные и внедрённые размеры, а также было ли усечение.
Держите SOUL.md сфокусированным на голосе, позиции и личности; рабочие правила
помещайте в AGENTS.md, а устойчивые факты — в память.
См. Контекст и Конфигурация агента.
Рекомендуемая стратегия резервного копирования
Поместите своё рабочее пространство агента в приватный git-репозиторий и создавайте резервные копии где-нибудь приватно (например, в приватном GitHub). Это сохранит память + файлы AGENTS/SOUL/USER и позволит позже восстановить «разум» ассистента.
Не коммитьте ничего из ~/.openclaw (учётные данные, сеансы, токены или зашифрованные секретные полезные нагрузки).
Если вам нужно полное восстановление, отдельно создайте резервные копии и рабочего пространства, и каталога состояния
(см. вопрос о миграции выше).
Документация: Рабочее пространство агента.
Как полностью удалить OpenClaw?
См. отдельное руководство: Удаление.
Могут ли агенты работать за пределами рабочего пространства?
Да. Рабочее пространство — это cwd по умолчанию и якорь памяти, а не жёсткая песочница.
Относительные пути разрешаются внутри рабочего пространства, но абсолютные пути могут обращаться к другим
расположениям на хосте, если песочница не включена. Если нужна изоляция, используйте
agents.defaults.sandbox или настройки песочницы для конкретного агента. Если вы
хотите, чтобы репозиторий был рабочим каталогом по умолчанию, укажите в workspace этого агента
корень репозитория. Репозиторий OpenClaw — это просто исходный код; держите
рабочее пространство отдельно, если только вы намеренно не хотите, чтобы агент работал внутри него.
Пример (репозиторий как cwd по умолчанию):
{ agents: { defaults: { workspace: "~/Projects/my-repo", }, },}Удалённый режим: где находится хранилище сеансов?
Состоянием сеансов владеет хост Gateway. Если вы в удалённом режиме, нужное вам хранилище сеансов находится на удалённой машине, а не на вашем локальном ноутбуке. См. Управление сеансами.
Основы конфигурации
Какой формат у конфигурации? Где она находится?
OpenClaw читает необязательную конфигурацию JSON5 из $OPENCLAW_CONFIG_PATH (по умолчанию: ~/.openclaw/openclaw.json):
$OPENCLAW_CONFIG_PATHЕсли файл отсутствует, используются достаточно безопасные значения по умолчанию (включая рабочее пространство по умолчанию ~/.openclaw/workspace).
Я задал gateway.bind: "lan" (или "tailnet"), и теперь ничего не слушает / UI говорит, что нет авторизации
Привязки не к loopback требуют действительный путь аутентификации Gateway. На практике это означает:
- аутентификация по общему секрету: токен или пароль
gateway.auth.mode: "trusted-proxy"за правильно настроенным identity-aware обратным прокси
{ gateway: { bind: "lan", auth: { mode: "token", token: "replace-me", }, },}Примечания:
gateway.remote.token/.passwordсами по себе не включают локальную аутентификацию Gateway.- Локальные пути вызовов могут использовать
gateway.remote.*как fallback только когдаgateway.auth.*не задан. - Для аутентификации по паролю вместо этого задайте
gateway.auth.mode: "password"плюсgateway.auth.password(илиOPENCLAW_GATEWAY_PASSWORD). - Если
gateway.auth.token/gateway.auth.passwordявно настроен через SecretRef и не разрешается, разрешение завершается закрыто (без маскировки удалённым fallback). - Настройки Control UI с общим секретом аутентифицируются через
connect.params.auth.tokenилиconnect.params.auth.password(хранятся в настройках приложения/UI). Режимы с идентификацией, такие как Tailscale Serve илиtrusted-proxy, вместо этого используют заголовки запроса. Не помещайте общие секреты в URL. - При
gateway.auth.mode: "trusted-proxy"обратные прокси same-host loopback требуют явногоgateway.auth.trustedProxy.allowLoopback = trueи записи loopback вgateway.trustedProxies.
Почему теперь на localhost нужен токен?
OpenClaw по умолчанию принудительно включает аутентификацию Gateway, включая loopback. В обычном пути по умолчанию это означает аутентификацию по токену: если явный путь аутентификации не настроен, запуск Gateway разрешается в режим токена и генерирует токен только на время этого запуска, поэтому локальные WS-клиенты должны аутентифицироваться. Явно настройте gateway.auth.token, gateway.auth.password, OPENCLAW_GATEWAY_TOKEN или OPENCLAW_GATEWAY_PASSWORD, когда клиентам нужен стабильный секрет между перезапусками. Это блокирует другим локальным процессам вызов Gateway.
Если вы предпочитаете другой путь аутентификации, можно явно выбрать режим пароля (или, для identity-aware обратных прокси, trusted-proxy). Если вам действительно нужен открытый loopback, явно задайте gateway.auth.mode: "none" в конфиге. Doctor может сгенерировать токен для вас в любой момент: openclaw doctor --generate-gateway-token.
Нужно ли перезапускать после изменения конфига?
Gateway отслеживает конфиг и поддерживает hot-reload:
gateway.reload.mode: "hybrid"(по умолчанию): безопасные изменения применяются без перезапуска, критические требуют перезапускаhot,restart,offтакже поддерживаются
Как отключить забавные слоганы CLI?
Задайте cli.banner.taglineMode в конфиге:
{ cli: { banner: { taglineMode: "off", // random | default | off }, },}off: скрывает текст слогана, но оставляет строку заголовка/версии баннера.default: каждый раз используетAll your chats, one OpenClaw..random: чередующиеся забавные/сезонные слоганы (поведение по умолчанию).- Если вы вообще не хотите показывать баннер, задайте переменную окружения
OPENCLAW_HIDE_BANNER=1.
Как включить веб-поиск (и веб-загрузку)?
web_fetch работает без API-ключа. web_search зависит от выбранного
провайдера:
- API-backed провайдеры, такие как Brave, Exa, Firecrawl, Gemini, Kimi, MiniMax Search, Perplexity и Tavily, требуют стандартной настройки API-ключа.
- Grok может повторно использовать xAI OAuth из аутентификации модели или перейти к
XAI_API_KEY/ конфигу веб-поиска Plugin. - Ollama Web Search не требует ключа, но использует настроенный хост Ollama и требует
ollama signin. - DuckDuckGo не требует ключа, но это неофициальная интеграция на основе HTML.
- SearXNG не требует ключа/может быть самостоятельно размещен; настройте
SEARXNG_BASE_URLилиplugins.entries.searxng.config.webSearch.baseUrl.
Рекомендуется: запустите openclaw configure --section web и выберите провайдера.
Альтернативы через переменные окружения:
- Brave:
BRAVE_API_KEY - Exa:
EXA_API_KEY - Firecrawl:
FIRECRAWL_API_KEY - Gemini:
GEMINI_API_KEY - Grok: xAI OAuth,
XAI_API_KEY - Kimi:
KIMI_API_KEYилиMOONSHOT_API_KEY - MiniMax Search:
MINIMAX_CODE_PLAN_KEY,MINIMAX_CODING_API_KEYилиMINIMAX_API_KEY - Perplexity:
PERPLEXITY_API_KEYилиOPENROUTER_API_KEY - SearXNG:
SEARXNG_BASE_URL - Tavily:
TAVILY_API_KEY
{ plugins: { entries: { brave: { config: { webSearch: { apiKey: "BRAVE_API_KEY_HERE", }, }, }, }, }, tools: { web: { search: { enabled: true, provider: "brave", maxResults: 5, }, fetch: { enabled: true, provider: "firecrawl", // optional; omit for auto-detect }, }, },}Конфиг веб-поиска для конкретного провайдера теперь находится в plugins.entries.<plugin>.config.webSearch.*.
Устаревшие пути провайдера tools.web.search.* пока загружаются для совместимости, но их не следует использовать для новых конфигов.
Конфиг fallback для веб-загрузки Firecrawl находится в plugins.entries.firecrawl.config.webFetch.*.
Примечания:
- Если вы используете списки разрешений, добавьте
web_search/web_fetch/x_searchилиgroup:web. web_fetchвключен по умолчанию (если явно не отключен).- Если
tools.web.fetch.providerопущен, OpenClaw автоматически обнаруживает первого готового fallback-провайдера для загрузки по доступным учетным данным. Официальный Plugin Firecrawl предоставляет этот fallback. - Демоны читают переменные окружения из
~/.openclaw/.env(или из окружения сервиса).
Документация: Веб-инструменты.
config.apply стер мой конфиг. Как восстановиться и избежать этого?
config.apply заменяет весь конфиг. Если отправить частичный объект, все
остальное будет удалено.
Текущий OpenClaw защищает от многих случайных затираний:
- Операции записи конфига, принадлежащие OpenClaw, проверяют полный конфиг после изменения перед записью.
- Недопустимые или разрушительные операции записи, принадлежащие OpenClaw, отклоняются и сохраняются как
openclaw.json.rejected.*. - Если прямое редактирование ломает запуск или hot reload, Gateway аварийно закрывается или пропускает перезагрузку; он не перезаписывает
openclaw.json. openclaw doctor --fixотвечает за исправление и может восстановить последнюю рабочую версию, сохранив отклоненный файл какopenclaw.json.clobbered.*.
Восстановление:
- Проверьте
openclaw logs --followна наличиеInvalid config at,Config write rejected:илиconfig reload skipped (invalid config). - Проверьте самый новый
openclaw.json.clobbered.*илиopenclaw.json.rejected.*рядом с активным конфигом. - Запустите
openclaw config validateиopenclaw doctor --fix. - Верните только нужные ключи через
openclaw config setилиconfig.patch. - Если у вас нет последней рабочей версии или отклоненной полезной нагрузки, восстановите из резервной копии или заново запустите
openclaw doctorи перенастройте каналы/модели. - Если это было неожиданно, создайте баг-репорт и приложите последний известный конфиг или любую резервную копию.
- Локальный кодовый агент часто может восстановить рабочий конфиг по логам или истории.
Как избежать:
- Используйте
openclaw config setдля небольших изменений. - Используйте
openclaw configureдля интерактивного редактирования. - Сначала используйте
config.schema.lookup, если не уверены в точном пути или форме поля; он возвращает неглубокий узел схемы плюс краткие описания непосредственных дочерних элементов для детализации. - Используйте
config.patchдля частичного редактирования через RPC; оставьтеconfig.applyтолько для полной замены конфига. - Если вы используете агентский инструмент
gatewayиз запуска агента, он все равно будет отклонять записи вtools.exec.ask/tools.exec.security(включая устаревшие алиасыtools.bash.*, которые нормализуются к тем же защищенным путям exec).
Документация: Конфиг, Настройка, Устранение неполадок Gateway, Doctor.
Как запустить центральный Gateway со специализированными воркерами на разных устройствах?
Распространенный шаблон: один Gateway (например, Raspberry Pi) плюс узлы и агенты:
- Gateway (центральный): отвечает за каналы (Signal/WhatsApp), маршрутизацию и сессии.
- Узлы (устройства): Mac/iOS/Android подключаются как периферия и предоставляют локальные инструменты (
system.run,canvas,camera). - Агенты (воркеры): отдельные «мозги»/рабочие пространства для специальных ролей (например, «Hetzner ops», «Personal data»).
- Субагенты: запускают фоновую работу из основного агента, когда нужен параллелизм.
- TUI: подключайтесь к Gateway и переключайте агентов/сессии.
Документация: Узлы, Удаленный доступ, Маршрутизация с несколькими агентами, Субагенты, TUI.
Может ли браузер OpenClaw работать в headless-режиме?
Да. Это опция конфига:
{ browser: { headless: true }, agents: { defaults: { sandbox: { browser: { headless: true } }, }, },}По умолчанию false (с графическим интерфейсом). Headless с большей вероятностью вызывает антибот-проверки на некоторых сайтах. См. Браузер.
Headless использует тот же движок Chromium и работает для большинства видов автоматизации (формы, клики, скрейпинг, входы). Основные отличия:
- Нет видимого окна браузера (используйте скриншоты, если нужна визуальная проверка).
- Некоторые сайты строже относятся к автоматизации в headless-режиме (CAPTCHA, антибот). Например, X/Twitter часто блокирует headless-сессии.
Как использовать Brave для управления браузером?
Задайте browser.executablePath равным бинарному файлу Brave (или любого браузера на основе Chromium) и перезапустите Gateway.
См. полные примеры конфига в Браузер.
Удаленные Gateway и узлы
Как команды распространяются между Telegram, gateway и узлами?
Сообщения Telegram обрабатываются gateway. Gateway запускает агента и только затем вызывает узлы через Gateway WebSocket, когда нужен инструмент узла:
Telegram → Gateway → Agent → node.* → Node → Gateway → Telegram
Узлы не видят входящий трафик провайдера; они получают только RPC-вызовы узлов.
Как мой агент может получить доступ к моему компьютеру, если Gateway размещен удаленно?
Короткий ответ: сопрягите компьютер как узел. Gateway работает в другом месте, но может
вызывать инструменты node.* (экран, камера, система) на вашей локальной машине через Gateway WebSocket.
Типичная настройка:
-
Запустите Gateway на постоянно включенном хосте (VPS/домашний сервер).
-
Добавьте хост Gateway и ваш компьютер в одну tailnet.
-
Убедитесь, что Gateway WS доступен (привязка к tailnet или SSH-туннель).
-
Откройте приложение macOS локально и подключитесь в режиме Remote over SSH (или напрямую через tailnet), чтобы оно могло зарегистрироваться как узел.
-
Одобрите узел на Gateway:
bash openclaw devices listopenclaw devices approve <requestId>
Отдельный TCP-мост не требуется; узлы подключаются через Gateway WebSocket.
Напоминание о безопасности: сопряжение узла macOS разрешает system.run на этой машине. Сопрягайте
только устройства, которым доверяете, и изучите Безопасность.
Документация: Узлы, Протокол Gateway, Удаленный режим macOS, Безопасность.
Tailscale подключен, но я не получаю ответов. Что теперь?
Проверьте базовые вещи:
- Gateway запущен:
openclaw gateway status - Состояние Gateway:
openclaw status - Состояние канала:
openclaw channels status
Затем проверьте аутентификацию и маршрутизацию:
- Если вы используете Tailscale Serve, убедитесь, что
gateway.auth.allowTailscaleзадан корректно. - Если вы подключаетесь через SSH-туннель, подтвердите, что локальный туннель поднят и указывает на правильный порт.
- Подтвердите, что ваши списки разрешений (DM или группа) включают вашу учетную запись.
Документация: Tailscale, Удаленный доступ, Каналы.
Могут ли два экземпляра OpenClaw общаться друг с другом (локальный + VPS)?
Да. Встроенного моста «бот-бот» нет, но это можно надежно настроить несколькими способами:
Самый простой: используйте обычный чат-канал, к которому имеют доступ оба бота (Telegram/Slack/WhatsApp). Пусть бот A отправит сообщение боту B, а затем бот B ответит как обычно.
CLI-мост (универсальный): запустите скрипт, который вызывает другой Gateway с
openclaw agent --message ... --deliver, нацеливаясь на чат, где слушает другой бот.
Если один бот находится на удаленном VPS, направьте ваш CLI на этот удаленный Gateway
через SSH/Tailscale (см. Удаленный доступ).
Пример шаблона (запускайте с машины, которая может достучаться до целевого Gateway):
openclaw agent --message "Hello from local bot" --deliver --channel telegram --reply-to <chat-id>Совет: добавьте защитное ограничение, чтобы два бота не зацикливались бесконечно (только по упоминанию, списки разрешений каналов или правило «не отвечать на сообщения ботов»).
Документация: Удаленный доступ, CLI агента, Отправка агентом.
Нужны ли отдельные VPS для нескольких агентов?
Нет. Один Gateway может размещать несколько агентов, каждый со своим рабочим пространством, настройками моделей по умолчанию и маршрутизацией. Это обычная настройка, и она намного дешевле и проще, чем запускать отдельный VPS для каждого агента.
Используйте отдельные VPS только тогда, когда нужна жесткая изоляция (границы безопасности) или сильно разные конфиги, которыми вы не хотите делиться. В остальных случаях оставьте один Gateway и используйте нескольких агентов или субагентов.
Есть ли преимущество в использовании узла на моем личном ноутбуке вместо SSH с VPS?
Да - узлы являются основным способом доступа к вашему ноутбуку с удаленного Gateway, и они дают больше, чем доступ к оболочке. Gateway работает на macOS/Linux (Windows через WSL2) и легковесен (небольшого VPS или устройства класса Raspberry Pi достаточно; 4 ГБ RAM более чем хватает), поэтому распространенная схема - постоянно включенный хост плюс ваш ноутбук как узел.
- Входящий SSH не требуется. Узлы подключаются наружу к WebSocket Gateway и используют сопряжение устройств.
- Более безопасные элементы управления выполнением.
system.runограничивается allowlist/подтверждениями узла на этом ноутбуке. - Больше инструментов устройства. Узлы предоставляют
canvas,cameraиscreenв дополнение кsystem.run. - Локальная автоматизация браузера. Оставьте Gateway на VPS, но запускайте Chrome локально через хост узла на ноутбуке или подключайтесь к локальному Chrome на хосте через Chrome MCP.
SSH подходит для разового доступа к оболочке, но узлы проще для постоянных рабочих процессов агента и автоматизации устройств.
Запускают ли узлы сервис Gateway?
Нет. На одном хосте должен работать только один gateway, если вы намеренно не запускаете изолированные профили (см. Несколько gateway). Узлы - это периферийные устройства, которые подключаются к gateway (узлы iOS/Android или "режим узла" macOS в приложении меню). Для headless-хостов узлов и управления через CLI см. CLI хоста Node.
Полный перезапуск требуется для изменений gateway, discovery и поверхности размещенных plugin.
Есть ли способ применить конфигурацию через API / RPC?
Да.
config.schema.lookup: проверить одно поддерево конфигурации с его неглубоким узлом схемы, совпавшей UI-подсказкой и сводками непосредственных дочерних элементов перед записьюconfig.get: получить текущий снимок + hashconfig.patch: безопасное частичное обновление (предпочтительно для большинства правок через RPC); выполняет горячую перезагрузку, когда возможно, и перезапускает, когда требуетсяconfig.apply: проверить + заменить всю конфигурацию; выполняет горячую перезагрузку, когда возможно, и перезапускает, когда требуется- Агентский runtime-инструмент
gatewayпо-прежнему отказывается перезаписыватьtools.exec.ask/tools.exec.security; устаревшие алиасыtools.bash.*нормализуются в те же защищенные пути exec
Минимальная разумная конфигурация для первой установки
{ agents: { defaults: { workspace: "~/.openclaw/workspace" } }, channels: { whatsapp: { allowFrom: ["+15555550123"] } },}Это задает ваш workspace и ограничивает, кто может запускать бота.
Как настроить Tailscale на VPS и подключиться с моего Mac?
Минимальные шаги:
-
Установите + войдите на VPS
bash curl -fsSL https://tailscale.com/install.sh | shsudo tailscale up -
Установите + войдите на вашем Mac
- Используйте приложение Tailscale и войдите в тот же tailnet.
-
Включите MagicDNS (рекомендуется)
- В консоли администратора Tailscale включите MagicDNS, чтобы у VPS было стабильное имя.
-
Используйте hostname tailnet
- SSH:
ssh user@your-vps.tailnet-xxxx.ts.net - Gateway WS:
ws://your-vps.tailnet-xxxx.ts.net:18789
- SSH:
Если вам нужен Control UI без SSH, используйте Tailscale Serve на VPS:
openclaw gateway --tailscale serveЭто оставляет gateway привязанным к loopback и открывает HTTPS через Tailscale. См. Tailscale.
Как подключить узел Mac к удаленному Gateway (Tailscale Serve)?
Serve открывает Control UI Gateway + WS. Узлы подключаются через тот же endpoint Gateway WS.
Рекомендуемая настройка:
-
Убедитесь, что VPS + Mac находятся в одном tailnet.
-
Используйте приложение macOS в удаленном режиме (цель SSH может быть hostname tailnet). Приложение создаст туннель к порту Gateway и подключится как узел.
-
Одобрите узел на gateway:
bash openclaw devices listopenclaw devices approve <requestId>
Документация: Протокол Gateway, Обнаружение, Удаленный режим macOS.
Стоит ли устанавливать на второй ноутбук или просто добавить узел?
Если на втором ноутбуке вам нужны только локальные инструменты (screen/camera/exec), добавьте его как узел. Так у вас останется один Gateway и не будет дублированной конфигурации. Локальные инструменты узла сейчас доступны только для macOS, но мы планируем расширить их на другие ОС.
Устанавливайте второй Gateway только если вам нужна жесткая изоляция или два полностью отдельных бота.
Документация: Узлы, CLI узлов, Несколько gateway.
Переменные окружения и загрузка .env
Как OpenClaw загружает переменные окружения?
OpenClaw читает переменные окружения из родительского процесса (оболочка, launchd/systemd, CI и т. д.) и дополнительно загружает:
.envиз текущего рабочего каталога- глобальный резервный
.envиз~/.openclaw/.env(то есть$OPENCLAW_STATE_DIR/.env)
Ни один файл .env не переопределяет существующие переменные окружения.
Переменные учетных данных провайдеров являются исключением для workspace .env: ключи вроде
GEMINI_API_KEY, XAI_API_KEY или MISTRAL_API_KEY игнорируются из workspace
.env и должны находиться в окружении процесса, ~/.openclaw/.env или env конфигурации.
Вы также можете задать встроенные переменные окружения в конфигурации (применяются только если отсутствуют в окружении процесса):
{ env: { OPENROUTER_API_KEY: "sk-or-...", vars: { GROQ_API_KEY: "gsk-..." }, },}Полный порядок приоритетов и источники см. в /environment.
Я запустил Gateway через сервис, и мои переменные окружения исчезли. Что теперь?
Два распространенных исправления:
- Поместите отсутствующие ключи в
~/.openclaw/.env, чтобы они подхватывались даже когда сервис не наследует окружение вашей оболочки. - Включите импорт оболочки (удобство по явному выбору):
{ env: { shellEnv: { enabled: true, timeoutMs: 15000, }, },}Это запускает вашу login shell и импортирует только отсутствующие ожидаемые ключи (никогда не переопределяет). Эквиваленты переменных окружения:
OPENCLAW_LOAD_SHELL_ENV=1, OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000.
Я задал COPILOT_GITHUB_TOKEN, но статус моделей показывает "Импорт shell env: выключен". Почему?
openclaw models status сообщает, включен ли импорт shell env. "Импорт shell env: выключен"
не означает, что ваши переменные окружения отсутствуют - это лишь означает, что OpenClaw не будет автоматически загружать
вашу login shell.
Если Gateway запущен как сервис (launchd/systemd), он не наследует окружение вашей оболочки. Исправьте одним из способов:
-
Поместите токен в
~/.openclaw/.env:Code COPILOT_GITHUB_TOKEN=... -
Или включите импорт оболочки (
env.shellEnv.enabled: true). -
Или добавьте его в блок
envвашей конфигурации (применяется только если отсутствует).
Затем перезапустите gateway и проверьте снова:
openclaw models statusТокены Copilot читаются из COPILOT_GITHUB_TOKEN (также GH_TOKEN / GITHUB_TOKEN).
См. /concepts/model-providers и /environment.
Сессии и несколько чатов
Как начать новый разговор?
Отправьте /new или /reset отдельным сообщением. См. Управление сессиями.
Сбрасываются ли сессии автоматически, если я никогда не отправляю /new?
Сессии могут истекать после session.idleMinutes, но это отключено по умолчанию (по умолчанию 0).
Задайте положительное значение, чтобы включить истечение по бездействию. Когда это включено, следующее
сообщение после периода бездействия запускает новый id сессии для этого ключа чата.
Это не удаляет транскрипты - просто начинается новая сессия.
{ session: { idleMinutes: 240, },}Есть ли способ сделать команду экземпляров OpenClaw (один CEO и много агентов)?
Да, через маршрутизацию нескольких агентов и субагентов. Вы можете создать одного координатора и несколько рабочих агентов со своими workspace и моделями.
При этом это лучше рассматривать как интересный эксперимент. Он потребляет много токенов и часто менее эффективен, чем один бот с отдельными сессиями. Типичная модель, которую мы предполагаем, - один бот, с которым вы общаетесь, и разные сессии для параллельной работы. Этот бот также может запускать субагентов при необходимости.
Документация: Маршрутизация нескольких агентов, Субагенты, CLI агентов.
Почему контекст был обрезан посреди задачи? Как это предотвратить?
Контекст сессии ограничен окном модели. Длинные чаты, большие выводы инструментов или множество файлов могут вызвать Compaction или обрезку.
Что помогает:
- Попросите бота суммировать текущее состояние и записать его в файл.
- Используйте
/compactперед длинными задачами и/newпри смене темы. - Держите важный контекст в workspace и попросите бота прочитать его обратно.
- Используйте субагентов для долгой или параллельной работы, чтобы основной чат оставался меньше.
- Выберите модель с большим окном контекста, если это часто происходит.
Как полностью сбросить OpenClaw, но оставить его установленным?
Используйте команду сброса:
openclaw resetПолный неинтерактивный сброс:
openclaw reset --scope full --yes --non-interactiveЗатем снова запустите настройку:
openclaw onboard --install-daemonПримечания:
- Onboarding также предлагает Сброс, если видит существующую конфигурацию. См. Onboarding (CLI).
- Если вы использовали профили (
--profile/OPENCLAW_PROFILE), сбросьте каждый каталог состояния (по умолчанию это~/.openclaw-<profile>). - Сброс для разработки:
openclaw gateway --dev --reset(только для разработки; стирает dev-конфигурацию + учетные данные + сессии + workspace).
Я получаю ошибки "context too large" - как выполнить сброс или Compaction?
Используйте один из вариантов:
-
Compaction (сохраняет разговор, но суммирует более старые ходы):
Code /compactили
/compact <instructions>, чтобы направить сводку. -
Сброс (новый ID сессии для того же ключа чата):
Code /new/reset
Если это продолжает происходить:
- Включите или настройте обрезку сессии (
agents.defaults.contextPruning), чтобы сокращать старый вывод инструментов. - Используйте модель с большим окном контекста.
Документация: Compaction, Обрезка сессии, Управление сессиями.
Почему я вижу "LLM request rejected: messages.content.tool_use.input field required"?
Это ошибка валидации провайдера: модель выдала блок tool_use без обязательного
input. Обычно это означает, что история сессии устарела или повреждена (часто после длинных тредов
или изменения инструмента/схемы).
Исправление: начните новую сессию с /new (отдельным сообщением).
Почему я получаю сообщения Heartbeat каждые 30 минут?
Heartbeat по умолчанию выполняются каждые 30m (1h при использовании OAuth-аутентификации). Настройте или отключите их:
{ agents: { defaults: { heartbeat: { every: "2h", // or "0m" to disable }, }, },}Если HEARTBEAT.md существует, но фактически пуст (только пустые строки,
комментарии Markdown/HTML, заголовки Markdown вроде # Heading, маркеры блоков кода
или пустые заготовки чек-листов), OpenClaw пропускает запуск Heartbeat, чтобы сэкономить вызовы API.
Если файл отсутствует, Heartbeat всё равно запускается, а модель решает, что делать.
Переопределения для отдельных агентов используют agents.list[].heartbeat. Документация: Heartbeat.
Нужно ли добавлять «бот-аккаунт» в группу WhatsApp?
Нет. OpenClaw работает от имени вашей собственной учётной записи, поэтому если вы состоите в группе, OpenClaw может её видеть.
По умолчанию ответы в группах заблокированы, пока вы не разрешите отправителей (groupPolicy: "allowlist").
Если вы хотите, чтобы только вы могли запускать ответы в группе:
{ channels: { whatsapp: { groupPolicy: "allowlist", groupAllowFrom: ["+15551234567"], }, },}Как получить JID группы WhatsApp?
Вариант 1 (самый быстрый): отслеживайте логи и отправьте тестовое сообщение в группе:
openclaw logs --follow --jsonНайдите chatId (или from), заканчивающийся на @g.us, например:
1234567890-1234567890@g.us.
Вариант 2 (если уже настроено/добавлено в allowlist): вывести список групп из конфигурации:
openclaw directory groups list --channel whatsappПочему OpenClaw не отвечает в группе?
Две распространённые причины:
- Фильтрация по упоминанию включена (по умолчанию). Нужно @упомянуть бота (или совпасть с
mentionPatterns). - Вы настроили
channels.whatsapp.groupsбез"*", и группа не добавлена в allowlist.
См. Группы и Групповые сообщения.
Группы/треды разделяют контекст с личными сообщениями?
Личные чаты по умолчанию сворачиваются в основную сессию. У групп/каналов собственные ключи сессий, а темы Telegram / треды Discord являются отдельными сессиями. См. Группы и Групповые сообщения.
Сколько рабочих пространств и агентов можно создать?
Жёстких ограничений нет. Десятки (даже сотни) допустимы, но следите за:
- Ростом диска: сессии и транскрипты находятся в
~/.openclaw/agents/<agentId>/sessions/. - Стоимостью токенов: больше агентов означает больше одновременного использования моделей.
- Операционной нагрузкой: профили авторизации, рабочие пространства и маршрутизация каналов для каждого агента.
Советы:
- Держите одно активное рабочее пространство на агента (
agents.defaults.workspace). - Очищайте старые сессии (удаляйте JSONL или записи хранилища), если диск растёт.
- Используйте
openclaw doctor, чтобы находить лишние рабочие пространства и несовпадения профилей.
Можно ли запускать несколько ботов или чатов одновременно (Slack), и как это настроить?
Да. Используйте маршрутизацию нескольких агентов, чтобы запускать несколько изолированных агентов и маршрутизировать входящие сообщения по каналу/учётной записи/собеседнику. Slack поддерживается как канал и может быть привязан к конкретным агентам.
Доступ к браузеру мощный, но это не «делать всё, что может человек» — антибот-защита, CAPTCHA и MFA всё ещё могут блокировать автоматизацию. Для наиболее надёжного управления браузером используйте локальный Chrome MCP на хосте или CDP на машине, где фактически запущен браузер.
Рекомендуемая настройка:
- Постоянно работающий хост Gateway (VPS/Mac mini).
- Один агент на роль (привязки).
- Канал(ы) Slack, привязанные к этим агентам.
- Локальный браузер через Chrome MCP или узел при необходимости.
Документация: Маршрутизация нескольких агентов, Slack, Браузер, Узлы.
Модели, отказоустойчивость и профили авторизации
Вопросы и ответы о моделях — значения по умолчанию, выбор, псевдонимы, переключение, отказоустойчивость, профили авторизации — находятся в FAQ по моделям.
Gateway: порты, «уже запущен» и удалённый режим
Какой порт использует Gateway?
gateway.port управляет единым мультиплексированным портом для WebSocket + HTTP (Control UI, хуки и т. д.).
Приоритет:
--port > OPENCLAW_GATEWAY_PORT > gateway.port > default 18789Почему openclaw gateway status показывает "Runtime: running", но "Connectivity probe: failed"?
Потому что "running" — это представление супервизора (launchd/systemd/schtasks). Проверка подключения — это фактическое подключение CLI к WebSocket Gateway.
Используйте openclaw gateway status и доверяйте этим строкам:
Probe target:(URL, который фактически использовала проверка)Listening:(что фактически привязано к порту)Last gateway error:(частая первопричина, когда процесс жив, но порт не слушает)
Почему openclaw gateway status показывает разные "Config (cli)" и "Config (service)"?
Вы редактируете один файл конфигурации, тогда как сервис запущен с другим (часто это несовпадение --profile / OPENCLAW_STATE_DIR).
Исправление:
openclaw gateway install --forceЗапустите это из того же --profile / окружения, которое должен использовать сервис.
Что означает "другой экземпляр gateway уже слушает порт"?
OpenClaw обеспечивает блокировку runtime, сразу привязывая WebSocket-слушатель при запуске (по умолчанию ws://127.0.0.1:18789). Если привязка завершается ошибкой EADDRINUSE, он выбрасывает GatewayLockError, указывая, что другой экземпляр уже слушает порт.
Исправление: остановите другой экземпляр, освободите порт или запустите с openclaw gateway --port <port>.
Как запустить OpenClaw в удаленном режиме (клиент подключается к Gateway в другом месте)?
Задайте gateway.mode: "remote" и укажите удаленный WebSocket URL, при необходимости с удаленными учетными данными на основе общего секрета:
{ gateway: { mode: "remote", remote: { url: "ws://gateway.tailnet:18789", token: "your-token", password: "your-password", }, },}Примечания:
openclaw gatewayзапускается только когдаgateway.modeравенlocal(или если передан флаг переопределения).- Приложение macOS отслеживает файл конфигурации и переключает режимы на лету при изменении этих значений.
gateway.remote.token/.password— это только клиентские удаленные учетные данные; сами по себе они не включают аутентификацию локального gateway.
Control UI сообщает "unauthorized" (или постоянно переподключается). Что делать?
Путь аутентификации вашего gateway и метод аутентификации UI не совпадают.
Факты (из кода):
- Control UI хранит токен в
sessionStorageдля текущей сессии вкладки браузера и выбранного URL gateway, поэтому обновления той же вкладки продолжают работать без восстановления долговременного сохранения токена в localStorage. - При
AUTH_TOKEN_MISMATCHдоверенные клиенты могут выполнить одну ограниченную повторную попытку с кэшированным токеном устройства, когда gateway возвращает подсказки для повтора (canRetryWithDeviceToken=true,recommendedNextStep=retry_with_device_token). - Эта повторная попытка с кэшированным токеном теперь повторно использует кэшированные одобренные области доступа, сохраненные вместе с токеном устройства. Вызывающие стороны с явным
deviceToken/ явнымиscopesпо-прежнему сохраняют свой запрошенный набор областей доступа вместо наследования кэшированных областей. - Вне этого пути повтора приоритет аутентификации подключения таков: сначала явный общий токен/пароль, затем явный
deviceToken, затем сохраненный токен устройства, затем bootstrap-токен. - Встроенный bootstrap с кодом настройки предназначен только для узлов. После одобрения он возвращает токен устройства узла с
scopes: []и не возвращает переданный токен оператора.
Исправление:
- Самое быстрое:
openclaw dashboard(печатает и копирует URL панели управления, пытается открыть; показывает подсказку SSH, если среда headless). - Если у вас еще нет токена:
openclaw doctor --generate-gateway-token. - Если удаленно, сначала создайте туннель:
ssh -N -L 18789:127.0.0.1:18789 user@host, затем откройтеhttp://127.0.0.1:18789/. - Режим общего секрета: задайте
gateway.auth.token/OPENCLAW_GATEWAY_TOKENилиgateway.auth.password/OPENCLAW_GATEWAY_PASSWORD, затем вставьте совпадающий секрет в настройках Control UI. - Режим Tailscale Serve: убедитесь, что
gateway.auth.allowTailscaleвключен и вы открываете URL Serve, а не сырой loopback/tailnet URL, который обходит заголовки идентификации Tailscale. - Режим доверенного прокси: убедитесь, что вы заходите через настроенный identity-aware прокси, а не по сырому URL gateway. Same-host loopback прокси также требуют
gateway.auth.trustedProxy.allowLoopback = true. - Если несоответствие сохраняется после одной повторной попытки, перевыпустите/повторно одобрите связанный токен устройства:
openclaw devices listopenclaw devices rotate --device <id> --role operator
- Если этот вызов rotate сообщает, что он был отклонен, проверьте две вещи:
- сессии связанных устройств могут перевыпускать только свое собственное устройство, если у них также нет
operator.admin - явные значения
--scopeне могут превышать текущие operator scopes вызывающей стороны
- сессии связанных устройств могут перевыпускать только свое собственное устройство, если у них также нет
- Все еще не работает? Запустите
openclaw status --allи следуйте Устранению неполадок. Подробности об аутентификации см. в Dashboard.
Я задал gateway.bind tailnet, но он не может привязаться и ничего не слушает
Привязка tailnet выбирает IP Tailscale из сетевых интерфейсов (100.64.0.0/10). Если машина не подключена к Tailscale (или интерфейс отключен), привязываться не к чему.
Исправление:
- Запустите Tailscale на этом хосте (чтобы у него был адрес 100.x), или
- Переключитесь на
gateway.bind: "loopback"/"lan".
Примечание: tailnet задается явно. auto предпочитает loopback; используйте gateway.bind: "tailnet", когда нужна привязка только к tailnet.
Можно ли запустить несколько Gateways на одном хосте?
Обычно нет — один Gateway может обслуживать несколько каналов сообщений и агентов. Используйте несколько Gateways только когда нужна избыточность (например: rescue bot) или жесткая изоляция.
Да, но нужно изолировать:
OPENCLAW_CONFIG_PATH(конфигурация для каждого экземпляра)OPENCLAW_STATE_DIR(состояние для каждого экземпляра)agents.defaults.workspace(изоляция рабочей области)gateway.port(уникальные порты)
Быстрая настройка (рекомендуется):
- Используйте
openclaw --profile <name> ...для каждого экземпляра (автоматически создает~/.openclaw-<name>). - Задайте уникальный
gateway.portв конфигурации каждого профиля (или передайте--portдля ручных запусков). - Установите сервис для профиля:
openclaw --profile <name> gateway install.
Профили также добавляют суффикс к именам сервисов (ai.openclaw.<profile>; legacy com.openclaw.*, openclaw-gateway-<profile>.service, OpenClaw Gateway (<profile>)).
Полное руководство: Несколько gateways.
Что означает "invalid handshake" / код 1008?
Gateway — это WebSocket-сервер, и он ожидает, что самым первым сообщением
будет кадр connect. Если он получает что-либо другое, он закрывает соединение
с кодом 1008 (нарушение политики).
Распространенные причины:
- Вы открыли HTTP URL в браузере (
http://...) вместо WS-клиента. - Вы использовали неправильный порт или путь.
- Прокси или туннель удалил заголовки аутентификации или отправил запрос не для Gateway.
Быстрые исправления:
- Используйте WS URL:
ws://<host>:18789(илиwss://..., если HTTPS). - Не открывайте WS-порт в обычной вкладке браузера.
- Если аутентификация включена, включите токен/пароль в кадр
connect.
Если вы используете CLI или TUI, URL должен выглядеть так:
openclaw tui --url ws://<host>:18789 --token <token>Подробности протокола: Протокол Gateway.
Логирование и отладка
Где находятся логи?
Файловые логи (структурированные):
/tmp/openclaw/openclaw-YYYY-MM-DD.logВы можете задать стабильный путь через logging.file. Уровень файлового журнала управляется logging.level. Подробность вывода в консоль управляется --verbose и logging.consoleLevel.
Самый быстрый просмотр журнала:
openclaw logs --followЖурналы службы/супервизора (когда Gateway работает через launchd/systemd):
- stdout macOS launchd:
~/Library/Logs/openclaw/gateway.log(профили используютgateway-<profile>.log; stderr подавляется) - Linux:
journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager - Windows:
schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST
Подробнее см. в разделе Устранение неполадок.
Как запустить/остановить/перезапустить службу Gateway?
Используйте вспомогательные команды Gateway:
openclaw gateway statusopenclaw gateway restartЕсли вы запускаете Gateway вручную, openclaw gateway --force может освободить порт. См. Gateway.
Я закрыл терминал в Windows — как перезапустить OpenClaw?
Есть три режима установки Windows:
1) Локальная настройка Windows Hub: нативное приложение управляет локальным Gateway в WSL, принадлежащим приложению.
Откройте OpenClaw Companion из меню «Пуск» или трея, затем используйте Настройка Gateway или вкладку «Подключения».
2) Ручной Gateway WSL2: Gateway работает внутри Linux.
Откройте PowerShell, войдите в WSL, затем перезапустите:
wslopenclaw gateway statusopenclaw gateway restartЕсли вы никогда не устанавливали службу, запустите ее на переднем плане:
openclaw gateway run3) Нативные Windows CLI/Gateway: Gateway работает напрямую в Windows.
Откройте PowerShell и выполните:
openclaw gateway statusopenclaw gateway restartЕсли вы запускаете его вручную (без службы), используйте:
openclaw gateway runДокументация: Windows, регламент службы Gateway.
Gateway запущен, но ответы не приходят. Что проверить?
Начните с быстрой проверки состояния:
openclaw statusopenclaw models statusopenclaw channels statusopenclaw logs --followЧастые причины:
- Авторизация модели не загружена на узле Gateway (проверьте
models status). - Сопряжение канала или список разрешений блокирует ответы (проверьте конфигурацию канала и журналы).
- WebChat/Dashboard открыт без правильного токена.
Если вы подключены удаленно, убедитесь, что туннель/соединение Tailscale активно и WebSocket Gateway доступен.
Документация: Каналы, Устранение неполадок, Удаленный доступ.
"Отключено от gateway: причина не указана" — что делать?
Обычно это означает, что UI потерял соединение WebSocket. Проверьте:
- Запущен ли Gateway?
openclaw gateway status - Исправен ли Gateway?
openclaw status - Есть ли у UI правильный токен?
openclaw dashboard - Если подключение удаленное, активна ли ссылка туннеля/Tailscale?
Затем просмотрите журналы:
openclaw logs --followДокументация: Dashboard, Удаленный доступ, Устранение неполадок.
Telegram setMyCommands завершается ошибкой. Что проверить?
Начните с журналов и состояния канала:
openclaw channels statusopenclaw channels logs --channel telegramЗатем сопоставьте ошибку:
BOT_COMMANDS_TOO_MUCH: в меню Telegram слишком много пунктов. OpenClaw уже сокращает список до лимита Telegram и повторяет попытку с меньшим количеством команд, но некоторые пункты меню все равно нужно удалить. Сократите команды плагинов/Skills/пользовательские команды или отключитеchannels.telegram.commands.native, если меню вам не нужно.TypeError: fetch failed,Network request for 'setMyCommands' failed!или похожие сетевые ошибки: если вы используете VPS или находитесь за прокси, убедитесь, что исходящий HTTPS разрешен и DNS работает дляapi.telegram.org.
Если Gateway удаленный, убедитесь, что вы смотрите журналы на узле Gateway.
Документация: Telegram, Устранение неполадок каналов.
TUI не показывает вывод. Что проверить?
Сначала убедитесь, что Gateway доступен и агент может запускаться:
openclaw statusopenclaw models statusopenclaw logs --followВ TUI используйте /status, чтобы увидеть текущее состояние. Если вы ожидаете ответы в чат-канале,
убедитесь, что доставка включена (/deliver on).
Документация: TUI, слеш-команды.
Как полностью остановить, а затем запустить Gateway?
Если вы установили службу:
openclaw gateway stopopenclaw gateway startЭто останавливает/запускает службу под супервизором (launchd в macOS, systemd в Linux). Используйте это, когда Gateway работает в фоне как демон.
Если вы запускаете его на переднем плане, остановите с помощью Ctrl-C, затем:
openclaw gateway runДокументация: регламент службы Gateway.
Простыми словами: openclaw gateway restart и openclaw gateway
openclaw gateway restart: перезапускает фоновую службу (launchd/systemd).openclaw gateway: запускает Gateway на переднем плане для этого сеанса терминала.
Если вы установили службу, используйте команды Gateway. Используйте openclaw gateway, когда
нужен разовый запуск на переднем плане.
Самый быстрый способ получить больше деталей при сбое
Запустите Gateway с --verbose, чтобы получить более подробный вывод в консоль. Затем проверьте файл журнала на ошибки авторизации каналов, маршрутизации моделей и RPC.
Медиа и вложения
Мой skill создал изображение/PDF, но ничего не было отправлено
Исходящие вложения от агента должны использовать структурированные поля медиа, такие как media, mediaUrl, path или filePath. См. Настройка ассистента OpenClaw и Отправка агентом.
Отправка через CLI:
openclaw message send --target +15555550123 --message "Here you go" --media /path/to/file.pngТакже проверьте:
- Целевой канал поддерживает исходящие медиа и не заблокирован списками разрешений.
- Файл укладывается в ограничения провайдера по размеру (изображения уменьшаются максимум до 2048px).
tools.fs.workspaceOnly=trueограничивает отправки по локальным путям рабочей областью, temp/media-store и файлами, проверенными песочницей.tools.fs.workspaceOnly=falseпозволяет структурированным отправкам локальных медиа использовать локальные файлы хоста, которые агент уже может читать, но только для медиа и безопасных типов документов (изображения, аудио, видео, PDF, документы Office и проверенные текстовые документы, такие как Markdown/MD, TXT, JSON, YAML и YML). Это не сканер секретов: доступный агентуsecret.txtилиconfig.jsonможет быть вложен, если расширение и проверка содержимого совпадают. Держите чувствительные файлы вне путей, доступных агенту, или оставьтеtools.fs.workspaceOnly=trueдля более строгих отправок по локальным путям.
См. Изображения.
Безопасность и контроль доступа
Безопасно ли открывать OpenClaw для входящих личных сообщений?
Считайте входящие личные сообщения недоверенным вводом. Значения по умолчанию рассчитаны на снижение риска:
- Поведение по умолчанию на каналах с поддержкой личных сообщений — сопряжение:
- Неизвестные отправители получают код сопряжения; бот не обрабатывает их сообщение.
- Подтвердите с помощью:
openclaw pairing approve --channel <channel> [--account <id>] <code> - Ожидающие запросы ограничены 3 на канал; проверьте
openclaw pairing list --channel <channel> [--account <id>], если код не пришел.
- Публичное открытие личных сообщений требует явного включения (
dmPolicy: "open"и список разрешений"*").
Запустите openclaw doctor, чтобы выявить рискованные политики личных сообщений.
Prompt injection — проблема только для публичных ботов?
Нет. Prompt injection связана с недоверенным содержимым, а не только с тем, кто может писать боту в личные сообщения. Если ваш ассистент читает внешний контент (web search/fetch, страницы браузера, электронные письма, документы, вложения, вставленные журналы), такой контент может включать инструкции, которые пытаются перехватить управление моделью. Это может произойти даже если вы единственный отправитель.
Самый большой риск возникает, когда включены инструменты: модель можно обманом заставить раскрыть контекст или вызвать инструменты от вашего имени. Снизьте радиус поражения так:
- используйте агента-«читателя» только для чтения или без инструментов, чтобы резюмировать недоверенный контент
- держите
web_search/web_fetch/browserвыключенными для агентов с включенными инструментами - также считайте декодированный текст файлов/документов недоверенным: OpenResponses
input_fileи извлечение из медиа-вложений оборачивают извлеченный текст явными маркерами границы внешнего содержимого вместо передачи сырого текста файла - используйте песочницы и строгие списки разрешенных инструментов
Подробности: Безопасность.
OpenClaw менее безопасен из-за TypeScript/Node вместо Rust/WASM?
Язык и среда выполнения важны, но для персонального агента это не основной риск. Практические риски OpenClaw — это доступность Gateway, кто может писать боту, prompt injection, область действия инструментов, работа с учетными данными, доступ браузера, доступ exec и доверие к сторонним skill или плагинам.
Rust и WASM могут обеспечивать более сильную изоляцию для некоторых классов кода, но они не решают prompt injection, плохие списки разрешений, публичную доступность Gateway, слишком широкие инструменты или профиль браузера, который уже вошел в чувствительные аккаунты. Считайте это основными средствами контроля:
- держите Gateway приватным или с аутентификацией
- используйте сопряжение и списки разрешений для личных сообщений и групп
- запрещайте или помещайте в песочницу рискованные инструменты для недоверенного ввода
- устанавливайте только доверенные плагины и skills
- запускайте
openclaw security audit --deepпосле изменений конфигурации
Подробности: Безопасность, Песочница.
Я видел сообщения об открытых экземплярах OpenClaw. Что проверить?
Сначала проверьте свое фактическое развертывание:
openclaw security audit --deepopenclaw gateway statusБолее безопасная базовая конфигурация:
- Gateway привязан к
loopbackили доступен только через аутентифицированный приватный доступ, например tailnet, SSH-туннель, аутентификацию по токену/паролю или корректно настроенный доверенный прокси - личные сообщения в режиме
pairingилиallowlist - группы внесены в список разрешений и требуют упоминания, если не все участники доверенные
- инструменты высокого риска (
exec,browser,gateway,cron) запрещены или строго ограничены для агентов, читающих недоверенное содержимое - песочница включена там, где выполнению инструментов нужен меньший радиус поражения
Публичные привязки без аутентификации, открытые личные сообщения/группы с инструментами и открытое управление браузером — это проблемы, которые нужно исправить в первую очередь. Подробности: Контрольный список аудита безопасности.
Безопасно ли устанавливать skills ClawHub и сторонние плагины?
Относитесь к сторонним skills и плагинам как к коду, которому вы решаете доверять.
Страницы skills ClawHub показывают состояние сканирования перед установкой, но сканирование не является
полноценной границей безопасности. OpenClaw не запускает встроенную локальную
блокировку опасного кода во время установки или обновления плагинов и skills; используйте
управляемую оператором security.installPolicy для локальных решений разрешить/заблокировать.
Более безопасный подход:
- предпочитайте доверенных авторов и закрепленные версии
- читайте skill или плагин перед включением
- держите списки разрешений для плагинов и skills узкими
- запускайте workflows с недоверенным вводом в песочнице с минимальным набором инструментов
- избегайте предоставления стороннему коду широкого доступа к файловой системе, exec, браузеру или секретам
Подробнее: Skills, Plugins, Безопасность.
Должен ли у моего бота быть собственный email, аккаунт GitHub или номер телефона?
Да, для большинства настроек. Изоляция бота с помощью отдельных аккаунтов и номеров телефона снижает радиус поражения, если что-то пойдет не так. Это также упрощает ротацию учетных данных или отзыв доступа без влияния на ваши личные аккаунты.
Начните с малого. Предоставляйте доступ только к тем инструментам и аккаунтам, которые действительно нужны, и расширяйте его позже, если потребуется.
Документация: Безопасность, Сопряжение.
Можно ли дать ему автономный доступ к моим текстовым сообщениям и безопасно ли это?
Мы не рекомендуем полную автономию над вашими личными сообщениями. Самый безопасный шаблон:
- Держите личные сообщения в режиме сопряжения или в строгом списке разрешенных.
- Используйте отдельный номер или аккаунт, если хотите, чтобы он отправлял сообщения от вашего имени.
- Пусть он подготавливает черновик, а затем подтверждайте перед отправкой.
Если хотите поэкспериментировать, делайте это на выделенном аккаунте и держите его изолированным. См. Безопасность.
Можно ли использовать более дешевые модели для задач личного ассистента?
Да, если агент работает только как чат и входные данные являются доверенными. Младшие уровни более уязвимы к перехвату инструкций, поэтому избегайте их для агентов с включенными инструментами или при чтении недоверенного содержимого. Если вам необходимо использовать меньшую модель, жестко ограничьте инструменты и запускайте ее внутри песочницы. См. Безопасность.
Я запустил /start в Telegram, но не получил код сопряжения
Коды сопряжения отправляются только, когда неизвестный отправитель пишет боту и
включено dmPolicy: "pairing". Сам по себе /start не создает код.
Проверьте ожидающие запросы:
openclaw pairing list telegramЕсли нужен немедленный доступ, добавьте id отправителя в список разрешенных или задайте dmPolicy: "open"
для этого аккаунта.
WhatsApp: будет ли он писать моим контактам? Как работает сопряжение?
Нет. Политика личных сообщений WhatsApp по умолчанию — сопряжение. Неизвестные отправители получают только код сопряжения, а их сообщение не обрабатывается. OpenClaw отвечает только в чатах, сообщения из которых он получает, или на явные отправки, которые запускаете вы.
Подтвердите сопряжение с помощью:
openclaw pairing approve whatsapp <code>Список ожидающих запросов:
openclaw pairing list whatsappЗапрос номера телефона в мастере настройки: он используется, чтобы настроить ваш список разрешенных/владельца, чтобы ваши собственные личные сообщения были разрешены. Он не используется для автоматической отправки. Если вы запускаете это на своем личном номере WhatsApp, используйте этот номер и включите channels.whatsapp.selfChatMode.
Команды чата, прерывание задач и «он не останавливается»
Как скрыть внутренние системные сообщения в чате?
Большинство внутренних сообщений или сообщений инструментов появляются только когда для этого сеанса включены verbose, trace или reasoning.
Исправьте это в чате, где вы их видите:
/verbose off/trace off/reasoning offЕсли шум все еще остается, проверьте настройки сеанса в Control UI и установите verbose
в inherit. Также убедитесь, что вы не используете профиль бота, где в конфигурации verboseDefault
задано значение on.
Документация: Thinking и verbose, Безопасность.
Как остановить/отменить выполняющуюся задачу?
Отправьте любое из этих сообщений как отдельное сообщение (без косой черты):
stopstop actionstop current actionstop runstop current runstop agentstop the agentstop openclawopenclaw stopstop don't do anythingstop do not do anythingstop doing anythingplease stopstop pleaseabortescwaitexitinterruptЭто триггеры прерывания (не slash-команды).
Для фоновых процессов (из инструмента exec) можно попросить агента выполнить:
process action:kill sessionId:XXXОбзор slash-команд: см. Slash-команды.
Большинство команд нужно отправлять как отдельное сообщение, начинающееся с /, но некоторые сокращения (например, /status) также работают внутри сообщения для отправителей из списка разрешенных.
Как отправить сообщение Discord из Telegram? («Cross-context messaging denied»)
OpenClaw по умолчанию блокирует обмен сообщениями между провайдерами. Если вызов инструмента привязан к Telegram, он не отправит сообщение в Discord, если вы явно не разрешите это.
Включите обмен сообщениями между провайдерами для агента:
{ tools: { message: { crossContext: { allowAcrossProviders: true, marker: { enabled: true, prefix: "[from {channel}] " }, }, }, },}Перезапустите Gateway после редактирования конфигурации.
Почему кажется, что бот «игнорирует» быстро отправляемые сообщения?
По умолчанию подсказки во время выполнения направляются в активный запуск. Используйте /queue, чтобы выбрать поведение активного запуска:
steer— направлять активный запуск на следующей границе моделиfollowup— ставить сообщения в очередь и запускать их по одному после завершения текущего запускаcollect— ставить совместимые сообщения в очередь и ответить один раз после завершения текущего запускаinterrupt— прервать текущий запуск и начать заново
Режим по умолчанию — steer. Для режимов с очередью можно добавить параметры вроде debounce:0.5s cap:25 drop:summarize. См. Очередь команд и Очередь управления.
Разное
Какая модель используется по умолчанию для Anthropic с API-ключом?
В OpenClaw учетные данные и выбор модели разделены. Установка ANTHROPIC_API_KEY (или сохранение API-ключа Anthropic в профилях auth) включает аутентификацию, но фактическая модель по умолчанию — та, которую вы настроите в agents.defaults.model.primary (например, anthropic/claude-sonnet-4-6 или anthropic/claude-opus-4-6). Если вы видите No credentials found for profile "anthropic:default", это означает, что Gateway не смог найти учетные данные Anthropic в ожидаемом auth-profiles.json для запущенного агента.
Все еще не получается? Спросите в Discord или откройте обсуждение GitHub.
Связанные материалы
- FAQ первого запуска — установка, onboard, auth, подписки, ранние сбои
- FAQ по моделям — выбор модели, failover, профили auth
- Устранение неполадок — диагностика по симптомам