OpenClaw и Discord — это связка, которая превращает Discord-сервер в рабочее пространство с ИИ-ассистентом. Бот подключается через официальный Discord Gateway, читает сообщения, отвечает в каналах и личных сообщениях, поддерживает голосовые каналы и slash-команды. Настройка занимает 15 минут: создать приложение в Discord Developer Portal, получить токен, прописать его в конфиге OpenClaw и запустить шлюз.
Что такое OpenClaw Discord-бот
OpenClaw — это open-source фреймворк для персональных ИИ-агентов с MIT-лицензией. Discord-интеграция — один из каналов связи: агент подключается к Discord как бот через официальный Gateway API. Поддерживаются личные сообщения (DM), текстовые каналы, форумы, треды и голосовые каналы.
В отличие от обычного Discord-бота, который отвечает по заранее заданным командам, OpenClaw-агент использует LLM-модель (Claude, GPT, Gemini, DeepSeek и другие) для генерации ответов. У него есть память, навыки (skills), доступ к инструментам — браузеру, файловой системе, терминалу, поиску. По сути, это полноценный ИИ-ассистент, который живёт на вашем Discord-сервере.
Подготовка: что нужно перед началом
Для подключения OpenClaw к Discord потребуется три вещи:
- OpenClaw версии 2026.2.3 или выше, установленный и запущенный на сервере или локальной машине. Если OpenClaw ещё не установлен — есть отдельное руководство по установке на VPS.
- Discord-сервер, где у вас есть права Manage Server. Discord Nitro или платные функции не нужны — всё работает на бесплатном аккаунте.
- Текстовый редактор для работы с конфигурационными файлами (VS Code, Cursor, nano — любой, кто умеет работать с JSON).
Для круглосуточной работы бота OpenClaw должен работать на VPS. На домашнем компьютере бот будет доступен только пока машина включена.
Шаг 1: Создание Discord-приложения и бота
Каждый Discord-бот живёт внутри Discord Application — это контейнер, который хранит идентификацию бота, права доступа и настройки событий.
- Откройте Discord Developer Portal.
- Нажмите New Application и задайте имя (например, «OpenClaw» или «AI Assistant»).
- Нажмите Create.
- В левом меню выберите Bot.
- Установите Username — это имя, которое будут видеть участники сервера.
- Нажмите Reset Token и скопируйте токен. Несмотря на название «Reset», это генерация первого токена. Discord покажет его только один раз.
Важно: токен бота — это секрет. Относитесь к нему как к SSH-ключу, а не как к логину. Тот, у кого есть токен, полностью контролирует вашего бота. Не публикуйте его в чатах, не вставляйте в открытые репозитории.
Шаг 2: Настройка Gateway Intents
Gateway Intents — это разрешения, которые говорят Discord, какие события отправлять боту. Без правильных intents бот подключится, но не будет видеть содержимое сообщений.
На странице Bot в Developer Portal прокрутите вниз до раздела Privileged Gateway Intents и включите:
- Message Content Intent (обязательно) — позволяет боту читать текст сообщений в каналах сервера. Без этого intent бот видит события сообщений, но не знает, что написано. Это главная причина, почему бот подключается, но не отвечает.
- Server Members Intent (рекомендуется) — нужен для поиска участников по имени, работы с ролями и ограничения доступа по списку пользователей.
- Presence Intent (опционально) — отслеживание статуса онлайн/офлайн. Включайте только если нужны автоматизации, зависящие от статуса.
Если бот находится более чем в 100 серверах, Discord требует верификацию для Message Content Intent. Для частных серверов это не проблема — верификация не нужна.
Шаг 3: Настройка прав и приглашение бота
Перейдите в OAuth2 → URL Generator в левом меню Developer Portal.
В разделе Scopes отметьте:
botapplications.commands
В разделе Bot Permissions отметьте минимум:
- View Channels — видеть каналы
- Send Messages — отправлять сообщения
- Read Message History — читать историю
- Embed Links — встраивать ссылки
- Attach Files — прикреплять файлы
- Add Reactions — ставить реакции (опционально)
- Send Messages in Threads — если бот будет работать в тредах
Не давайте боту права Administrator. Работать будет, но это даёт боту полный контроль над сервером. Начните с минимума и добавляйте права по мере необходимости.
Скопируйте сгенерированную ссылку внизу страницы, откройте в браузере, выберите сервер и нажмите Authorize. Бот появится в списке участников сервера, но будет офлайн до запуска OpenClaw.
Шаг 4: Подключение токена к OpenClaw
Есть два способа передать токен OpenClaw: через переменную окружения (рекомендуется) или через конфигурационный файл.
Через переменную окружения
На машине, где запущен OpenClaw:
export DISCORD_BOT_TOKEN="ваш-токен-бота"
Затем обновите конфигурацию:
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
openclaw config set channels.discord.enabled true --strict-json
Через конфигурационный файл
Откройте openclaw.json (обычно в ~/.openclaw/) и добавьте:
{
"channels": {
"discord": {
"enabled": true,
"token": {
"source": "env",
"provider": "default",
"id": "DISCORD_BOT_TOKEN"
}
}
}
}
Или через openclaw config patch:
cat > discord.patch.json5 <<'JSON5'
{
channels: {
discord: {
enabled: true,
token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" },
},
},
}
JSON5
openclaw config patch --file ./discord.patch.json5 --dry-run
openclaw config patch --file ./discord.patch.json5
Не вставляйте токен в конфиг в открытом виде. Переменные окружения держат секрет вне файлов, которые агент может прочитать в контекст, и упрощают ротацию токена.
Шаг 5: Запуск и привязка (pairing)
Запустите (или перезапустите) OpenClaw gateway:
openclaw gateway
Проверьте логи на наличие подключения к Discord:
openclaw logs --follow
После запуска откройте Discord и отправьте личное сообщение боту. OpenClaw ответит кодом привязки. Чтобы подтвердить:
openclaw pairing approve discord КОД_ПРИВЯЗКИ
Коды привязки действуют 1 час. После подтверждения бот начнёт отвечать в личных сообщениях.
Настройка доступа: кто и где может общаться с ботом
По умолчанию бот отвечает только в личных сообщениях. Чтобы он работал в каналах сервера, нужно настроить политику доступа. Без настройки вы рискуете получить бота, который отвечает на каждое сообщение в #general и сжигает бюджет API за дни.
Режим mention-only (рекомендуется)
Бот читает все сообщения (для контекста), но отвечает только когда кто-то упоминает его через @. Это безопасный режим по умолчанию.
{
"channels": {
"discord": {
"groupPolicy": "allowlist",
"guilds": {
"ID_ВАШЕГО_СЕРВЕРА": {
"requireMention": true,
"users": ["ID_ВАШЕГО_ПОЛЬЗОВАТЕЛЯ"]
}
}
}
}
}
Используйте ID серверов и пользователей, а не имена. Имена меняются — ID нет. Чтобы узнать ID: включите Developer Mode в настройках Discord (User Settings → Advanced), затем правый клик на сервере/пользователе → Copy ID.
Ответы без @упоминания
На приватном сервере, где только вы и бот, можно разрешить отвечать на каждое сообщение:
{
"channels": {
"discord": {
"groupPolicy": "allowlist",
"guilds": {
"ID_СЕРВЕРА": {
"requireMention": false,
"users": ["ID_ПОЛЬЗОВАТЕЛЯ"]
}
}
}
}
}
Ограничение по каналам
Можно разрешить боту работать только в определённых каналах:
{
"channels": {
"discord": {
"guilds": {
"ID_СЕРВЕРА": {
"channels": {
"ID_КАНАЛА_SUPPORT": { "allow": true, "requireMention": true },
"ID_КАНАЛА_GENERAL": { "allow": true, "requireMention": true }
}
}
}
}
}
}
Политика личных сообщений
Настройка dmPolicy определяет, кто может писать боту в личку:
- pairing (по умолчанию) — пользователь отправляет боту сообщение, получает код, админ подтверждает. Хорошо для контролируемого запуска.
- allowlist — только пользователи из списка ID могут писать в личку.
- open — любой может писать. Нужно явно указать
allowFrom: "*". Используйте для публичных ботов. - disabled — личные сообщения отключены, бот работает только в каналах.
Разделение по каналам: один бот — разные специалисты
OpenClaw поддерживает настройку поведения бота для каждого канала отдельно. Это главная сила интеграции с Discord: один и тот же агент может быть техподдержкой в одном канале, разработчиком в другом и модератором в третьем.
{
"channels": {
"discord": {
"channels": {
"ID_КАНАЛА_SUPPORT": {
"requireMention": true,
"skills": ["support", "faq"],
"systemPrompt": "Ты — агент техподдержки. Отвечай кратко и по делу."
},
"ID_КАНАЛА_API": {
"requireMention": true,
"skills": ["engineering", "docs-search"],
"systemPrompt": "Ты — технический ассистент для разработчиков."
},
"ID_КАНАЛА_INTERNAL": {
"requireMention": false,
"skills": ["deployment", "monitoring"],
"systemPrompt": "Ты — ассистент для внутренних операций команды."
}
}
}
}
}
Каждый канал — изолированная сессия со своим контекстом. Агент видит имя канала, и каждый канал работает независимо. Можно настроить каналы #coding, #research, #home — под любую задачу.
Slash-команды
OpenClaw поддерживает нативные Discord slash-команды. Они дают пользователям удобный способ взаимодействия: вместо того чтобы формулировать вопрос, пользователь нажимает / и видит доступные команды.
Slash-команды работают в изолированных сессиях (agent:discord:slash:userId), но несут контекст целевой беседы. Для агентов с конкретными возможностями (поиск, создание тикетов, отчёты) slash-команды удобнее чистого natural language.
Работа с тредами и форумами
Когда кто-то упоминает бота в канале, OpenClaw может ответить в том же канале или создать тред. Для busy-каналов треды предпочтительнее — они не засоряют общий поток.
После создания треда бот продолжает отвечать в нём без повторного @упоминания. Это правильное поведение для рабочих диалогов, но следите за тредами, которые уходят в офф-топик: бот будет продолжать отвечать, пока считает, что разговор с ним.
Память в Discord-каналах
Долгосрочная память (MEMORY.md) автоматически загружается только в DM-сессиях. В каналах сервера она не подгружается.
Для общего контекста во всех каналах используйте файлы AGENTS.md и USER.md — они инжектируются в каждую сессию. Долгосрочные заметки храните в MEMORY.md и обращайтесь к ним по запросу через memory tools.
Интерактивные ответы и форматирование
Discord поддерживает богатое форматирование сообщений, и OpenClaw это использует. Можно включить интерактивные ответы с кнопками:
{
"channels": {
"discord": {
"capabilities": {
"interactiveReplies": true
}
}
}
}
Вместо того чтобы просить пользователя написать «да» или «нет», агент покажет кнопки. Это снижает количество недопониманий и делает взаимодействие более гладким.
Discord-эмбеды позволяют агенту возвращать структурированные ответы с заголовками, полями, цветами и миниатюрами. Это полезно для агентов, которые возвращают данные: результаты поиска, статусы, сводки тикетов.
Несколько Discord-ботов одновременно
OpenClaw поддерживает несколько Discord-аккаунтов. Каждый бот с отдельным токеном и application ID:
{
"channels": {
"discord": {
"enabled": true,
"accounts": {
"personal": {
"token": { "source": "env", "provider": "default", "id": "DISCORD_PERSONAL_TOKEN" },
"applicationId": "111111111111111111"
},
"work": {
"token": { "source": "env", "provider": "default", "id": "DISCORD_WORK_TOKEN" },
"applicationId": "222222222222222222"
}
}
}
}
}
Если два аккаунта используют один и тот же токен, OpenClaw запустит только один gateway-монитор. Побеждает токен из конфига перед env-переменной.
Запуск через Neirohost
Если не хотите настраивать VPS и конфигурацию вручную, можно использовать Neirohost — платформу AI-ассистентов на базе OpenClaw. Это managed-решение: регистрируетесь, подключаете Discord-токен и получаете работающего бота. Под капотом — LXC-контейнер с Ubuntu и предустановленным OpenClaw. Тарифы от 390 рублей в неделю, нейросети (MiMo V2.5 Pro, DeepSeek V4 Flash) включены.
Решение проблем
Бот подключился, но не отвечает на сообщения
Проверьте, что включён Message Content Intent в Developer Portal. Это самая частая причина. Без этого intent бот видит события, но не читает текст сообщений.
Бот не отвечает в канале сервера
- Проверьте, что канал указан в
guilds→channelsсallow: true. - Проверьте, что
groupPolicyне установлен вdisabled. - Если
requireMention: true— убедитесь, что вы упоминаете бота через @.
Бот отвечает слишком медленно
Discord имеет rate limits. Если сервер большой и сообщений много, бот может задерживаться. Ограничьте количество каналов, в которых бот работает, или увеличьте интервалы между ответами.
Код привязки не приходит
- Проверьте, что gateway запущен:
openclaw logs --follow. - Убедитесь, что в настройках сервера включены Direct Messages от участников.
- Код действует 1 час — если истёк, отправьте новое сообщение боту.
Часто задаваемые вопросы
Можно ли использовать OpenClaw с Discord бесплатно?
Да. OpenClaw — open-source с MIT-лицензией. Discord-боты бесплатны. Платить нужно только за API нейросети (если используете облачные модели) или за хостинг VPS. С локальными моделями через Ollama — бесплатно полностью.
Нужен ли Discord Nitro для работы бота?
Нет. Все необходимые функции — токены, intents, OAuth2, permissions — работают на бесплатном Discord-аккаунте.
Может ли бот работать в нескольких серверах одновременно?
Да. Бот приглашается на каждый сервер отдельно через OAuth2-ссылку. В конфигурации OpenClaw можно указать несколько серверов в guilds.
Как обновить токен бота?
В Developer Portal нажмите Reset Token на странице Bot. Скопируйте новый токен, обновите переменную окружения и перезапустите gateway. Ротация токена не требует пересоздания бота или приглашения.
Поддерживает ли OpenClaw голосовые каналы Discord?
Да. OpenClaw поддерживает голосовые каналы Discord. Для работы с голосом требуется настройка TTS/STT — об этом есть отдельная статья о навыках OpenClaw.