~/.openclaw/openclaw.json. Если файл отсутствует, OpenClaw использует безопасные значения по умолчанию.
Активный путь конфигурации должен указывать на обычный файл. При записи OpenClaw атомарно заменяет его (переименовывая файл в указанный путь), поэтому для openclaw.json, являющегося символической ссылкой, будет заменён целевой файл, а не выполнена сквозная запись — избегайте конфигураций с символическими ссылками. Если конфигурация хранится вне каталога состояния по умолчанию, задайте в OPENCLAW_CONFIG_PATH прямой путь к фактическому файлу.
Распространённые причины добавить конфигурацию:
- Подключить каналы и настроить, кто может отправлять сообщения боту
- Настроить модели, инструменты, изоляцию или автоматизацию (cron, хуки)
- Настроить сеансы, медиа, сеть или пользовательский интерфейс
config.schema.lookup
для получения точной документации по отдельным полям. Эта страница содержит практические инструкции,
а справочник по конфигурации — более полную
карту полей и значений по умолчанию.
Минимальная конфигурация
Редактирование конфигурации
- Интерактивный мастер
- CLI (однострочные команды)
- Панель управления
- Прямое редактирование
Строгая проверка
openclaw config schema выводит каноническую JSON Schema, используемую панелью управления
и при проверке. config.schema.lookup получает отдельный узел для заданного пути и
сводные данные о дочерних элементах для инструментов с детализацией. Метаданные документации
полей title/description передаются во вложенные объекты, ветви с подстановочным
знаком (*), элементы массивов ([]) и ветви anyOf/
oneOf/allOf. Схемы плагинов и каналов среды выполнения объединяются с ней
после загрузки реестра манифестов.
При ошибке проверки:
- Gateway не запускается
- Работают только диагностические команды (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Выполните
openclaw doctor, чтобы просмотреть конкретные проблемы - Выполните
openclaw doctor --fix(--repair— тот же флаг;--yesотключает запросы подтверждения), чтобы применить исправления
openclaw doctor --fix. Если openclaw.json не проходит проверку
(включая локальную проверку плагина), Gateway не запускается либо перезагрузка пропускается, а текущая
среда выполнения продолжает использовать последнюю принятую конфигурацию. Отклонённая запись также
сохраняется как <path>.rejected.<timestamp> для анализа.
Gateway блокирует записи, похожие на случайную перезапись: удаление gateway.mode,
потерю блока meta или сокращение файла более чем наполовину, — если запись
явно не разрешает деструктивные изменения. Кандидат не становится последней работоспособной
конфигурацией, если он содержит отредактированный заполнитель секрета, например
*** или [redacted].
Распространённые задачи
Настройка канала (WhatsApp, Telegram, Discord и т. д.)
Настройка канала (WhatsApp, Telegram, Discord и т. д.)
channels.<provider>. Шаги настройки приведены на странице соответствующего канала:- Discord —
channels.discord - Feishu —
channels.feishu - Google Chat —
channels.googlechat - iMessage —
channels.imessage - Mattermost —
channels.mattermost - Microsoft Teams —
channels.msteams - Signal —
channels.signal - Slack —
channels.slack - Telegram —
channels.telegram - WhatsApp —
channels.whatsapp
Выбор и настройка моделей
Выбор и настройка моделей
agents.defaults.modelsопределяет каталог моделей и служит списком разрешений для/model; записиprovider/*ограничивают/model,/modelsи средства выбора моделей выбранными поставщиками, сохраняя динамическое обнаружение моделей.- Используйте
openclaw config set agents.defaults.models '<json>' --strict-json --merge, чтобы добавлять записи в список разрешений без удаления существующих моделей. Простые замены, удаляющие записи, отклоняются, если не передан--replace. - Ссылки на модели используют формат
provider/model(например,anthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPxуправляет уменьшением масштаба изображений в расшифровках и инструментах (по умолчанию1200); меньшие значения обычно сокращают расход токенов компьютерного зрения при выполнении задач с большим количеством снимков экрана.- Сведения о переключении моделей в чате см. в разделе CLI моделей, а о ротации аутентификации и поведении резервных моделей — в разделе Переключение при отказе модели.
- Сведения о пользовательских и самостоятельно размещённых поставщиках см. в разделе Пользовательские поставщики справочника.
Управление доступом к боту
Управление доступом к боту
dmPolicy (по умолчанию "pairing"):"pairing": неизвестные отправители получают одноразовый код сопряжения для подтверждения"allowlist": разрешены только отправители изallowFrom(или из хранилища разрешённых сопряжений)"open": разрешить все входящие личные сообщения (требуетсяallowFrom: ["*"])"disabled": игнорировать все личные сообщения
groupPolicy ("allowlist" | "open" | "disabled") вместе с groupAllowFrom или списками разрешений для конкретных каналов.Подробности для каждого канала приведены в полном справочнике.Настройка обязательных упоминаний в групповых чатах
Настройка обязательных упоминаний в групповых чатах
- Упоминания в метаданных: нативные @-упоминания (упоминание касанием в WhatsApp, @bot в Telegram и т. д.)
- Текстовые шаблоны: безопасные регулярные выражения в
mentionPatterns - Видимые ответы:
messages.visibleRepliesможет глобально требовать отправку через инструмент сообщений;messages.groupChat.visibleRepliesпереопределяет это для групп и каналов. - Режимы видимых ответов, переопределения для отдельных каналов и режим чата с самим собой описаны в полном справочнике.
Ограничение Skills для отдельных агентов
Ограничение Skills для отдельных агентов
agents.defaults.skills как общую базовую конфигурацию, а затем переопределяйте её
для отдельных агентов с помощью agents.list[].skills:- Чтобы по умолчанию не ограничивать Skills, не указывайте
agents.defaults.skills. - Чтобы наследовать значения по умолчанию, не указывайте
agents.list[].skills. - Чтобы отключить Skills, задайте
agents.list[].skills: []. - См. Skills, конфигурацию Skills и справочник по конфигурации.
Настройка мониторинга состояния каналов Gateway
Настройка мониторинга состояния каналов Gateway
- Показанные значения используются по умолчанию. Задайте
gateway.channelHealthCheckMinutes: 0, чтобы глобально отключить перезапуски по результатам мониторинга состояния. channelStaleEventThresholdMinutesдолжно быть больше или равно интервалу проверки.- Используйте
channels.<provider>.healthMonitor.enabledилиchannels.<provider>.accounts.<id>.healthMonitor.enabled, чтобы отключить автоматические перезапуски для отдельного канала или учётной записи, не отключая глобальный мониторинг. - Сведения об эксплуатационной диагностике см. в разделе «Проверки состояния», а описание всех полей — в полном справочнике.
Настройка тайм-аута рукопожатия WebSocket в Gateway
Настройка тайм-аута рукопожатия WebSocket в Gateway
- По умолчанию —
15000миллисекунд. OPENCLAW_HANDSHAKE_TIMEOUT_MSпо-прежнему имеет приоритет для разовых переопределений службы или оболочки.- Сначала рекомендуется устранить задержки при запуске или в цикле событий; этот параметр предназначен для исправных хостов, которые медленно прогреваются.
Настройка сеансов и сбросов
Настройка сеансов и сбросов
dmScope:main(общий) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: глобальные значения по умолчанию для маршрутизации сеансов, привязанных к веткам./focus,/unfocus,/agents,/session idleи/session max-ageпозволяют привязывать, отвязывать, перечислять и настраивать это для каждого сеанса (Discord привязывает ветки, Telegram — темы или диалоги).- Сведения об областях действия, связях идентификаторов и политике отправки см. в разделе Управление сеансами.
- Все поля см. в полном справочнике.
Включение песочницы
Включение песочницы
scripts/sandbox-setup.sh, а при установке из npm см. встроенную команду docker build в разделе Песочница § Образы и настройка.Полное руководство см. в разделе Песочница, а все параметры — в полном справочнике.Включение push-уведомлений через ретранслятор для официальных сборок iOS
Включение push-уведомлений через ретранслятор для официальных сборок iOS
https://ios-push-relay.openclaw.ai.Для собственных развёртываний ретранслятора требуется намеренно отдельный путь сборки и развёртывания iOS, в котором URL ретранслятора совпадает с URL ретранслятора Gateway. Если используется собственная сборка с ретранслятором, задайте в конфигурации Gateway следующее:- Позволяет Gateway отправлять
push.test, сигналы пробуждения и сигналы пробуждения для переподключения через внешний ретранслятор. - Использует разрешение на отправку, ограниченное регистрацией и переданное сопряжённым приложением iOS. Gateway не требуется токен ретранслятора для всего развёртывания.
- Привязывает каждую регистрацию через ретранслятор к идентификатору Gateway, с которым сопряжено приложение iOS, чтобы другой Gateway не мог повторно использовать сохранённую регистрацию.
- Для локальных и вручную собранных версий iOS сохраняется прямая отправка через APNs. Отправка через ретранслятор применяется только к официально распространяемым сборкам, зарегистрированным через ретранслятор.
- Должен совпадать с базовым URL ретранслятора, встроенным в сборку iOS, чтобы трафик регистрации и отправки поступал в одно и то же развёртывание ретранслятора.
- Установите официальное приложение iOS.
- Необязательно: настраивайте
gateway.push.apns.relay.baseUrlна Gateway только при использовании намеренно отдельной собственной сборки с ретранслятором. - Сопрягите приложение iOS с Gateway и дождитесь подключения сеансов Node и оператора.
- Приложение iOS получает идентификатор Gateway, регистрируется в ретрансляторе с помощью App Attest и квитанции приложения, а затем публикует полезную нагрузку
push.apns.registerдля ретранслятора в сопряжённом Gateway. - Gateway сохраняет дескриптор ретранслятора и разрешение на отправку, а затем использует их для
push.test, сигналов пробуждения и сигналов пробуждения для переподключения.
- Если приложение iOS переключено на другой Gateway, переподключите его, чтобы оно могло опубликовать новую регистрацию ретранслятора, привязанную к этому Gateway.
- Если выпущена новая сборка iOS, указывающая на другое развёртывание ретранслятора, приложение обновляет кэшированную регистрацию ретранслятора вместо повторного использования прежнего источника ретранслятора.
OPENCLAW_APNS_RELAY_BASE_URLиOPENCLAW_APNS_RELAY_TIMEOUT_MSпо-прежнему работают как временные переопределения через переменные среды.- URL собственного ретранслятора Gateway должен совпадать с базовым URL ретранслятора, встроенным в сборку iOS; канал выпуска в общедоступном App Store отклоняет переопределения URL собственного ретранслятора iOS.
OPENCLAW_APNS_RELAY_ALLOW_HTTP=trueостаётся предназначенным только для loopback аварийным вариантом для разработки; не сохраняйте URL ретранслятора HTTP в конфигурации.
Настройка Heartbeat (периодических проверок)
Настройка Heartbeat (периодических проверок)
every: строка длительности (30m,2h). Чтобы отключить, задайте0m. По умолчанию:30m.target:last|none|<channel-id>(например,discord,matrix,telegramилиwhatsapp)directPolicy:allow(по умолчанию) илиblockдля целей Heartbeat в стиле личных сообщений- Полное руководство см. в разделе Heartbeat.
Настройка заданий Cron
Настройка заданий Cron
sessionRetention: удаляет завершённые изолированные сеансы запусков из строк сеансов SQLite (по умолчанию24h; чтобы отключить, задайтеfalse).- В истории запусков автоматически сохраняются 2000 новейших конечных строк для каждого задания; для потерянных строк сохраняется 24-часовое окно очистки.
- Обзор возможностей и примеры CLI см. в разделе Задания Cron.
Настройка вебхуков (хуков)
Настройка вебхуков (хуков)
- Считайте всё содержимое полезной нагрузки хука или вебхука недоверенными входными данными.
- Используйте отдельный
hooks.token; не используйте повторно активные секреты аутентификации Gateway (gateway.auth.token/OPENCLAW_GATEWAY_TOKENилиgateway.auth.password/OPENCLAW_GATEWAY_PASSWORD). - Аутентификация хуков выполняется только через заголовок (
Authorization: Bearer ...илиx-openclaw-token); токены в строке запроса отклоняются. hooks.pathне может быть/; размещайте входящие вебхуки в отдельном подпути, например/hooks.- Не включайте флаги обхода проверки небезопасного содержимого (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent), кроме случаев строго ограниченной отладки. - Если включён
hooks.allowRequestSessionKey, также задайтеhooks.allowedSessionKeyPrefixes, чтобы ограничить выбираемые вызывающей стороной ключи сеансов. - Для агентов, запускаемых хуками, рекомендуется использовать мощные современные уровни моделей и строгую политику инструментов (например, только обмен сообщениями и, где возможно, песочницу).
Настройка маршрутизации между несколькими агентами
Настройка маршрутизации между несколькими агентами
Разделение конфигурации на несколько файлов ($include)
Разделение конфигурации на несколько файлов ($include)
$include для организации больших конфигураций:- Один файл: заменяет содержащий его объект
- Массив файлов: глубоко объединяются по порядку (последующие имеют приоритет), до 10 уровней вложенности
- Соседние ключи: объединяются после включений (переопределяют включённые значения)
- Относительные пути: разрешаются относительно включающего файла
- Формат пути: пути включений не должны содержать нулевые байты и должны быть строго короче 4096 символов до и после разрешения
- Запись со стороны OpenClaw: если запись изменяет только один раздел верхнего уровня,
поддерживаемый включением одного файла, например
plugins: { $include: "./plugins.json5" }, OpenClaw обновляет этот включённый файл и оставляетopenclaw.jsonбез изменений - Неподдерживаемая сквозная запись: корневые включения, массивы включений и включения с соседними переопределениями приводят к безопасному отказу записи со стороны OpenClaw вместо сведения конфигурации в один файл
- Ограничение области: пути
$includeдолжны разрешаться внутри каталога, содержащегоopenclaw.json. Чтобы совместно использовать дерево на разных компьютерах или между пользователями, задайтеOPENCLAW_INCLUDE_ROOTSкак список путей (:в POSIX,;в Windows) к дополнительным каталогам, на которые могут ссылаться включения. Символические ссылки разрешаются и проверяются повторно, поэтому путь, который лексически находится в каталоге конфигурации, но фактическая цель которого выходит за пределы всех разрешённых корней, всё равно отклоняется. - Обработка ошибок: понятные ошибки для отсутствующих файлов, ошибок разбора, циклических включений, недопустимого формата пути и чрезмерной длины
Горячая перезагрузка конфигурации
Gateway отслеживает~/.openclaw/openclaw.json и автоматически применяет изменения — для большинства настроек ручной перезапуск не требуется.
Прямые изменения файла считаются недоверенными, пока не пройдут проверку. Наблюдатель ожидает
завершения временных операций записи и переименования редактора, считывает итоговый файл и отклоняет
недопустимые внешние изменения, не перезаписывая openclaw.json. При записи конфигурации со стороны
OpenClaw перед записью применяется та же проверка схемы (правила перезаписи и отката, применимые
к каждой записи, см. в разделе Строгая проверка).
Если отображается config reload skipped (invalid config) или при запуске сообщается Invalid config, проверьте конфигурацию, выполните openclaw config validate, а затем для исправления — openclaw doctor --fix. Контрольный список см. в разделе Устранение неполадок Gateway.
Режимы перезагрузки
Какие изменения применяются без перезапуска, а какие требуют его
Большинство полей применяются без перезапуска и простоя; при изменении некоторых разделов перезапускается только соответствующая подсистема (канал, Cron, Heartbeat, монитор работоспособности), а не весь Gateway. В режимеhybrid изменения, требующие перезапуска Gateway,
обрабатываются автоматически.
gateway.reload и gateway.remote являются исключениями в разделе gateway.* — их изменение не вызывает перезапуск. Отдельные плагины также могут переопределять эту таблицу: загруженный плагин может объявить собственные префиксы конфигурации, вызывающие перезапуск (например, встроенный плагин Canvas перезапускает Gateway при изменении plugins.enabled, plugins.allow и plugins.deny, а не только собственного plugins.entries.canvas), поэтому фактическое поведение зависит от активных плагинов.Планирование перезагрузки
При редактировании исходного файла, указанного через$include, OpenClaw планирует
перезагрузку на основе исходной структуры, а не плоского представления в памяти.
Благодаря этому решения о горячей перезагрузке (применение без перезапуска или перезапуск)
остаются предсказуемыми, даже если отдельный раздел верхнего уровня находится в собственном
подключаемом файле, например plugins: { $include: "./plugins.json5" }. Если структура
исходных файлов неоднозначна, планирование перезагрузки завершается отказом.
RPC конфигурации (программные обновления)
Для инструментов, записывающих конфигурацию через API Gateway, предпочтителен следующий порядок:config.schema.lookupдля просмотра одного поддерева (неглубокий узел схемы и сводки дочерних элементов)config.getдля получения текущего снимка вместе сhashconfig.patchдля частичных обновлений (объединяющий патч JSON: объекты объединяются,nullудаляет значения, а массивы заменяются после явного подтверждения с помощьюreplacePaths, если из них будут удалены элементы)config.applyтолько при намеренной замене всей конфигурацииupdate.runдля явного самообновления с перезапуском; добавьтеcontinuationMessage, если после перезапуска сеанс должен выполнить ещё один запросupdate.statusдля просмотра последнего маркера перезапуска после обновления и проверки запущенной версии после перезапуска
config.schema.lookup. Используйте справочник по конфигурации,
если требуется общая карта конфигурации, значения по умолчанию или ссылки на отдельные
справочники подсистем.
config.apply, config.patch, update.run)
ограничена 3 запросами за 60 секунд на deviceId+clientIp. Запросы на перезапуск
объединяются, после чего между циклами перезапуска действует 30-секундный период ожидания.
update.status доступен только для чтения, но требует прав администратора, поскольку маркер перезапуска
может содержать сводки этапов обновления и заключительные фрагменты вывода команд.config.apply, так и config.patch принимают raw, baseHash, sessionKey,
note и restartDelayMs. Если файл конфигурации уже существует, baseHash обязателен для обоих
методов (при первой записи без существующей конфигурации эта проверка пропускается).
config.patch также принимает replacePaths — массив путей конфигурации, для которых
замена массива является намеренной. Если патч заменяет или удаляет существующий массив,
оставляя меньше элементов, Gateway отклоняет запись, если соответствующий точный путь
не указан в replacePaths; для вложенных массивов внутри элементов массива используется [],
например agents.list[].skills. Это предотвращает незаметную перезапись массивов маршрутизации
или списков разрешений усечёнными снимками config.get. Используйте config.apply,
если требуется заменить всю конфигурацию.
Переменные окружения
OpenClaw считывает переменные окружения из родительского процесса, а также из следующих источников:.envиз текущего рабочего каталога (при наличии)~/.openclaw/.env(глобальный резервный источник)
Импорт окружения оболочки (необязательно)
Импорт окружения оболочки (необязательно)
OPENCLAW_LOAD_SHELL_ENV=1. Значение timeoutMs по умолчанию: 15000.Подстановка переменных окружения в значениях конфигурации
Подстановка переменных окружения в значениях конфигурации
${VAR_NAME}:- Распознаются только имена в верхнем регистре:
[A-Z_][A-Z0-9_]* - Отсутствующие или пустые переменные вызывают ошибку при загрузке
- Для буквального вывода экранируйте с помощью
$${VAR} - Работает внутри файлов
$include - Встроенная подстановка:
"${BASE}/v1"→"https://api.example.com/v1"
Ссылки на секреты (окружение, файл, выполнение команды)
Ссылки на секреты (окружение, файл, выполнение команды)
secrets.providers для env/file/exec) приведены в разделе Управление секретами.
Поддерживаемые пути учётных данных перечислены в разделе Поверхность учётных данных SecretRef.Полный справочник
Полный справочник по каждому полю см. в разделе Справочник по конфигурации.См. также: Примеры конфигурации · Справочник по конфигурации · Doctor