OpenClaw очень просто для быстрого старта. После openclaw onboard у тебя работает Gateway и один агент отвечает в Telegram. Но дальше начинается самое интересное — и самое неочевидное: как устроен openclaw.json, что из workspace-файлов реально попадает в контекст, как включить heartbeat так, чтобы он не превратился в генератор мусора и расхода токенов, и как правильно разнести нескольких агентов по чатам и топикам.
Документация OpenClaw покрывает это фрагментарно, а большинство гайдов заканчиваются на «поставил — работает». Этим туториалом постараемся закрыть следующие шаги: разбираем конфиг секция за секцией, показываем рабочие примеры для Telegram, bindings, session policy и multi-agent — всё, что нужно, чтобы перейти от одного бота в личке к нормальной продакшн-конфигурации.
Что такое OpenClaw после установки
После установки OpenClaw у тебя появляется не просто CLI, а целая среда:
Gateway — центральный процесс: каналы, роутинг, сессии, веб‑интерфейс.
Agent workspace — рабочая папка агента: файлы, память, локальные инструкции.
Главный конфиг
~/.openclaw/openclaw.json— место, где задаётся почти всё.Каналы — Telegram, WhatsApp, Discord и другие.
Автономность — heartbeat, cron, hooks.
Multi‑agent — несколько агентов в одном Gateway.
Если совсем упростить: OpenClaw — это шлюз между мессенджерами, моделью и твоими агентами.
После установки твоя задача не в том, чтобы «заполнить все поля», а в том, чтобы:
поднять Gateway;
выбрать модель и канал;
привести в порядок
openclaw.json;настроить workspace;
только потом добавлять автономность и несколько агентов.
Что делать сразу после установки
Самый нормальный путь для новичка — не редактировать всё руками с первой минуты, а сначала пройти встроенный onboarding.
Базовая последовательность
openclaw onboard
Это мастер первичной настройки. Он помогает:
выбрать режим работы;
настроить Gateway;
задать авторизацию;
выбрать модель или провайдера;
подключить канал;
создать стартовую конфигурацию.
После этого, если нужно что то изменить, используйте:
openclaw configure
А потом проверить текущее состояние:
openclaw status openclaw doctor
Если нужно понять, где лежит активный конфиг:
openclaw config file
Обычно это:
~/.openclaw/openclaw.json
OpenClaw может стартовать и без конфиг‑файла вообще — с безопасными дефолтами. Но как только ты хочешь подключить Telegram, ограничить доступы, выбрать модели, включить heartbeat или сделать multi‑agent, без openclaw.json уже никуда.
Главный файл: ~/.openclaw/openclaw.json
Почти вся взрослая настройка OpenClaw живёт в
~/.openclaw/openclaw.json.
Это главный конфиг Gateway. Формат — JSON5, а не строгий JSON.
OpenClaw строго валидирует конфиг.
Это значит:
опечатка в ключе;
неправильный тип значения;
неизвестное поле;
невалидная структура,
и Gateway может отказаться стартовать.
После ручных правок полезно делать:
openclaw config validate openclaw doctor
Можно ли редактировать конфиг «на лету»
Да, во многих случаях есть hot reload. Но часть настроек применяются сразу, а часть требует рестарта.
Практичное правило:
каналы, агенты, heartbeat, messages, tools — чаще всего можно менять без боли;
gateway‑настройки (порт, bind и т.п.) — чаще требуют рестарта.
Если не хочется гадать:
openclaw gateway restart
Какие конфиг‑файлы бывают
1) ~/.openclaw/openclaw.json
Это главный системный конфиг. Здесь настраиваются:
Gateway
каналы
агенты
routing / bindings
heartbeat
session policy
tools
models
hooks / cron
secrets и другое
Если нужно менять поведение системы — почти наверняка это делается здесь.
2) ~/.openclaw/workspace/*
Это рабочая среда агента. Обычно там есть:
Это не просто заметки: эти файлы попадают в контекст агента и сильно влияют на поведение и расход токенов.
3) auth-profiles.json и связанные auth‑файлы
Полезно, когда доходишь до multi‑agent: авторизация у агентов может быть разделена.
4) .env и ~/.openclaw/.env
OpenClaw умеет читать переменные окружения:
из процесса;
из локального
.env;из
~/.openclaw/.env.
Это удобно для ключей, токенов и приватных данных.
5) Разбитые конфиги через $include
Если конфиг разрастается, его можно делить на несколько файлов:
{ gateway: { port: 18789 }, agents: { $include: "./agents.json5" }, channels: { $include: "./channels.json5" }, }
Как мыслить об openclaw.json, чтобы не утонуть
Разбей его мысленно на 6 блоков:
как работает шлюз →
gatewayкакие агенты →
agentsоткуда приходят сообщения →
channelsкуда маршрутизировать →
bindingsкак живут сессии и ответы →
session,messagesавтономность и права →
heartbeat,tools,cron,hooks
Если понять эти шесть частей, дальше всё становится сильно проще.
Разбор ключевых секций openclaw.json
gateway: как работает OpenClaw как сервис
Простейший пример:
{ gateway: { mode: "local", port: 18789, bind: "loopback", auth: { mode: "token", token: "super-secret-token", }, }, }
-
Что здесь важно новичку
mode: обычно нуженlocal.port: по умолчанию часто18789.-
bind:loopback— безопасный вариант (доступ только локально).lan— слушать на всех интерфейсах.tailnet— для Tailscale.custom— кастомный bind.
auth: чтобы не оставить Gateway без защиты, настрой токен.
agents: кто вообще у тебя работает
Минимальный стартовый пример:
{ agents: { defaults: { workspace: "~/.openclaw/workspace", model: { primary: "openai/gpt-5.4", }, }, }, }
-
На что смотреть в
agents.defaultsworkspace: папка, где живёт агент.model: основная модель, можно настроить fallback.userTimezone: чтобы heartbeat и расписания работали адекватно.heartbeat: автономность (ниже — отдельный раздел).
channels: откуда агент получает сообщения
Пример для Telegram:
{ channels: { telegram: { enabled: true, botToken: "123456:ABCDEF", dmPolicy: "pairing", groups: { "*": { requireMention: true }, }, }, }, }
Ментальная модель: channels отвечает на вопрос: через какие мессенджеры можно достучаться и на каких правилах.
bindings: как сообщения попадают к конкретному агенту
Пример:
{ bindings: [ { agentId: "main", match: { channel: "telegram", accountId: "default" } }, { agentId: "ops", match: { channel: "telegram", accountId: "ops-bot" } }, ], }
channelsописывает входные двери, аbindingsрешает, в какую комнату отправить посетителя.
session: как живёт память разговора
{ session: { dmScope: "per-channel-peer", reset: { mode: "idle", idleMinutes: 180, }, threadBindings: { enabled: true, idleHours: 24, }, }, }
messages: как агент отвечает
{ messages: { ackReaction: "?", queue: { mode: "collect", debounceMs: 1000, }, inbound: { debounceMs: 1500, }, }, }
tools: что агенту вообще разрешено
Безопасный старт:
{ tools: { profile: "coding", deny: ["browser", "canvas"], elevated: { enabled: false, }, }, }
Heartbeat: автономность без хаоса
Большинство агентов реактивны: написал — ответил. Heartbeat делает агента проактивным. Это чуть ли не самое крутое что есть в OpenClaw.
По таймеру Gateway отправляет агенту сигнал, и тот решает — есть ли что-то, о чём стоит сообщить, или нужно выполнить фоновую задачу. Это может быть проверка статуса деплоя, напоминание о зависшей задаче или утренний дайджест. По сути, heartbeat превращает агента из собеседника в фонового ассистента, который работает даже когда ты ему не пишешь.
Если openclaw.json — мозг конфигурации, то heartbeat — сердце автономной работы.
Heartbeat очень мощный, но легко становится источником шума и расхода токенов, если не задать понятный сценарий.
Как включается heartbeat
{ agents: { defaults: { heartbeat: { every: "30m", target: "last", directPolicy: "allow", lightContext: false, }, }, }, }
-
Что значат основные настройки
every: интервал (30m,1h,2h,0m— выключить).target: куда отправлять результат (none,last, конкретный канал).directPolicy: можно ли писать в личку.lightContext: облегчённый контекст, в основном с опорой наHEARTBEAT.md.
Зачем нужен HEARTBEAT.md
Без HEARTBEAT.md heartbeat часто превращается в:
шумного собеседника, который дёргает без дела;
дорогой таймер, который регулярно сжигает токены.
HEARTBEAT.md — это чеклист автономного режима.
Пример:
# HEARTBEAT - Проверь, есть ли что-то срочное или зависшее в текущих задачах. - Если есть блокер — коротко скажи, что именно мешает. - Если есть законченный важный результат — коротко сообщи. - Не дёргай без причины. - Если ничего важного нет, отвечай HEARTBEAT_OK. - Ночью без срочности не пиши.
Telegram: как настроить бота нормально
Базовый конфиг Telegram‑бота
{ channels: { telegram: { enabled: true, botToken: "123456:ABCDEF", dmPolicy: "pairing", groups: { "*": { requireMention: true }, }, historyLimit: 50, replyToMode: "first", linkPreview: true, streaming: "partial", }, }, }
-
Ключевые моменты
botToken: токен от BotFather.-
dmPolicy:pairing— мягкий вход.allowlist— самый предсказуемый доступ.open— все.disabled— личка выключена.
requireMention: trueв группах — хорошая защита от «болтливого» бота.
Multi‑agent: несколько агентов и привязка к каналам, чатам, топикам
Правильная модель: один Gateway держит несколько изолированных агентов. У каждого может быть свой workspace, инструкции, auth‑профили и маршрутизация входящих сообщений.
1) Добавить нового агента
openclaw agents add research
Пример руками:
{ agents: { list: [ { id: "main", default: true, workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", }, { id: "research", workspace: "~/.openclaw/workspace-research", agentDir: "~/.openclaw/agents/research/agent", }, ], }, }
Один workspace на двух агентов — почти всегда плохая идея. Разделяй workspace и agentDir.
2) Привязать агента к отдельному Telegram‑аккаунту (два бота)
{ channels: { telegram: { accounts: { default: { botToken: "123456:MAIN_TOKEN", dmPolicy: "allowlist", allowFrom: ["tg:123456789"], }, researchbot: { botToken: "654321:RESEARCH_TOKEN", dmPolicy: "allowlist", allowFrom: ["tg:123456789"], }, }, }, }, bindings: [ { agentId: "main", match: { channel: "telegram", accountId: "default" } }, { agentId: "research", match: { channel: "telegram", accountId: "researchbot" } }, ], }
3) Привязать агента к конкретному чату
{ bindings: [ { agentId: "research", match: { channel: "telegram", peer: { kind: "group", id: "-1001234567890" }, }, }, ], }
4) Привязать агента к конкретному Telegram topic
{ channels: { telegram: { groups: { "-1001234567890": { requireMention: true, topics: { "3": { agentId: "dev", requireMention: false }, "5": { agentId: "ops", requireMention: false }, }, }, }, }, }, }
5) Отдельный heartbeat для каждого агента
{ agents: { defaults: { heartbeat: { every: "0m", }, }, list: [ { id: "main", default: true, workspace: "~/.openclaw/workspace-main", }, { id: "ops", workspace: "~/.openclaw/workspace-ops", heartbeat: { every: "1h", target: "telegram", to: "123456789", lightContext: true, }, }, ], }, }
Итог
OpenClaw спроектирован так, что можно начать с одного агента в Telegram и постепенно наращивать сложность — не переписывая конфиг с нуля, а добавляя секции по мере необходимости. Главное — не пытаться включить всё сразу, действуйте шаг за шагом, смотрите к чему приводят перемены, все ли вас устраивает.
Gateway, одна модель, один канал, чистый workspace — этого достаточно, чтобы агент заработал. Heartbeat, bindings, multi‑agent — это следующий шаг, когда понятно, зачем они нужны именно тебе.
Если что‑то пошло не так — openclaw doctor и openclaw status почти всегда подскажут, где копать.
В следующем туториале планируем разобрать workspace подробнее: как писать SOUL.md и AGENTS.md так, чтобы агент вёл себя предсказуемо, как устроена память и сколько токенов на самом деле съедают эти файлы. Если есть темы, которые хочется разобрать в первую очередь и в чем кажется основные проблемы — пишите в комментариях.
А если хочется обсудить конкретные конфигурации или посмотреть, как другие строят своих агентов — заходите в наше сообщество, там уже есть топик где агенты общаются между собой ?
Комментарии (18)

exelens
13.03.2026 17:12Если железки под него нет отдельной то в докере запускать можно или на малинке? Или лучше железо отдельное?

OpenClaw_Lab Автор
13.03.2026 17:12Отдельная железка не прям что нужна, но есть - это самый простой путь обычно. Плохая идея ставить прямо себе на десктоп.
В одной из предыдущих статей тут описывали как раз как на виртуальную машину поставить: https://habr.com/ru/articles/1001992/
в докер тоже вполне можно
Для первого запуска что угодно можно выбрать, настройки потом перенести в другое место не будет проблемой.
Единственное, в случае с виртуальной машиной и докером может быть больше проблем с впн и гетвеями, но все проблемы решаемы

zbot
13.03.2026 17:12осталась в принципе одна текущая проблема - месенджер телеграм и ркн.

Kurt
13.03.2026 17:12Ну подключите любой другой месенджер:)
Но вообще, кажется, это какая-то совсем иная проблема и о другом ;-)
zbot
13.03.2026 17:12ну ты бота в махе попробуй сделать.

Kurt
13.03.2026 17:12ну так не Махом же единым богата земля русская?:) телега.ин говорят, например, решает как вариант
Да и все же можно и там...
Но, честно говоря, как по мне, забаненым впнами в целом не до опенклоу и т.п. "высоких компьютерных технологий", где я не прав?

nordwind
13.03.2026 17:12Некоторые json вообще как бы сказать не self described, название параметра не о чем не говорит. Или я ошибаюсь?

OpenClaw_Lab Автор
13.03.2026 17:12Не ошибаетесь, часть параметров действительно не самоочевидна с первого взгляда, например,
lightContext,dmPolicy: "pairing"илиtarget: "last"без контекста могут вызвать вопросы. Хорошая новость - это json? значит можно оставлять комментарии рядом ;)
Ну и если чтоopenclaw config validate+openclaw doctorподскажут, если значение невалидное.
Документация покрывает большинство параметров, но местами фрагментарно и приходится методом тыка все. Собственно, этим туториалом и пытаемся закрыть такие пробелы. Если есть конкретные параметры, которые вызвали вопросы - пишите, разберем.
slonopotamus
13.03.2026 17:12это json? значит можно оставлять комментарии рядом ;)
Но ведь нельзя, json не поддерживает комментарии.

OpenClaw_Lab Автор
13.03.2026 17:12Да, но нет:) В смысле вы правы про чистый json, конечно
Но в openclaw конфиг файлы парсятся JSON5, так что можно

copywr1ter
13.03.2026 17:12Это перевод такой корявый или генерация странная? Невозможно читать, на кракозябрском каком-то буквы в слова и предложения составлены. "Очень просто для старта", "становится источником шума"?

OpenClaw_Lab Автор
13.03.2026 17:12Это не перевод. Что не так с оборотами которые вы выделили - не очевидно, ну сори. Видать всем не угодишь. I do my best что называется

diffnotes-tech
13.03.2026 17:12lightContext: true на heartbeat отрезает историю разговора, агент видит только HEARTBEAT.md. Но в чеклисте написано "проверь срочное в текущих задачах" - а откуда он узнает задачи без контекста? Либо ты даёшь tools и он тратит вызовы чтобы вспомнить что происходит, либо heartbeat вслепую. Полезный heartbeat это скорее lightContext: false на длинном интервале типа 2-4h, а не lightContext: true каждые полчаса

OpenClaw_Lab Автор
13.03.2026 17:12Согласен, не совсем логично получается, внесли правку.
Лучше использовать lightContext: false (стоит по дефолту), чтобы был доступ к контексту задач.
Andnet
Тонкостей в настройке очень много. Могу сразу сказать новичкам, неделю точно проковыряетесь. То работает то не работает, память слетает, в личке команды выполняет в группах не выполняет, в личке так в группе по другому, файлы свои не читает, хотя жестко прописано, все забывает через секунду и все сначала, короче побольше статей и побольше кейсов именно из опыта работы а не как на кнопку инстал нажать на сайте для установки тк переполнен ютуб банальными видео о ниочем.
Базу себе сразу поставил чтоб в нее все заносил, Поиск searxng сразу поставил, чтоб локальный бесплатный был, в конфиг много прописал, того что нет в дефолтном. Группы, скиллы команды прописал настроил, несколько моделей прописал, и как сабагентов и как запасных. Но еще далеко до стабильной качественной работы, больше как хобби. Сказать что агенты уже отлично работают - ложь, постоянные проблемы и до качества еще далеко. Праллельно и Picoclaw стоит и сравниваю, достойный конкурент Openclaw и намного легче и проще, но и есть слабости. Пишите больше про настройки и применение грамотных изменений дополнений
Kurt
В основном соглашусь. На счет "агенты хорошо работают", наверное, вопрос какие. В рамках Cursor и Claude Code не слышал особых нареканий, но они куда менее универсальные. OpenClaw явно про универсальность и гибкость как раз, но да, постоянно что-то чинишь и настраиваешь. Но она по ощущениям "как в дестве", реально же прям интересно выходит.
На счет Picoclaw (да и форков в целом же уже много) не знаю. Ну хорошо что они есть, но вот будут ли развиваться, а это же явно важно - вопрос. Опенклоу, кажется, в обозримом будущем обречен на развитие.
Andnet
Picoclaw на уровне не ниже OpenClaw А в скорости и в потреблении в разы лучше. Проще и в настройках намного легче, избавлен от бестолкового и никому не нужного вэба, есть минимальный но для галочки. Всего один файл бинарный. Минусы тоже есть в настройках, но пилят и фиксят ежедневно. Там крупная контора за ним стоит, обновления частые. Можно смело ставить для себя.
OpenClaw_Lab Автор
Спасибо за обратную связь, принято. Бум реально стараться двигаться в этом направлении